微软发布.NET 11 首个预览版:引入 Zstd 压缩、推进 WebAssembly 与 Android 迁移,为 C# 15 与 F# 11 带来新特性

哈哈库 新闻资讯 14

2 月 15 日消息,微软于当地时间 2 月 10 日发布了下一代 .NET 跨平台软件开发平台.NET 11 的首个预览版(Preview 1),标志着其 2026 年开发周期的启动。

微软表示,.NET 11 将于今年 11 月推出稳定版,并将作为标准期限支持(STS)版本提供两年技术支持。

据介绍,本次更新覆盖运行时、SDK、类库、C#、F#、ASP.NET Core、Blazor、.NET MAUI 等多个组件,重点推进 CoreCLR 运行时对 Mono 的替代,并引入多项性能优化。微软建议开发者配合最新的 Visual Studio Insiders 或 Visual Studio Code(搭配 C# Dev Kit 扩展)进行体验。

在运行时层面,.NET 11 Preview 1 引入了一种新的“运行时级别异步机制”(runtime-level async),包含配置、诊断以及 AOT(提前编译)支持。与此同时,.NET 运行时也带来多项性能改进。

JIT(即时编译器)方面,.NET 11 的改动重点包括提升启动吞吐量、启用更多优化并降低关键代码模式中的开销。微软称,其中一项改进是提升多核 JIT 的 MAX_METHODS 限制,以更好支持大型工作负载并改善方法密集型应用的启动表现。此外,非共享的泛型虚方法将被去虚拟化,以减少虚调用开销并为进一步的内联与优化创造条件。JIT 还扩展了基于模式的归纳变量分析,以覆盖更多循环分析场景,从而带来更多循环优化机会。

在 WebAssembly 方面,微软正在推进将 .NET WebAssembly 从 Mono 运行时迁移到 CoreCLR。微软从 .NET 11 开始启动将 CoreCLR 引入 WebAssembly 的初步工作,但该特性在 Preview 1 中尚未达到可正式发布的状态。作为相关工作的一部分,.NET 11 Preview 1 开始启用面向 Wasm 的 RyuJit,用于 AOT 编译。

微软正努力进一步减少 .NET 对 Mono 的依赖。尽管这一变化对开发者而言“感知不强”,但 Mono 仍被用于 .NET MAUI(Multi-platform App UI)开发的移动应用,以及 WebAssembly。此外,Mono 项目已移交给 WineHQ,但微软仍在 .NET 代码中维护一份 Mono 运行时。

在移动端方面,.NET 11 的一个变化是 CoreCLR 成为 Android 构建的默认运行时。有报道指出,在 .NET 10 中该功能仍属实验性,而在 .NET 11 中已成为默认配置,微软称这将改善与 .NET 其他部分的兼容性,并降低启动时间。

在类库更新方面,.NET 11 引入 Zstandard(Zstd)压缩支持。与现有算法相比,Zstd 可在保持竞争力压缩比的同时,实现更快的压缩与解压性能;新增 API 覆盖流式、一次性(one-shot)以及基于字典的压缩与解压能力。此外,.NET 11 还加入了“按年份缓存时区转换”的机制,用于提升时间转换性能。该缓存以 UTC 格式存储某一年的所有转换信息,减少转换过程中重复规则查询。

语言层面,.NET 11 Preview 1 引入 C# 15 与 F# 11 对应更新。其中 C# 15 增加两项新特性:

  • 其一为“集合表达式参数”,用于在集合表达式无法直接生成所需集合类型的场景下,为开发者提供在语法中指定容量、比较器或其他构造参数的能力;

  • 其二为“扩展布局支持”,当类型应用 System.Runtime.InteropServices.ExtendedLayoutAttribute 时,C# 编译器会发出 TypeAttributes.ExtendedLayout。该特性主要供 .NET 运行时团队在互操作场景中使用。

F# 11 方面,微软在 .NET 11 Preview 1 中默认启用并行编译,并提升了对计算表达式密集代码的编译速度,同时加入一些较小的新语言特性。此外,F# 移除了 ML 兼容性,此前为兼容 ML 而保留的 asr、land、lor、lsl、lsr、lxor 等关键字现在可作为标识符使用。微软称,F# 最初作为运行在 .NET 上的 OCaml 方言诞生,编译器长期保留了诸如 .ml、.mli 文件扩展名、#light "off" 指令以及 --mlcompatibility 等兼容性构造。如今这一阶段宣告结束,编译器、解析器和测试套件中约 7000 行遗留代码已被移除。

在开发工具与 SDK 方面,.NET 11 Preview 1 带来 CLI 命令改进、新的 .NET 代码分析器等变化。dotnet run(注: .NET CLI 中的一个核心命令)将增强交互式选择工作流,为 .NET MAUI 与移动开发场景的改进打基础。

在 Web 框架方面,Blazor 新增 EnvironmentBoundary 组件,用于根据宿主环境进行条件渲染,类似于 MVC 的环境标签辅助器,可在服务器与 WebAssembly 两种托管模式中提供一致的渲染方式。

在 .NET MAUI 方面,微软将 XAML 源生成设为默认,以提升构建时间、调试性能以及发布运行时性能,并称调试构建的应用行为将与发布构建更一致。此外,WPF(Windows Presentation Foundation)在 Windows 10 上针对 Fluent 窗口背景与底色问题进行了修复。

抱歉,评论功能暂时关闭!