.NET 9 预览版 5 发布
微软在 6 月发布了.NET 9 预览版的第五个版本。这个新版本的框架预计将在今年晚些时候正式发布,它是一个标准支持(STS)版本,将在 2024 年 11 月 12 日至 2026 年 5 月 12 日期间在多个操作系统上获得 18 个月的支持。这个预览版带来了性能改进和一些新特性,例如增强的 AI 能力、优先级无界通道、SearchValues
的子字符串搜索,以及在 OpenTelemetry 中更灵活的活动链接。
其中一个最重要的特性是 AI 能力的扩展,包括TensorPrimitives
和Tensor<T>
类型的更新版本。TensorPrimitive
类提供了对数值操作的静态方法,其方法覆盖范围从.NET 8 的 40 个增加到大约 200 个。新引入的Tensor<T>
类型旨在提供与 AI 库(如 ML.NET)的高效互操作性,并支持数据操作,如索引和切片。
另一个有趣的更新是优先级无界通道。无界通道是指没有存储项目数量限制的线程通道。新引入的优先级通道通过在System.Threading.Channels
库中添加CreateUnboundedPrioritized<T>
方法来提供,该通道按Comparer<T>.Default
或提供的自定义IComparer<T>
对元素进行排序。
此外,.NET 8 中引入的SearchValues
类型现在支持在更大的字符串中搜索子字符串,这是利用底层平台 SIMD 支持的优化实现。OpenTelemetry 活动链接现在通过添加System.Diagnostics.Activity.AddLink
方法变得更加灵活。
其他更新包括用于Task
的新 API,特别是新的Task.WhenEach
方法,它允许使用 await foreach 循环遍历任务,直到它们完成。还包括对TypeDescriptor
类的修剪支持,一个新的TypeName
类用于解析 ECMA-335 类型名,以及params
的Span
重载的更好性能。
ASP.NET Core 9 预览版的第五个版本的这个更新主要集中在优化静态网络资产的交付和改善 Blazor Server 的重连体验上,同时还引入了用于运行时检测组件渲染模式的新特性以及其他各种改进,旨在简化开发并提升用户体验。
主要改进包括:
静态网络资产交付优化:新的
MapStaticAssets
API 旨在大多数情况下替代UseStaticFiles
。它针对在构建和发布时已知的资产进行优化,使用 gzip 和 brotli 压缩,减少资产大小并提高用户加载时间。Blazor Server 重连体验改善:Blazor Server 应用需要实时连接才能正常工作。新变化引入了指数退避策略进行重连尝试,快速开始并逐渐引入延迟。
运行时检测组件渲染模式:ComponentBase 类现在包括一个 Platform 属性,即将更名为 RendererInfo,具有 Name 和 IsInteractive 属性。这些属性帮助开发者了解组件运行的位置以及是否可交互。
简化 Blazor Web 应用的认证状态序列化:新的 API 使得向现有项目添加认证变得更加容易。
新的.NET MAUI Blazor 混合和 Web 解决方案模板:这个模板简化了创建针对 Android、iOS、Mac、Windows 和 Web 的应用,同时最大化代码重用,并自动为 Blazor Web 应用和.NET MAUI Blazor 混合应用设置项目。
.NET 9 MAUI 预览版的第五个版本的这个更新带来了新的.NET MAUI Blazor 混合和 Web 应用项目模板,以及对 Android API 35 Beta 2 的支持,同时在 Android 平台上对性能和应用大小进行了优化。
新引入的.NET MAUI Blazor 混合和 Web 解决方案模板简化了创建针对 Android、iOS、Mac、Windows 和 Web 的应用,同时最大化代码重用,并自动为 Blazor Web 应用和.NET MAUI Blazor 混合应用设置项目。值得注意的是,MAUI Blazor 混合应用在目标设备上使用 WebView 和 Blazor 移动视图进行渲染,并不是一个完全成熟的本地应用。
对于非 Blazor MAUI 应用在 Android 上的运行,预览版 5 带来了大约 15%的启动时间性能提升。为了实现这一点,代码默认使用 LLVM marshall 方法,修改汇编代码以使用 LLVM marshalling 结构。对于 MAUI Blazor 应用在 Android 上,团队发现了一个导致应用程序挂起的问题,并正在调查根本原因。因此,如果项目针对 Blazor 应用,则禁用此性能优化。
随着 Android 15 Beta 计划的进展,.NET 9 MAUI 预览版 5 增加了对 Android API 25 Beta 2 的绑定,对应于 Android 15 Beta 2 的发布。读者可以在 Android Developers 网站上找到 Android API 25 Beta 2 的完整更改日志。
此外,还添加了大小修剪增强功能,以在发布编译模式下减少编译后的应用大小。可以在项目文件中禁用此功能。
iOS 上.NET MAUI 实现的增强主要集中在修复错误和改进构建质量上。
完整的发布说明可以在 GitHub 官方 MAUI 仓库中找到。此外,GitHub 上还提供了所有五个.NET 9 预览版中 MAUI 更改的完整列表。
文章转载自:张善友
评论