.NET 11 Preview 3 发布:C# 15 union 类型终补齐,Kestrel 暴增 40%

大家好,我是刚子。

上周微软放出了 .NET 11 Preview 3,这是 .NET 11 在 2026 年 11 月正式发布前的第三个预览版。看完更新内容后,我的第一反应是:这波升级不仅是修修补补,而是实实在在能让你写出更快、更稳代码的变化。

今天刚子就把这个预览版里最值得关注的几个更新给你捋一捋,方便你评估要不要提前尝鲜。

一、C# 15:Union 类型补齐 IDE 体验

C# 15 最大的语法亮点------联合类型(Union Type),之前在 Preview 2 中已加入编译器支持,Preview 3 则补齐了 IDE 体验。简单来说,union 类型允许你声明一个值必须是固定类型集合中的某一种,编译器还会强制你穷尽模式匹配。

现在智能感知、重构、导航全链路可用,写 union 类型时体验大幅提升。划重点 :预览版中仍需要手动添加 UnionAttributeIUnion 接口的 Polyfill 代码,框架正式版会内置。

csharp 复制代码
// union 类型示例
union Result<T>
{
    Success(T Value);
    Error(string Message);
}

二、运行时:异步更轻 + JIT 更聪明 + WASM 更强

Runtime Async 门槛大降

Preview 3 移除了对 EnablePreviewFeatures 的依赖,现在只需设置 runtime-async=on 即可启用运行时原生异步支持。这意味着 NativeAOT 和 ReadyToRun 全面支持异步续期对象复用策略,高频场景下的内存分配压力明显降低,对云原生部署非常友好。运行时原生异步还能产生更简洁的堆栈跟踪和更低的开销。

JIT 持续优化

  • switch 多目标表达式自动折叠 :像 x is 0 or 1 or 2 这类模式匹配,编译后直接变成无分支检查,执行路径更干脆。
  • 倒序索引边界检查剔除values[^1] + values[^2] 这类写法的冗余检查被自动优化。
  • x86 老硬件转换提速 :即使没有 AVX-512,uintfloat/double 的转换也能吃上性能红利。

WebAssembly 浏览器托管进阶

CoreCLR 成为 .NET WebAssembly SDK 的目标库,WebCIL 载荷加载机制让调试符号与堆栈跟踪更清晰,float[] / Span 跨 JS 边界直传,不再需要手动转换,数值计算场景开发体验大幅提升。划重点 :NativeAOT 输出规范有变更,Unix 平台生成的动态库现在遵循传统 lib 前缀(如 libMyLib.so),现有构建脚本记得同步更新。

三、基础类库:JSON 更自由 + I/O 能力再扩展

System.Text.Json 命名与忽略策略升级

  • 新增 JsonNamingPolicy.PascalCase 支持。
  • 支持 [JsonNamingPolicy] 成员级覆盖,全局驼峰 + 个别字段帕斯卡可以混用了。
  • 支持 [JsonIgnore(Condition = ...)] 类型级默认行为,模型层统一定义忽略策略,序列化配置代码少写一半。

Zstandard 正式归位

ZstandardStream 移入 System.IO.Compression 命名空间,与 DeflateStream / GZipStream 同级管理,引用更简洁。Zstandard 压缩算法比 gzip 和 brotli 更快,压缩率相近。

低层 I/O 能力增强

  • ZIP 读取自动校验 CRC32,损坏文件提前抛出 InvalidDataException,拒绝"静默吞错"。
  • SafeFileHandle.Type 可识别句柄类型(文件/管道/套接字)。
  • CreateAnonymousPipe 支持读写端独立异步配置。
  • RandomAccess 兼容非可寻址句柄,管道、套接字也能用 Read/Write

正则表达式更新

新增 RegexOptions.AnyNewLine^$. 现在能识别 \r\n\u0085\u2028 等全部换行符,跨平台文本处理不再踩坑。

四、SDK & ASP.NET Core:效率狂飙

  • 解决方案筛选器(.slnf)CLI 直编dotnet sln MyApp.slnf add,不用再手动在 VS 里勾选。
  • dotnet run -e 选项:直接从命令行传递环境变量。
  • ASP.NET Core Kestrel 吞吐量提升 20%--40%:在端口扫描或客户端乱配的场景下提升明显。
  • dotnet new webworker 模板:可以把重活扔给 Web Worker,UI 线程不再被卡住。
  • EF Core:支持向量查询,可以做语义搜索。

五、AI & 云原生:方向级变化

  • AI 能力正式进入 .NET 核心,支持统一调用大模型(OpenAI API / 本地模型),不再关心 SDK 差异,可随时切换模型。
  • 云原生能力变成默认能力,原生集成 OpenTelemetry,自动追踪;容器 / Kubernetes 适配更好;.NET Aspire 提供微服务编排。
  • 支持 BFloat16 数值计算。

结语:.NET 11 Preview 3 不是那种改改版本号的敷衍更新。Runtime Async 让异步代码更轻量,JIT 优化让日常代码跑得更快,Zstandard 压缩让日志和 API 传输更高效,加上 AI 能力的原生集成------这波升级确实值得期待。

我是刚子,一个紧跟 .NET 技术前沿的程序员。咱们下回见!

原文链接:https://www.codeobservatory.cn/Post/dotnet-11-preview-3-csharp-15-union-types-kestrel-performance

相关推荐
Wenzar_4 小时前
**零信任架构下的微服务权限控制:用Go实现基于JWT的动态访问策略**在现代云原生环境中,
java·python·微服务·云原生·架构
2501_9160088913 小时前
深入解析iOS应用启动性能优化策略与实践
android·ios·性能优化·小程序·uni-app·cocoa·iphone
子牙老师15 小时前
软件虚拟化 vs 硬件虚拟化
linux·性能优化·云计算
阿里云云原生16 小时前
给 OpenClaw 加上企业级 Memory,你的 Agent 终于不用再问第二遍
云原生
平行云17 小时前
虚拟直播混合式2D/3D应用程序实时云渲染推流解决方案
linux·unity·云原生·ue5·图形渲染·实时云渲染·像素流送
longerxin202018 小时前
kubeasz 快速指南:一键部署 Kubernetes-k8s 测试环境
云原生·容器·kubernetes
cyber_两只龙宝18 小时前
【Oracle】 Oracle之SQL的子查询
linux·运维·数据库·sql·云原生·oracle
特长腿特长19 小时前
LVS_DR 模式的原理
linux·运维·网络·云原生·centos·lvs
一只fish20 小时前
SQL 性能优化实战:从入门到极致的七重境界
数据库·sql·性能优化