Start Debugging

Тег: csharp

217 статей · Страница1из22

Как добавить сжатие ответов в API на ASP.NET Core 11
Полное руководство по сжатию ответов в ASP.NET Core 11: AddResponseCompression и UseResponseCompression, новый встроенный провайдер Zstandard рядом с Brotli и Gzip, уровни сжатия, EnableForHttps и риск CRIME/BREACH, пользовательские MIME-типы, порядок middleware и когда стоит доверить это обратному прокси.
Как вернуть типизированное объединение Results<T1, T2> из эндпоинта minimal API в ASP.NET Core 11
Объявите тип возврата обработчика как Results<Ok<T>, NotFound> и возвращайте TypedResults.Ok / TypedResults.NotFound: объединение даёт проверку на этапе компиляции того, что обработчик возвращает только то, что объявляет, и само описывает себя для OpenAPI, так что вам никогда не придётся писать .Produces вручную. Рассматриваются асинхронные обработчики, ограничение в шесть типов и тестирование в ASP.NET Core 11.
Как добавить кеширование выходных данных в minimal API на ASP.NET Core 11
Полное рабочее руководство по кешированию выходных данных в minimal API на ASP.NET Core 11: AddOutputCache и UseOutputCache, CacheOutput на конечных точках и MapGroup, именованные и базовые политики, Expire, VaryByQuery и VaryByHeader, вытеснение по тегам с EvictByTagAsync, защита от cache stampede, повторная валидация через ETag и хранилище на Redis.
Как настроить документ OpenAPI с помощью AddOperationTransformer и AddSchemaTransformer в ASP.NET Core 11
Подробный разбор встроенного конвейера трансформеров OpenAPI в .NET 11: трансформеры операций и схем, объекты контекста, порядок выполнения, трансформеры, активируемые через DI, а также рецепты для заголовков, ответов, примеров и точечных изменений свойств.
.NET 11 Runtime Async отказывается от флага EnablePreviewFeatures
По мере того как предварительные версии .NET 11 приближаются к ноябрьскому выпуску, Runtime Async повзрослел: проекты net11.0 включают его одним свойством MSBuild, а сами библиотеки среды выполнения теперь компилируются с ним.
Что такое PGO в .NET и нужно ли его включать?
PGO (оптимизация на основе профиля) позволяет JIT-компилятору .NET специализировать горячий код под типы и ветви, которые действительно встречаются в вашей нагрузке. Dynamic PGO включён по умолчанию начиная с .NET 8, поэтому в .NET 8 и более поздних версиях включать его не нужно. Вот что он делает, как увидеть его эффект и те редкие случаи, когда стоит тронуть настройку.
Что такое многоуровневая компиляция и как о ней рассуждать?
Многоуровневая компиляция позволяет JIT в .NET компилировать каждый метод дважды: сначала быстро и без оптимизаций, чтобы приложение запустилось, а затем ещё раз с полными оптимизациями, когда среда выполнения узнаёт, что метод горячий. Здесь показано, как tier 0, tier 1, замена на стеке и Dynamic PGO складываются вместе, и как их наблюдать и настраивать.
Что такое контракт IHostedService и когда его использовать?
IHostedService -- это интерфейс из двух методов (StartAsync/StopAsync), которые универсальный хост .NET вызывает при запуске и корректном завершении. Вот что гарантирует контракт, когда реализовывать его напрямую и какие изменения поведения в .NET 10 и 11 застают людей врасплох.
Что такое trim-safe код и как его писать?
Trim-safe код -- это код, который триммер .NET может статически доказать как достижимый, поэтому он выживает при удалении неиспользуемого кода из self-contained приложения. Это практическое руководство: включите анализатор, доведите каждое предупреждение IL2xxx до нуля, аннотируйте рефлексию с помощью DynamicallyAccessedMembers, распространите RequiresUnreferencedCode на публичные API и замените неанализируемые паттерны генераторами исходного кода.
Вперёд