.NET 9 预览版6发布 - 张善友

.NET 9 预览版6发布 - 张善友

💡 原文中文,约1800字,阅读约需5分钟。
📝

内容提要

微软发布了.NET 9的第6个预览版,更新了运行时、SDK、.NET MAUI、ASP.NET Core和C#。增强了对Loongarch架构的支持,社区正在开发相应的操作系统镜像。运行时更新包括ARM64代码生成优化、循环优化和AVX10v1支持。SDK引入了NuGetAudit和新命令dotnet nuget why,以增强项目安全性和依赖管理。ASP.NET Core改进了静态资产缓存和SignalR跟踪功能,整体关注云原生应用和性能提升。

🔎

延伸解读

Loongarch 支持进展与社区协作

本次预览版将 Loongarch 的 Native-AOT 代码合并到社区源码中,龙芯.NET 可直接同步,极大减少了本地维护工作。社区对 Loongarch 的 CI 支持也在发展,Alpine 和 Debian 等开源操作系统计划在下一个版本中正式发布 Loongarch 架构的 ISO 镜像,其中 Alpine 已明确将支持 Loongarch 列入今年 11 月的发布计划。届时可在 dotnet CI 中添加 Loongarch 测试,为后续做好准备。

运行时性能优化细节

运行时更新聚焦于提升执行效率:ARM64 代码生成改进了加载和存储指令;代码布局增强基本块排序,以最大化 fallthrough 行为和热代码密度,减少分支指令;循环优化可识别翻转循环计数器变量的时机;减少地址暴露以释放更多优化机会。此外,新增 AVX10v1 支持,允许在支持 AVX10 的硬件上进行矢量化操作,并改进了硬件内部函数常量的处理和浮点、SIMD 运算的常量折叠。

SDK 安全与依赖管理增强

SDK 引入了 NuGetAudit,现在会对传递依赖项中的漏洞发出警告,有助于维护项目安全。该功能需要提供漏洞数据库的包源,实践中需使用 https://api.nuget.org/v3/index.json,未来计划允许在不使用 nuget.org 作为包源的情况下进行审计。新命令 dotnet nuget why 可帮助查明项目为何使用某个传递包。此外,MSBuild BuildChecks 可在构建期间强制执行规则和不变量,并针对共享输出路径和双写检测制定了新规则。

ASP.NET Core 与云原生关注点

ASP.NET Core 更新包括:静态 Web 资产的指纹识别,自动生成指纹版本以改善缓存并加快加载时间;改进 SignalR 的分布式跟踪,增强集线器方法调用的跟踪功能;Microsoft.AspNetCore.OpenAPI 的增强,改进了完成提供程序并支持 [Required] 和 [DefaultValue] 属性以及模式转换器;新增 [Authorize] 和 [AllowAnonymous] 分析器,当 [Authorize] 被 [AllowAnonymous] 覆盖时发出警告;ComponentP

❓

Q&A

.NET 9 预览版6有哪些主要更新?

.NET 9 预览版6更新了运行时、SDK、.NET MAUI、ASP.NET Core和C#,增强了对Loongarch架构的支持。

Loongarch架构在.NET 9中的支持情况如何?

增强了对Loongarch架构的支持,社区正在开发相应的操作系统镜像。

SDK中新增了哪些安全性功能?

SDK引入了NuGetAudit,用于警告传递依赖项中的漏洞,并新增命令dotnet nuget why以增强依赖管理。

ASP.NET Core在预览版6中有哪些改进?

ASP.NET Core改进了静态资产缓存和SignalR的分布式跟踪功能,关注云原生应用和性能提升。

.NET 9 预览版6的发布计划是什么时候?

.NET 9的全面发布计划于11月进行。

运行时更新中有哪些性能优化?

运行时更新包括ARM64代码生成优化、循环优化和AVX10v1支持,提升了执行时间和性能。

🏷️

标签

➡️

继续阅读