.NET 8 Preview 7 中的 ASP.NET Core 更新
.NET 8 Preview 7 带来了对 ASP.NET Core 的重大改进和变化,主要集中在 Blazor、Native AOT、Identity、新的 SPA Visual Studio 模板、Antiforgery 中间件等方面。
Blazor 的主要增强
- Antiforgery 保护默认启用:Blazor 的端点现在默认启用 Antiforgery 保护,EditForm 组件会自动添加 Antiforgery 令牌。虽然开发者可以禁用此功能,但不建议这样做。
- 标准 HTML 表单支持:开发者现在可以在服务器端渲染模式下构建标准的 HTML 表单,而不依赖 EditForm。
- 自动交互式渲染模式:Blazor 引入了自动交互式渲染模式,结合了服务器和 WebAssembly 渲染模式,优化了渲染性能。
- 根级级联值注册:注册根级级联值可以使其在整个组件层次结构中可用。
- 交互式组件的增强:交互式组件现在支持增强的导航、表单处理和流式渲染。
- Virtualize 组件的 EmptyContent 属性:新增了 EmptyContent 属性,用于在项目缺失或 ItemsProvider 返回零 TotalItemCount 时定义简洁的内容。
Antiforgery 中间件
- 新增 Antiforgery 中间件:用于验证 Antiforgery 令牌,防止跨站请求伪造攻击。
- 中间件顺序:Antiforgery 中间件应在身份验证和授权中间件之后,以防止未经授权的表单数据访问。
- Minimal API 的 Antiforgery 验证:处理表单数据的 Minimal API 现在需要 Antiforgery 令牌验证。
Native AOT 的更新
- 请求委托生成器支持 C# 12 拦截器:开发者可以利用更新的请求委托生成器支持新的 C# 12 拦截器功能,拦截 Minimal API 的 Map 动作方法调用。
- WebApplication.CreateEmptyBuilder 方法:引入了新的工厂方法,生成仅包含必要功能的更小应用程序。
- 原生 AOT 发布结果:在 linux-x64 机器上发布原生 AOT 代码,生成的自包含原生可执行文件约为 8.5 MB。
其他重要更新
- 全 TrimMode 默认启用:从本版本开始,所有针对 .NET 8 或更高版本的项目默认使用
TrimMode=full,而不是部分 TrimMode。 - 新的 Visual Studio 模板:引入了新的 Visual Studio 模板,包含 Angular、React 和 Vue,使用新的 JavaScript 项目系统 (.esproj),并与 ASP.NET Core 后端项目无缝集成。
社区参与
- 博客评论活跃:原始发布博客的评论部分非常活跃,用户提出了许多问题并与开发团队进行了讨论。建议用户查看评论部分并参与讨论,以了解各种观点。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。