.NET 8 中 ASP.NET Core 的主要更新与改进
.NET 8 的最新版本为 ASP.NET Core 带来了显著的增强和变化,主要集中在性能、Blazor、AOT、Identity、SignalR、Metrics 等多个方面。
性能提升
ASP.NET Core 在 .NET 8 中被认为是有史以来性能最佳的版本。与 .NET 7 相比,在 Techempower JSON 基准测试中快了 18%,在 Fortunes 基准测试中快了 24%。Brennan Conroy 撰写了一篇关于 ASP.NET Core 8 性能改进的博客,详细介绍了这些改进。
在 Reddit 上,用户 Cethrivias 提出了一个有趣的问题:为什么 Asp.net 如此快?。.NET 的杰出工程师 David Fowler 在回答中提到,团队对性能的极端关注是 ASP.NET 快速的原因,并表示性能改进是 .NET 长期优先考虑的事项。
原生 AOT(Ahead-of-Time)编译
.NET 8 引入了原生 AOT 功能,特别适用于云原生 API 应用。原生 AOT 允许将 ASP.NET Core 应用发布为自包含的原生代码,显著减少了磁盘占用,提升了启动效率,并降低了内存需求。
Blazor 的全面升级
Blazor 从客户端 Web UI 框架转变为全栈 Web UI 解决方案,支持静态服务器端渲染、增强的导航和表单处理、流式渲染等功能。新的 @rendermode Razor 指令允许在运行时选择渲染模式,优化应用加载时间和可扩展性。
WebAssembly 的改进
.NET 8 在 WebAssembly 上运行 .NET 代码的性能得到了显著提升。基于 Jiterpreter 的运行时使组件渲染速度提高了 20%,JSON 反序列化速度提高了一倍。此外,新的 WebCIL 打包格式简化了 Blazor WebAssembly 应用的部署。
ASP.NET Core Identity 的 API 端点
.NET 8 引入了 ASP.NET Core Identity 的 API 端点,简化了浏览器和移动客户端应用的认证设置,支持基于 cookie 和令牌的认证。
运行时 Metrics 集成
ASP.NET Core 引入了基于 System.Diagnostics.Metrics 的运行时 Metrics,提供了强大的监控系统,支持计数器、仪表和直方图等多维测量。
其他更新
- SignalR:支持状态重连。
- 依赖注入:增加了对键控服务的支持。
- Kestrel:提升了命名管道传输的性能。
- Redis:增加了基于 Redis 的输出缓存支持。
社区参与
官方发布博客的评论部分活跃,用户提出了许多问题并与开发团队进行了深入讨论,建议用户参与这些讨论以获取更多见解。
总结
.NET 8 的发布为 ASP.NET Core 带来了全面的性能提升和功能增强,特别是在原生 AOT 编译、Blazor 全栈支持、WebAssembly 优化等方面。开发者可以通过官方发布说明和社区讨论了解更多详细信息。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。