.NET 9 第六个预览版发布总结
上周,微软发布了 .NET 9 框架的第六个预览版,带来了 .NET Runtime、SDK、库、C# 以及 ASP.NET Core、Blazor 和 .NET MAUI 等多个框架的更新。该版本旨在提升性能、改善开发者体验并扩展功能。
发布计划与支持
.NET 9 的稳定版本预计将在今年晚些时候发布,它将是一个标准支持周期(STS)版本,支持时间为 18 个月,从 2024 年 11 月 12 日至 2026 年 5 月 12 日,并将在多个操作系统上运行。
.NET 库的更新
在 .NET 库方面,第六个预览版引入了多项改进:
- System.Numerics 进行了多项增强。
- Logging Source Generator 现在支持主构造函数。
- System.Text.Json 获得了多项更新,包括新的
JsonSchemaExporter、对可空注解的识别以及新的合约元数据 API。 - GeneratedRegex 属性现在可以应用于属性,并引入了新的
EnumerateSplits方法以简化集合类型的分割操作。 - 引入了通用的
OrderedDictionary和ReadOnlySet<T>,用于创建不可变的集合包装器。
其他改进包括对集合查找的支持、更多基于 Span 的 API(如 StartsWith 和 EndsWith)、优化的 Base64Url 编码和解码、默认使用 SocketsHttpHandler 的 HttpClientFactory,以及 Linux 上支持使用客户端证书的 TLS 恢复。
此外,System.Diagnostics.Metrics 现在提供了符合 OpenTelemetry 规范的 Gauge 仪表,用于记录非累加值的变化。
.NET Runtime 的更新
在 .NET Runtime 方面,ARM64 代码生成现在支持存储操作,RyuJIT 的块重排序算法被简化以改善代码布局,并实现了循环优化以减少代码大小并提高性能。此外,通过增强 RyuJIT 对局部变量地址的跟踪,减少了地址暴露。
该版本还引入了对 Intel 的新 SIMD 指令集 AVX10v1 的支持,并改进了硬件内部代码生成和浮点及 SIMD 操作的常量折叠。
.NET SDK 的更新
.NET 9 预览版 SDK 引入了新功能以增强安全性和构建过程:
- NuGetAudit 现在会对传递依赖中的漏洞发出警告。
- 新增了
dotnet nuget why命令,帮助开发者了解项目中传递包的使用情况。 - 引入了 MSBuild BuildChecks,用于在构建过程中强制执行规则和不变性。
C# 13 的更新
C# 13 引入了部分属性,类似于部分方法,主要用于支持源代码生成器。这些新增功能基于 C# 9 对部分方法的改进,为开发者提供了更多灵活性。
ASP.NET Core 的更新
在 ASP.NET Core 方面,静态 Web 资产现在支持指纹识别,以防止使用过时资产并改善缓存行为以加快加载速度。SignalR 通过新的 ActivitySource(名为 Microsoft.AspNetCore.SignalR.Server)改进了分布式跟踪,该源会为 Hub 方法调用发出事件。
此外,Microsoft.AspNetCore.OpenAPI 库增强了对 Required 和 DefaultValue 属性的支持,并支持 OpenAPI 文档的模式转换。新增的分析器会在 Authorize 被 AllowAnonymous 覆盖时发出警告。
其他改进包括将 ComponentPlatform 重命名为 RendererInfo,以及 Kestrel 现在会拆分过大的 HTTP/2 头部以适应单个 HEADER 或 CONTINUATION 帧。
下载与更多信息
感兴趣的读者可以在官方发布说明中了解更多详细信息,.NET 9 预览版 6 的下载已适用于 Linux、macOS 和 Windows。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。