.NET 11预览版1提供运行时异步、Zstandard支持和C#15功能

小新 从九品 (待诏) 2026-02-27 02:46 1 0
小新 从九品 (待诏) 楼主
2026-02-27 02:46
第1楼

摘要:NET 11是一个标准的短期支持版本,计划于2026年11月发布。这些库通过新的ZstandardStream类获得原生Zstandard"压缩支持,为AI和机器学习工作负载增加了BFloat16浮点类型,HMAC和KMAC验证API,以及Socket.ConnectAsync中的Happy Eyeballs支持。nbsp;// 使用ZstandardStream压缩数据 using var compressStream = new ZstandardStream(outputStream, CompressionMode.


微软.NET团队发布了.NET 11"的第一个预览版,引入了.NET运行时、SDK、库、C# 15、F#、ASP.NET Core、Blazor和.NET MAUI的更新。正如官方公告中所述,.NET 11是一个标准的短期支持版本,计划于2026年11月发布。

 

这个预览版的主要运行时特性是Runtime Async",被描述为.NET中异步方法工作方式的重大变化。根据发布说明,自从C# 5引入了async/await,编译器一直负责将异步方法重写为状态机结构,以跟踪在挂起点之间的进度。有了Runtime Async,运行时本身现在将异步方法视为一等概念,并接管了挂起和恢复方法的责任。

 

据报道,CoreCLR对Runtime Async的支持在这次预览版中默认启用,不需要环境变量。还增加了原生AOT支持。然而,在预览版1中,还没有核心运行时库使用运行时异步支持编译,预计这将在即将到来的预览版中改变。想要尝试运行时异步编译的开发者需要启用预览功能,并在他们的项目文件中设置编译器标志。

 

除了Runtime Async,预览版开始了将CoreCLR从Mono运行时迁移到WebAssembly的基础工作,尽管这还没有准备好用于通用。这些库通过新的ZstandardStream类获得原生Zstandard"压缩支持,为AI和机器学习工作负载增加了BFloat16浮点类型,HMAC和KMAC验证API,以及Socket.ConnectAsync中的Happy Eyeballs支持。JIT改进专注于启动吞吐量和减少关键代码模式中的开销。

 

// 使用ZstandardStream压缩数据 using var compressStream = new ZstandardStream(outputStream, CompressionMode.Compress); await inputStream.CopyToAsync(compressStream); // 使用ZstandardStream解压缩数据 using var decompressStream = new ZstandardStream(inputStream, CompressionMode.Decompress); await decompressStream.CopyToAsync(outputStream);

 

在语言方面,C# 15"引入了集合表达式参数和扩展布局支持。F#默认启用了并行编译,据报道,这是多年社区努力的结果。

 

这次发布的其他变化包括.NET MAUI中默认的XAML"源代码生成,CoreCLR作为发布构建的默认Android运行时,dotnet run的交互式目标框架和设备选择,新的SDK代码分析器,Blazor的EnvironmentBoundary组件,Blazor WebAssembly中的IHostedService支持,项目引用的热重载改进,以及32位进程的GC堆硬限制。

 

关于ASP.NET Core",Blazor在这个预览版中收到了几项新增。正如发布说明中所述,新的EnvironmentBoundary组件支持基于托管环境的条件渲染,与MVC环境标签助手保持一致。Blazor WebAssembly现在支持IHostedService,在浏览器中运行后台服务,并且可以通过IConfiguration访问环境变量,进行运行时配置而无需重建应用程序。

 

框架还增加了新的Label和DisplayName组件用于表单,QuickGrid"行点击事件,相对URI导航,二进制文件响应的OpenAPI模式支持,以及新的IOutputCachePolicyProvider接口用于动态输出缓存策略。WSL环境中的开发证书现在在WSL和Windows之间自动信任。

 

社区对这个预览版的反响褒贬不一。在Reddit"上,一些开发者对Runtime Async表示热情,有人希望它能解决async调用堆栈在第一个await之后变得不可靠的长期问题。交互式dotnet run选择也受到了广泛赞誉。然而,关于C# 15中的集合表达式参数特性的讨论在公告博客帖子"评论和Reddit上占据了主导地位,顶级博客评论称其为不必要的,其他人质疑语言是否变得过度工程化。

 

一些开发者还批评发布说明看起来像是AI生成的,缺乏以前.NET预览版中看到的细节和示例。轻松一点说,一位Reddit用户对运行时说明中缺乏AI营销表示欢迎。

 

对于感兴趣的读者,完整的发布说明可以在官方.NET GitHub"仓库和Microsoft文档网站上找到。

 

原文链接:

https://www.infoq.com/news/2026/02/dotnet-11-preview1/"

  • 1 / 1 页
敬请注意:文中内容观点和各种评论不代表本网立场!若有违规侵权,请联系我们.