.NET 8 预览版发布:ASP.NET Core 的重大改进
上周,微软发布了 .NET 8 的首次预览版,重点改进了 ASP.NET Core 的 Web 开发功能。此次更新主要集中在 Blazor United、身份验证与授权体验、Native AOT 等领域。
Blazor United:统一服务端和客户端渲染
Blazor United 是 .NET 8 中的一个重要特性,旨在将服务端渲染和客户端渲染的优势结合到一个基于 Blazor 的全栈编程模型中。开发者可以在一个项目中同时使用 Blazor Server 或 WebAssembly,轻松切换渲染模式,甚至在同一页面中混合使用。Blazor United 还引入了新的渲染能力,如流式渲染和导航与表单提交的渐进增强。
身份验证与授权的简化
.NET 8 将简化 ASP.NET Core 应用在特定场景下的身份验证与授权流程。开发者将能够更轻松地创建和测试基于 Web 的身份验证与授权,并提供一系列简单的工具和流程,帮助应用部署到实际环境中,同时提供诊断功能以快速解决安全问题。
Native AOT 支持
在 .NET 8 中,ASP.NET Core 将支持 Native AOT(Ahead-of-Time 编译),这将生成不依赖于 JIT 运行时的平台特定可执行文件,从而加快启动速度并减少内存使用。Native AOT 将首先应用于符合特定要求的云原生 API 应用。
路由工具的改进
.NET 8 引入了新的路由工具,基于 Roslyn 构建,能够自动适应 IDE 环境。这些工具包括路由语法高亮、参数和路由名称的自动补全、路由约束的自动补全以及路由分析器和修复器。这些改进使路由更易于学习和使用。
路由约束的优化
在 .NET 8 中,路由约束的性能得到了优化。正则表达式约束现在会被编译,重复的约束会在路由之间共享,alpha 约束使用了源生成的正则表达式,从而提高了运行时性能。
API 开发中的分析器
为了推广最佳实践,.NET 8 中的分析器会在使用 IHeaderDictionary.Add API 时发出警告,并提供代码修复建议,推荐使用索引器或 Append API。
Kestrel 的 IPC 服务器支持
Kestrel 现在支持创建进程间通信(IPC)服务器,允许 Windows 应用程序通过命名管道进行通信。此外,macOS 上添加了应用层协议协商(ALPN)支持,使得 ASP.NET Core 可以使用 TLS 和 HTTP/2,这对于需要 HTTP/2 的 gRPC 应用特别有用。
HTTP/3 默认启用
HTTP/3 是 2022 年 6 月标准化的新一代互联网协议,提供了更快的连接建立、无队头阻塞和更好的网络切换等优势。ASP.NET Core 和 Kestrel 在 .NET 7 中已支持 HTTP/3,而在 .NET 8 中,HTTP/3 将与 HTTP/1.1 和 HTTP/2 一起默认启用。
其他重要更新
其他重要更新包括对 WebAssembly 的热重载支持、Blazor WebAssembly 在 Firefox 中的调试支持、将异常分发到 Blazor 的 SynchronizationContext、实验性的 Webcil 格式、保持 SPA 开发服务器运行的新选项,以及 gRPC JSON 转码不再需要 http.proto 和 annotations.proto。
.NET 8 预览版现已可供下载,Windows 用户建议使用最新的 Visual Studio 2022 预览版。目前,Visual Studio for Mac 尚未支持 .NET 8。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。