
微软宣布了.NET 10的第六个预览版,引入了.NET 运行时、SDK、库、C#、ASP.NET Core、Blazor 和.NET MAUI 等的广泛增强。正如官方发布所述,更新专注于提高性能、开发人员体验和跨平台工具。
在ASP.NET Core领域,内存管理已经得到改进。Kestrel、IIS 和 HTTP.sys 现在支持在应用程序空闲时自动从其内部池中驱逐未使用的内存。据报道,这一变化不需要开发人员采取行动,旨在有效减少内存使用。内存池的指标现在在 Microsoft.AspNetCore.MemoryPool 下暴露,开发人员可以使用新的 IMemoryPoolFactory 接口构建自定义内存池。
Blazor也得到了几个关键更新。新的<LinkPreload />组件提供了更多对预加载框架资源的控制,提高了性能和基本 URL 检测。Blazor WebAssembly 项目现在可以通过设置 WasmBundlerFriendlyBootConfig 为 true 来生成与 webpack 等 JavaScript 打包器兼容的输出,允许更好地与现代前端流水线集成。
Blazor 中的验证支持已扩展到包括表单中的嵌套对象和集合。这一新功能通过 AddValidation()和[ValidatableType]属性启用。需要注意的是,该属性仍然是实验性的,需要诊断抑制。Blazor 诊断也得到了改进,服务器 circuit 的跟踪现在作为顶级活动暴露,简化了Application Insights等工具中的遥测。
Blazor Server 现在支持持久化 circuit 状态,允许用户在重新连接后恢复活动,即使在服务器端被驱逐后。开发人员可以通过新的 Blazor.pause()和 Blazor.resume() API 控制 circuit 行为,正如所解释的那样,这将有助于在空闲期间减少服务器资源消耗。
Blazor 的导航行为已更新以保持一致性,现在有一个配置开关可以选择禁用 NavigationException 的使用。ASP.NET Core Identity 现在包括对密码的支持,使用 WebAuthn 和 FIDO2 标准实现现代、防网络钓鱼的认证。Blazor Web App 模板包括对此功能的内置支持。
最小的 API 现在可以使用 IProblemDetailsService 集成验证错误响应,提供更一致和可定制的错误输出。据报道,验证 API 已经移动到新的 Microsoft.Extensions.Validation 包和命名空间,扩大了它们在 ASP.NET Core 之外的使用。
关于.NET MAUI,MediaPicker 组件已增强以支持多文件选择和 API 内图像压缩。开发人员现在还可以在 BlazorWebView 和 HybridWebView 中拦截网络请求,实现修改头部或注入自定义响应等高级场景。
此外,各种 UI 修复已在控件中实施,包括 CollectionView、CarouselView 和 SearchBar,以及内存泄漏解决和在 Windows、Android 和 iOS 上的改进渲染。此外,.NET 现在支持 Android API 级别 35 和 36,并包括对诊断和互操作性能的改进。在苹果平台上,该版本与 Xcode 16.4 对齐,并带来了可靠性和运行时增强。
.NET SDK为工具作者引入了重大改进,包括在单个包中支持特定平台的工具,以及新的dotnet tool exec 命令,正如官方文档中所描述的那样,允许无需安装的一次性执行。轻量级dnx脚本进一步简化了工具执行。
CLI 自省能力已通过--cli-schema 选项进行了扩展,该选项输出命令的机器可读 JSON 表示,辅助自动化和脚本编写。基于文件的应用程序得到了额外的改进,包括包括支持原生 AOT 发布、项目引用,以及增强了对 shell 执行的 shebang 支持。
对此感兴趣的读者,完整的发布说明和技术文档可在官方.NET 文档上找到,开发人员也可以加入GitHub讨论。
原文链接:
评论