微软在2024年8月9日 发布了.NET 9 Preview 7[1],这是它在2024 年 11 月 12 日 RTM 之前进入发布候选阶段之前的最后预览版, 将在.NET Conf 2024 一起发布[3]。该预览版也于也与 Visual Studio 2022 17.12 预览版1一起发布,现在可以直接通过 Visual Studio 安装程序安装 .NET 9。还可以将 Visual Studio Code 和 C# Dev Kit[2] 扩展与 .NET 9 一起使用。
.NET 9 Preview 7 带来了多项重要更新,涵盖了.NET Runtime、SDK、库、C#、ASP.NET Core、Blazor 和 .NET MAUI 等多个方面。这些更新包括:
库(Libraries):
- 完成了 BinaryFormatter 的移除。
- 对 ReadOnlySpan.Split() 的改进。
- Debug.Assert 现在默认报告断言条件。
- 压缩 API 现在使用 zlib-ng。
- Guid.CreateVersion7 支持创建自然排序的 GUID。
- 对 Interlocked.CompareExchange 的改进。
- 新增对 AES-GCM 和 ChaChaPoly1305 算法的支持。
- X.509 证书加载的更改。
- 对 XPS 文档的支持。
- Tensor 标记为实验性。
运行时(Runtime):
- ARM64 SVE 支持。
- ARM64 后索引寻址。
- 循环中的强度减少。
- 对象栈分配用于装箱。
- GC 对应用程序大小的动态适应。
C#:
- 使用 OverloadResolutionPriority 属性优先选择更好的重载。
SDK:
- 容器发布改进,支持不安全的注册表。
- 容器发布中环境变量的更一致性。
- 引入工作负载集,以更精细地控制工作负载。
- 缓解分析器不匹配问题(即“撕裂的 SDK”)。
ASP.NET Core:
- SignalR 支持修剪和 Native AOT。
- Microsoft.AspNetCore.OpenApi 支持修剪和 Native AOT。
- OpenIdConnectHandler 支持推送授权请求(PAR)。
- 改进了 Kestrel 命名管道端点的自定义。
- 改进了 Kestrel 连接指标。
- 允许在特定端点和请求上禁用 HTTP 指标。
- 异常处理中间件选项,基于异常选择状态码。
.NET MAUI:
- 引入了混合 Webview。
- 新的标题栏控件和 Window.TitleBar for Windows。
- CollectionView 和 CarouselView 在 iOS 和 Mac Catalyst 上的改进。
- 使用 ActivateWindow 将窗口置于前台的能力。
- BackButtonBehavior 的单向绑定模式。
- BlazorWebView 的向后兼容性主机地址。
- 本地嵌入的改进。
- MainPage 已弃用。
- 新的处理程序断开策略。
- WebView 控件上的新 ProcessTerminated 事件。
- iOS 和 Mac Catalyst 上远程通知的新生命周期方法。
- Xcode 同步改进。
这些更新展示了 .NET 9 Preview 7 在性能、安全性和开发效率方面的显著进步,为开发者提供了更加强大和灵活的开发工具。
相关链接:
[1] 发布了.NET 9 Preview 7:https://devblogs.microsoft.com/dotnet/dotnet-9-preview-7/
[2] C# Dev Kit: https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit
[3] .NET Conf 2024 :https://www.dotnetconf.net/