Новинки ASP.NET Core в Превью 7 .NET 8
Последний превью выпуск .NET 8 содержит существенные дополнения и изменения в ASP.NET Core. Наиболее заметные улучшения связаны с Blazor, Native AOT, новыми шаблонами SPA в Visual Studio и промежуточным ПО защиты от поддельных запросов.
1. В Blazor конечные точки теперь должны по умолчанию использовать защиту от подделки (antiforgery). Начиная с этой версии компонент EditForm теперь автоматически добавляет токен защиты от подделки. Разработчики могут отключить его с помощью:
@attribute [RequireAntiforgeryToken(required: false)]но делать так не рекомендуется.
2. Для Minimal API было добавлено новое промежуточное ПО для проверки токенов защиты от подделки. Оно активируется при регистрации сервиса через AddAntiforgery. Обработчики запросов POST в минимальных API теперь будут автоматически проверять токен защиты от подделки. Если проверка токена завершается неудачей, в средах разработки будет выброшено исключение, в средах Production, будет добавляться запись в лог.
3. Автоматический интерактивный режим рендеринга в Blazor теперь сочетает в себе режимы рендеринга Server и WebAssembly. Этот режим оптимизирует рендеринг путём использования WebAssembly, если среда выполнения .NET загружается быстро (в течение 100 мс). Обычно это происходит в том случае, если среда выполнения была предварительно загружена и кэширована или используется высокоскоростная сеть. В противном случае используется серверный режим рендеринга, пока среда выполнения .NET WebAssembly загружается в фоновом режиме.
Чтобы использовать автоматической режим визуализации, укажите атрибут
@rendermode="@RenderMode.Auto" в экземпляре компонента или @attribute [RenderModeAuto] в определении компонента. Обратите внимание, что компонент необходимо настроить для запуска как на сервере, так и в браузере, поэтому он должен находиться в клиентском проекте, и его реализация не должна быть привязана ни к серверу, ни к WebAssembly.4. Добавлен новый фабричный метод
WebApplication.CreateEmptyBuilder, который позволяет создавать приложения наименьшего размера, содержащие только необходимые функции. Теперь доступно 3 варианта создания построителя приложения:-
CreateBuilder() – полноценный построитель со всеми функциями;-
CreateSlimBuilder() – построитель с минимальным набором функций (например, отсутствуют: поддержка IHostingStartup; поддержка UseStartup; поддержка провайдеров логов в логи событий Windows и в консоль отладки; поддержка интеграции с IIS; поддержка HTTPS; поддержка Regex в шаблонах маршрутов и т.п.);-
CreateEmptyBuilder() – для поддержки минимальных приложений, который не будет содержать вообще никаких встроенных функций, только те, которые вы явно добавите.5. Критическое изменение, затрагивающее веб-проекты, скомпилированные с включенным триммингом (
PublishTrimmed=true). Раньше в проектах по умолчанию использовался частичный режим тримминга (TrimMode=partial). Однако, начиная с этого выпуска, все проекты, ориентированные на .NET 8 или более позднюю версию, по умолчанию будут использовать TrimMode=full.6. Представлены новые шаблоны Visual Studio для JavaScript и TypeScript разработки. Они включают шаблоны для Angular, React и Vue, используют новую систему проектов JavaScript (
.esproj) и легко интегрируются с серверными проектами ASP.NET Core.Источники:
- https://www.infoq.com/news/2023/08/aspnet-core-8-preview-7/
- https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-7/