.NET 11 RC 2 发布:带着 Go-Live 许可证来了,离正式版只差一步

11 月还没到,.NET 11 已经走到第二个候选发布版了。

微软昨天放出了 .NET 11 Release Candidate 2。和以往一样,RC 版本附带 go-live 支持许可证 ------说人话就是:微软官方允许你把它用在生产环境,出了问题算他们的。如果你对某个新特性眼馋已久,现在上车不算冒险。

工具链这边,VS 2026 Insiders 和装了 C# Dev Kit 的 VS Code 都已经支持 .NET 11。

下面按板块过一遍这次值得关注的变化。

运行时与基础库

CBOR 支持增量读取了。 之前处理 CBOR 数据得一次性加载,现在可以边读边解析,对流式场景和大文件更友好。

后量子加密继续推进。 新增了实验性的复合 ML-KEM 和 HPKE API。虽然是实验性质,但能看出 .NET 在后量子时代的布局是认真的。

两个实用的小改进也值得一提:

  • DataAnnotations 的验证消息现在支持用特性自身的参数来格式化,写多语言错误提示方便了不少
  • HTTP/2 的初始并发量可以配置了,不用再被默认值卡住

另外,iOS 和 tvOS 上的文件锁定默认关闭了------在那两个平台上它本来也帮不上什么忙。

SDK 与构建

  • 文件级指令(file-level directive)的值现在支持引号,路径里有空格不再头疼
  • launch profile 的参数里可以直接用 MSBuild 属性了
  • MSBuild 在项目评估阶段的通配符匹配更快了------解决方案一大,这种优化是能实实在在感觉到的
  • NuGet 支持从命令行配置包的最小发布时长(minimum package age),对付供应链投毒多了一道闸

F# 的更新意外地多

这次 F# 的存在感很强:

  • 计算表达式里支持 runtime async 和 reraise
  • 部分 API 强制要求命名参数,可读性优先
  • FSharp.Core 集合的分配降下来了,编译器自身的内存占用也优化了
  • 可以限制并发异步任务的数量
  • 裁剪(Trimming)和 Native AOT 的支持进一步完善

ASP.NET Core

Web 端这次动静不大,但有一个标志性的变化:QuickGrid 的虚拟化 API 正式摘掉"实验性"的帽子。Blazor 里处理大表格,这套 API 可以安心用了。

.NET MAUI 和移动端

  • 可以直接用 C# 写 UI 创建应用,不碰 XAML 也行
  • 支持 Apple Icon Composer 资源
  • 新增 Apple Shell handler(评估阶段)
  • XAML 编辑体验和热重载继续改进
  • Android 和 Apple 各平台(iOS、Mac Catalyst、macOS、tvOS)都有常规更新

Windows Forms:老树开新花

WinForms 这次的更新列表意外地长:

  • 视觉样式翻新,能跟随 Windows 的视觉和无障碍设置
  • 延迟显示窗体(deferred form reveal),减少启动时的闪烁感
  • Visual Basic 应用程序框架相关更新
  • 批量更新时可以挂起绘制和布局
  • 新增 KioskModeManager 组件------做自助终端、展会展示机的同学可以直接用了
  • 新增一批设计器引导分析器(analyzers)

怎么上手

装 .NET 11 SDK 就行。Windows 上建议搭配最新的 Visual Studio 2026 Insiders;VS Code 用户装个 C# Dev Kit 扩展也能愉快玩耍。

想了解完整细节,dotnet/core 的 GitHub Discussions 上有完整的发布说明,官方每周还有社区 standup 可以直接和开发团队对线。

写在最后

RC 2 意味着功能基本冻结,剩下的就是修 bug 和打磨。按照 .NET 的惯例,正式版会在 11 月的 .NET Conf 期间发布。如果你维护着生产系统,现在正是拿 RC 2 做兼容性验证的好时候------毕竟有 go-live 许可证兜底,出了问题不用自己扛。

你会第一时间升级吗?还是继续蹲 LTS?评论区聊聊。


参考:What's new in .NET 11 / C# 15 / ASP.NET Core / EF Core 官方文档,以及 .NET 11 Breaking Changes 列表。升级前建议先扫一遍破坏性变更。