微软发布了 .NET 9 的第 6 个预览版,此版本包括对运行时、SDK、.NET MAUI、ASP.NET Core 和 C# 的更新。
运行时更新
-
ARM64 代码生成:改进了加载和存储数据的指令,增强了执行时间和性能。
-
代码布局:增强基本块排序,以最大化 fallthrough 行为和热代码密度,减少分支指令的数量。
-
循环优化:识别翻转循环计数器变量的时机以提高性能。
-
减少地址暴露:更好地跟踪局部变量地址以释放更多的优化机会。
-
AVX10v1 支持:新的 SIMD 指令集支持,允许在支持 AVX10 的硬件上进行矢量化操作。
-
硬件内部代码生成:改进硬件内部函数中常量的处理,以生成加速代码。
-
常量折叠:增强浮点和 SIMD 运算的常量折叠功能。
SDK 更新
-
NuGetAudit:现在会对传递依赖项中的漏洞发出警告,有助于维护项目安全。
-
dotnet nuget why:一个新命令,用于查明你的项目为什么使用传递包。
-
MSBuild BuildChecks:引入它来在构建期间强制执行规则和不变量,类似于 Roslyn Analyzers,并针对共享输出路径和双写检测制定了新规则。
.NET MAUI 更新
-
质量改进:扩大测试覆盖范围、端到端场景测试和大量错误修复。
-
适用于 Android 和 iOS 的 .NET:注重质量的更新,确保两个平台的应用程序开发稳健可靠。
ASP.NET Core 更新
-
静态 Web 资产的指纹识别:自动生成静态资产的指纹版本,以改善缓存并加快加载时间。
-
改进了 SignalR 的分布式跟踪:增强了 SignalR 集线器方法调用的跟踪功能。
-
Microsoft.AspNetCore.OpenAPI 的增强:改进了完成提供程序并支持 [Required] 和 [DefaultValue] 属性以及模式转换器。
-
[Authorize] 和 [AllowAnonymous] 分析器:当 [Authorize] 被 [AllowAnonymous] 覆盖时,新的分析器会发出警告。
-
ComponentPlatform 重命名为 RendererInfo:匹配新的命名约定。
-
跨帧拆分大型 HTTP/2 标头:确保更好地处理大型标头。
C# 更新
C# 13 是 .NET 9 Preview 6 的一部分,它引入了局部属性(partial properties),扩展了局部方法的功能:
-
局部属性:旨在支持源生成器,使 API 更加直观、自然。使用示例:
[GeneratedRegex("abc|def")]
private static partial Regex AbcOrDefProperty { get; };
if (AbcOrDefProperty.IsMatch(text))
{
// Take action with matching text
}
下载:https://dotnet.microsoft.com/en-us/download/dotnet/9.0
.NET 9 首个预览版发布 —— 打造面向云原生 & AI 的开发平台
.NET9 PreView2+.AOT ILC 的重大变化