Start Debugging

Блог

Страница 47 из 91

2026-06-20 csharpdotnetasync

Что такое ValueTask<T> и когда он того стоит?

ValueTask и ValueTask<T> -- это структуры, которые позволяют асинхронному методу вернуть результат без выделения Task в куче, когда он завершается синхронно. Выигрыш -- одно выделение памяти меньше на горячих путях, которые обычно завершаются без ожидания. Цена -- строгий контракт ожидания ровно один раз. Вот что этот тип представляет собой на самом деле, как он работает и тот узкий набор случаев, где он оправдывает себя.

Claude Code 2.1.183 запрещает автоматическому режиму выполнять разрушительные команды Git и IaC

Claude Code v2.1.183 (2026-06-19) блокирует git reset --hard, git clean -fd и terraform/pulumi/cdk destroy в автоматическом режиме, если вы их не запросили, закрывая агентскую лазейку, где один неудачный ход уничтожает незакоммиченную работу.

Что такое генератор исходного кода и когда он мне нужен?

Понятное руководство по генераторам исходного кода в C#: что они на самом деле делают, как работает пайплайн IIncrementalGenerator, когда они выигрывают у рефлексии или T4 и в каких случаях к ним не стоит прибегать. С работающими примерами на .NET 11 и C# 14.

Что такое IAsyncEnumerable<T> и когда его следует использовать?

IAsyncEnumerable<T> — это интерфейс для асинхронных потоков: последовательность, элементы которой поступают со временем и каждый из которых может потребовать await. Вот что это на самом деле, как await foreach и yield приводят его в движение, и правило, когда выбирать его вместо Task<List<T>>.

Что такое Native AOT и чего он вам стоит?

Native AOT компилирует ваше .NET-приложение в единый автономный нативный бинарь без JIT, обеспечивая быстрый запуск и небольшое потребление памяти. Цена этого: цепочка инструментов C на этапе компиляции, более медленные публикации, сборки под каждый RID, отсутствие рефлексии и Reflection.Emit, обязательный тримминг и отсутствие Dynamic PGO. Вот полный баланс.

Blazor static SSR получает [SupplyParameterFromSession] в .NET 11 Preview 5

Чтение состояния сессии в статически серверно отрендеренном Blazor означало обращение к HttpContext.Session и сериализацию вручную. .NET 11 Preview 5 добавляет [SupplyParameterFromSession] для привязки свойства компонента напрямую к ключу сессии.

Миграция приложения Flutter 2 на Flutter 3.x: чек-лист по null safety

Руководство с зафиксированными версиями для перевода устаревшего приложения Flutter 2.x на актуальный выпуск Flutter 3.x, где миграция на sound null safety является жёстким барьером: почему нужен путь в два шага через Dart 2.19, что делает dart migrate и что ломается по дороге.
2026-06-16 flutterdartriverpod

Миграция с provider на Riverpod во Flutter (provider 6.1.5 на Riverpod 3.x)

Пошаговая миграция с пакета provider на Riverpod 3.x в реальном приложении Flutter: ChangeNotifierProvider на Notifier, MultiProvider на ProviderScope, context.watch на ref.watch, ProxyProvider на композицию через ref.watch, плюс подводные камни с равенством и жизненным циклом. Проверено на Flutter 3.27.1, Dart 3.11, provider 6.1.5, flutter_riverpod 3.3.1.

Миграция со Swashbuckle на встроенный генератор OpenAPI в .NET 11

Пошаговая миграция со Swashbuckle.AspNetCore на Microsoft.AspNetCore.OpenApi в .NET 11: замена AddSwaggerGen на AddOpenApi, преобразование фильтров операций, схем и документа в трансформеры, сохранение UI и несовместимые изменения Microsoft.OpenApi v2, которые кусаются.