微软发布.NET 11 Release Candidate 1,这是.NET 11开发周期的首个候选发布版本。该版本附带Go-Live支持许可,团队可将其用于生产应用。公告指出,.NET 11 RC1受到新版Visual Studio 2026 Insiders支持,也可在安装C# Dev Kit的Visual Studio Code中使用。
对于以.NET 11为目标的项目,RC1将C# 15设为默认语言版本。该版本将预览周期中加入的功能转为稳定版,包括集合表达式参数、联合类型、非虚静态接口成员、封闭类层次结构、带标签的break和continue,以及扩展索引器。联合类型不再需要启用预览语言设置,Roslyn现在使用最终确定的CSharp15名称,另有一个新API可向分析器公开联合类型的各个分支。Unsafe Evolution仍是需要单独启用标志的预览功能,RC1允许在unsafe上下文中使用await。
F# 11也成为默认语言版本,记录展开和直接构造委托已转为稳定功能。字符串插值现在编译为String.Concat,而非基于反射的printf引擎,使其能够与裁剪和Native AOT配合使用。该版本还为记录和联合类型增加无需反射的ToString输出,支持inheritdoc和include文档标签,并新增Async.RunSynchronouslyImmediate函数。
在SDK中,dotnet test现在可以运行以Android、iOS、macOS和Mac Catalyst为目标的测试项目,并为各平台提供新项目模板。设置SOURCE_DATE_EPOCH后,容器发布可在不同构建中生成具有相同摘要的镜像,若目标注册表中已存在镜像清单还会跳过上传。ASP.NET Core最终确定服务器端和.NET客户端的SignalR身份验证刷新API,并为TypeScript客户端增加同样支持;Blazor Server会话无需重新连接即可采用刷新后的身份信息。
社区反应大多着眼于实际使用。多名开发者表示,将现有代码库迁移到.NET 11只需安装SDK并对项目文件做少量修改,一位评论者称Go-Live许可已足以让他们将容器投入生产环境。主要批评集中在联合类型上:多名评论者指出,联合类型无法通过System.Text.Json完成序列化与反序列化的往返处理,因为序列化输出不包含类型判别字段。微软.NET团队的Jon Galloway回复称,发布文章列出的是相对于上一个预览版的变化,而不是相对于.NET 10的变化。
咨询
咨询