Start Debugging

Блог

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

Как сериализовать полиморфную иерархию типов с JsonDerivedType в System.Text.Json

Полное руководство по полиморфному JSON в .NET 11: JsonDerivedType и JsonPolymorphic, почему всё решает объявленный тип, правило порядка $type, все исключения этой возможности, модель контрактов для чужих типов и то, что ASP.NET Core выдаёт в OpenAPI.

Как добавить Aspire в существующее решение ASP.NET Core без его перестройки

Добавление Aspire 13.4 в унаследованное решение ASP.NET Core: два новых проекта и три строки на сервис. aspire init, связывание AppHost через AddProject и WithReference, сохранение существующих launchSettings.json и строк подключения, а также подводные камни с резилентностью, health-эндпоинтами и прокси в первый же день.

Как тестировать зависящий от времени код с TimeProvider и FakeTimeProvider в .NET 11

Замените DateTime.UtcNow, Stopwatch и Task.Delay на System.TimeProvider, чтобы тесты управляли часами: регистрация во внедрении зависимостей, FakeTimeProvider.Advance и SetUtcNow, тестирование таймаутов и BackgroundService на PeriodicTimer, а также подводные камни с продолжениями после Advance и с xUnit v2.

Как писать интеграционные тесты с WebApplicationFactory<T> в ASP.NET Core 11

Полное руководство по WebApplicationFactory<TEntryPoint> в ASP.NET Core 11: как сделать точку входа Program доступной, ConfigureTestServices против ConfigureWebHost, замена регистрации EF Core через IDbContextOptionsConfiguration, новый хук ConfigureHostApplicationBuilder в .NET 11 preview 6, подделка аутентификации, WebApplicationFactoryClientOptions и UseKestrel, когда нужен настоящий порт.

Перенос StatefulWidget с setState на Notifier из Riverpod во Flutter

Пошаговый переход от локального setState виджета к Notifier из Riverpod 3.x: как разделить состояние, написать Notifier, перейти на ConsumerWidget и пережить фильтрацию по ==, повторный вызов build() и разные значения autoDispose по умолчанию. Проверено на Flutter 3.44, Dart 3.x и flutter_riverpod 3.3.2.

Переход от блокирующих вызовов .Result/.Wait() к сквозной асинхронности в устаревшей кодовой базе на C#

Поэтапный план удаления sync-over-async из существующей кодовой базы .NET: инвентаризация анализаторами, измерение истощения ThreadPool, перевод по одной цепочке вызовов и доведение счётчика до нуля на .NET 11.

Переход от интерполяции строк в ILogger к шаблонам сообщений структурированного журналирования в .NET 11

Пошаговое руководство по переводу вызовов ILogger с $-интерполяцией на шаблоны сообщений и методы, сгенерированные через [LoggerMessage], в .NET 11: что ломается, как пройтись по кодовой базе с CA2254, как проверить состояние JSON и как откатиться.

Фильтры endpoint против middleware в ASP.NET Core 11: что выбрать?

Руководство по выбору для ASP.NET Core 11: middleware выполняется для каждого запроса до того, как ваш handler привяжет данные, фильтры endpoint выполняются только для совпавшей конечной точки, после привязки, и могут видеть типизированные аргументы. Включает сравнительную таблицу, сценарии выбора каждого варианта, правила порядка и детали, которые вынуждают выбор.