上周,Microsoft 团队发布了 .NET 11 Preview 7,带来了 C#、ASP.NET Core、.NET MAUI、Entity Framework Core、Windows Forms 和 F# 的新特性。其中,C# 语言的 break 和 continue 语句现在可以指定一个外层循环或 switch,使得代码可以直接从内层结构退出或继续执行外层结构,而无需使用标志或 goto。此外,联合类型现在采用“同时尝试两者”的方式进行测试,以及 switch 表达式的穷尽性检查现在也能识别受封闭类型约束的泛型参数。ASP.NET Core 获得了大量新增功能,包括 Blazor 上的交互式服务器线路支持和缓存视图组件。

--91likeyou---

public closed record class Shape;public record class Circle(double Radius) : Shape;public record class Square(double Side) : Shape;static double Area<T>(T shape) where T : Shape => shape switch{ Circle(var r) => Math.PI * r * r, Square(var s) => s * s};复制代码

ASP.NET Core 获得了大量新增功能,其中大多数集中在 Blazor 上。当浏览器标签页被隐藏时,交互式服务器线路现在可以自行暂停,释放服务器资源,直到用户返回。新的 CacheView组件可以缓存服务器端子树的渲染输出,并在缓存命中时重新使用已存储的 HTML,从而减少处理器和内存的使用。

此外,默认启用了五个新的 Blazor 分析器,用于标记常见错误;QuickGrid 还新增了编程式滚动功能。现在内置了验证消息本地化功能,注册字符串本地化器后便会立即启用,而 ValidatableType 和 SkipValidation 属性则结束了预览阶段。

SignalR .NET 客户端现在可以在协商重定向后刷新身份验证,返回服务器发送事件的端点可以在 OpenAPI 3.2 中进行描述,应用程序还可以读取 TLS 通道绑定令牌,以防御中继攻击。

一项值得注意的变化撤销了 Preview 6 中的部分改动:自动跨源保护现在只验证选择启用该功能的端点,与 .NET 10 的行为保持一致,以免破坏现有应用程序。

对于 .NET MAUI,Preview 7 增加了跨平台通行密钥身份验证、XAML 增量热重载和 Shell 路由模板,

接下来,Entity Framework Core 现在可以将 int.Parse 及相关方法转换为 SQL Server CAST,将多种 GroupBy 模式重写为单次联接,从而生成更简洁的查询,同时还增加了对 SQLite 上 16 位 Half 类型的支持。

据报道,Azure Cosmos DB 提供程序已经过现代化改造,开始使用 System.Text.Json,此外,程序包管理器控制台新增了一个 -NoBuild 开关,用于添加和应用迁移。

Windows Forms 通过 VisualStylesMode 引入了一条可选择启用的现代渲染管线,同时还增加了响应系统视觉设置的方法、延迟显示窗体功能,以避免据报道会在启动时出现的无样式闪烁,以及一个 SuspendPainting 作用域,用于减少批量更新期间的闪烁。

F# 编程语言获得了一些小型编译器修复,包括支持在普通 let 中使用计算表达式绑定,以及在递归模块中正确解析属性。

感兴趣的读者和开发者可以在 GitHub 的 dotnet/core 仓库中查看 .NET 11 Preview 7 的完整发布说明。

:

🔥 热词:#NET · #value · #break · #11 · #Preview · #foundValue · #outer · #for