TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.76K subscribers
Post #1578 1.44K
День 1273. #ЧтоНовенького
Обновления
ASP.NET Core в .NET 7 Превью 6. Начало
Некоторые интересные новинки, которые выпустили для ASP.NET Core в очередном превью .NET 7.

1. Промежуточное ПО для распаковки запросов
Используется HTTP-заголовок Content-Encoding для автоматической идентификации и распаковки запросов со сжатым содержимым, чтобы разработчику серверной части не приходилось заниматься этим самостоятельно.
Это промежуточное ПО добавляется с помощью метода расширения UseRequestDecompression в IApplicationBuilder и метода расширения AddRequestDecompression в IServiceCollection.
Поддерживаются Brotli (br), Deflate (deflate) и GZip (gzip). Другие кодировки можно добавить, зарегистрировав собственный класс поставщика распаковки, который реализует интерфейс IDecompressionProvider вместе со значением заголовка Content-Encoding в RequestDecompressionOptions.

2. Промежуточное ПО для кэширования вывода
Помогает вам сохранять результаты вашего веб-приложения и обслуживать их из кэша, а не вычислять их каждый раз, что повышает производительность и высвобождает ресурсы для других действий.
Используйте метод расширения AddOutputCache в IServiceCollection и метод расширения UseOutputCache в IApplicationBuilder. После можно настроить кэширование на конечных точках:
app.MapGet("/notcached", 
() => DateTime.Now.ToString());
app.MapGet("/cached",
() => DateTime.Now.ToString()).CacheOutput();

Запросы к /notcached вернут текущее время. А каждый запрос к /cached после первого будет возвращать кешированный ответ.
Существует множество более продвинутых способов:
- по параметру строки запроса
….CacheOutput(p => p.VaryByQuery("culture"));
- по заголовкам (VaryByHeader)
- по произвольному значению (VaryByValue).

Промежуточное ПО кэширования имеет встроенную защиту от некоторых распространённых ошибок. Например, при инвалидации значения кэша только первый запрос будет вызывать серверный код получения значения. Остальные запросы в это время будут ждать появления значения в кэше, чтобы не перегружать сервер избыточной работой. Вот здесь есть пример использования кэширования.

3. Обновления промежуточного ПО ограничений
Промежуточное ПО ограничений (rate limiting) теперь поддерживает ограничения на определённых конечных точках, которое можно комбинировать с глобальным ограничителем, работающим для всех запросов. Также теперь поддерживается добавление пользовательских политик ограничений с помощью новых методов AddPolicy в RateLimiterOptions.
Подробнее об ограничениях в этом посте (см. пункт 4).

4. Поддержка WebSockets через HTTP/2 в Kestrel
Использование WebSockets через HTTP/2 позволяет использовать преимущества новых функций, таких как сжатие заголовков и мультиплексирование, которые сокращают время и ресурсы, необходимые при выполнении нескольких запросов к серверу. Эта поддержка теперь доступна в Kestrel на всех платформах с поддержкой HTTP/2.
Согласование версии HTTP выполняется автоматически в браузерах и Kestrel. Вы можете использовать существующие примеры для ASP.NET Core.
Примечание: WebSockets в HTTP/2 использует запросы CONNECT, а не GET, поэтому ваши маршруты и контроллеры возможно придётся обновить.

5. Улучшения производительности Kestrel на многоядерных компьютерах
Разделение ConcurrentQueue, используемой в Kestrel, по связанному с ней сокету уменьшает конкуренцию и увеличивает пропускную способность на машинах с большим количеством ядер. В превью 6 пул памяти Kestrel теперь разделён так же, как и очередь ввода-вывода. Наблюдалось более чем 500% улучшение RPS в тестах TechEmpower на 80-ядерных виртуальных машинах ARM64 (доступных теперь в Azure) и почти 100-процентное улучшение на 48-ядерных виртуальных машинах AMD в тесте HTTPS JSON.

Источник: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-6/
  • 👍 15
More from @netdeveloperdiary
  1. Oct 14, 2026Post #3373
  2. Oct 13, 2026День 2813. #ЗаметкиНаПолях #Async Ещё Раз Про Async/Await в C#. Часть 1 1. Почему существу…
  3. Oct 12, 2026День 2812. #Карьера #AI Как Разработчикам Оставаться Полезными, Когда Код Пишет ИИ? По мер…
  4. Oct 11, 2026День 2811. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  5. Oct 10, 2026День 2810. #ЧтоНовенького #VSCode Более Быстрый и Лёгкий C# Dev Kit Мы, разработчики, люби…
  6. Oct 9, 2026День 2809. #Карьера 5 Навыков, Которые Помогут Быстрее Стать Сеньором. Окончание Начало 3.…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →