.NET 11 升级:硬件门槛提升与异步革命

What's new in the .NET 11 runtime

.NET 11 带来了底层运行时的重要变革。首先,最低硬件要求全面升级,x86/x64 架构基准提升至 x86-64-v2,Arm64 架构则要求支持 LSE 指令集,这意味着部分老旧设备将无法运行。其次,Runtime Async V2 预览功能登场,它用运行时管理的挂起机制取代了编译器生成的状态机,显著简化了调用栈,让调试和性能分析更加直观。此外,JIT 编译器还引入了多项优化,如边界检查消除、泛型虚方法去虚拟化以及更高效的数值转换,旨在进一步提升高吞吐场景下的执行效率。

Runtime Async 让实际的方法直接出现在调用栈上,彻底取代了编译器生成的状态机基础设施。
  1. CharlieDigital

    以我的经验来看,C# 和 .NET 在很大程度上都被“低估”了,这主要源于历史遗留问题。

    有些人至今仍认为 .NET 只能在 Windows 上运行。有些人自从 .NET Framework 时代后就再也没看过 C#。还有些人对微软在开源方面的一些决定(比如调试器、热重载的闹剧等)依然耿耿于怀。

    但就日常使用 C# 和 .NET 开发后端而言?体验真的棒极了。AI 似乎非常喜欢它,而且有很多工具能让智能体(agents)火力全开。Roslyn 分析器、源生成器、编译型语言中可用的热重载、微软提供的大量优质文档,以及代码库之间普遍的低方差和高一致性(比如在 Node 生态中遇到的 Drizzle vs Prisma vs TypeORM vs Kysely vs ...)。

  2. giancarlostoro

    C# 是我在 VB6 之后的第二门编程语言。我记得 2000 年代初,我 12 岁时,用我最好的朋友的电脑(他的网速更快)试图下载 VB .NET,仅仅因为它是免费的,结果当我发现无法直接运行我想在上面的 VB6 项目时,极度失望。几年后,在 2007 到 2009 年间,我尝试了 C#,那真是改变了我的生活。

    我在零售店(迪士尼)工作后上了大学,毕业后,我的第一份工作本应是做 C#,但项目没获批,所以我第一次接触了 Python——我超爱它,然后是 JavaScript——我讨厌它,但至今对它爱恨交加,最后又回到了 C#。不过那时不是 .NET 3.5,他们开始使用 .NET Core,那真是……另一回事,在最初的 .NET Core 日子里,让人拔掉了不少牙(意指非常痛苦)。

  3. 1a527dd5

    https://learn.microsoft.com/en-us/dotnet/core/compatibility/...

    请注意:

    (decimal)0.1

    // .NET 10: 0.1

    // .NET 11: 0.1000000000000000055511151231

  4. ablob

    我不禁想知道,从长远来看,这对自定义异步实现意味着什么。

    我曾考虑使用自己的 AsyncBuilder 来引入一种基础的“计算表达式”能力。但现在看来,这可能行不通了。

  5. wofo

    一如既往,.NET 发布的内容太棒了!运行时对异步的支持让我感到惊讶……我理解没有代码中的状态机,堆栈跟踪会更友好,但我没想到他们能切换到运行时版本并保持等效的性能。太酷了!

  6. jotato

    大家现在用什么 IDE 来写 C#?想当年(大约 2008 年),Visual Studio 是你唯一真正的选择。

    但我现在用的是 Linux。如果我想重新捡起来,应该用什么?

  7. GaProgMan

    > .NET 11 是一个标准支持版(STS)发布,根据 .NET 支持策略享有两年的支持。STS 和长期支持版(LTS)发布具有相同的质量和运维策略;区别仅在于支持时长。.NET 10 仍然是受支持的一个 LTS 选项。无论你选择哪个版本,都请保持与运维更新同步。

    他们把重点藏得太深了。

    - .NET 10 的生命周期将于 2028 年 11 月 14 日结束

    - .NET 11 的生命周期将于 2028 年 11 月 9 日结束

    这意味着任何升级到 11 的人,支持天数都会更少。但思路是你会在 12 版 RTM(正式发行)后尽快升级。

    问题在于,我有客户拒绝从 2.1 迁移(甚至拒绝升级到 2.1 的重新发布版:2.3)。

  8. mgdev

    我觉得他们做了很多工作来解决那些让非 Windows 开发者望而却步的令人困惑的版本号和运行时兼容性问题。

    然而,他们仍然面临一个极其严重的品牌问题。

    这真的很可惜,因为作为一个运行时,它相当出色,尤其是 F#,用起来很有趣。他们现在也有良好的跨平台支持和工具链,这在几年前是没有的。

    再加上事实上现在没人真的在写代码了(多亏了 AI),这本来可以成为 AI 原生开发环境的绝佳运行时。

    但这永远不会发生。

同日更多故事

2026-11-10