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