微软在6月发布了.NET 9预览版的第五个版本。这个新版本的框架预计将在今年晚些时候正式发布,它是一个标准支持(STS)版本,将在2024年11月12日至2026年5月12日期间在多个操作系统上获得18个月的支持。这个预览版带来了性能改进和一些新特性,例如增强的AI能力、优先级无界通道、SearchValues的子字符串搜索,以及在OpenTelemetry中更灵活的活动链接。

其中一个最重要的特性是AI能力的扩展,包括TensorPrimitivesTensor<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类型名,以及paramsSpan重载的更好性能。

ASP.NET Core 9预览版的第五个版本的这个更新主要集中在优化静态网络资产的交付和改善Blazor Server的重连体验上,同时还引入了用于运行时检测组件渲染模式的新特性以及其他各种改进,旨在简化开发并提升用户体验。

主要改进包括:

  1. 静态网络资产交付优化:新的MapStaticAssets API旨在大多数情况下替代UseStaticFiles。它针对在构建和发布时已知的资产进行优化,使用gzip和brotli压缩,减少资产大小并提高用户加载时间。

  2. Blazor Server重连体验改善:Blazor Server应用需要实时连接才能正常工作。新变化引入了指数退避策略进行重连尝试,快速开始并逐渐引入延迟。

  3. 运行时检测组件渲染模式:ComponentBase类现在包括一个Platform属性,即将更名为RendererInfo,具有Name和IsInteractive属性。这些属性帮助开发者了解组件运行的位置以及是否可交互。

  4. 简化Blazor Web应用的认证状态序列化:新的API使得向现有项目添加认证变得更加容易。

  5. 新的.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更改的完整列表。

.NET 9 预览版 5 发布的更多相关文章

  1. 消息:SQL Server 2017(vNext)的第三个公开的CTP(社区技术预览版)发布了

    今天看到了一个新闻,跟大家分享一下,有兴趣的可以去尝试一下. SQL Server 2017 CTP3于5月23日发布了,详细版本号是6.7.55.0. 大家可以去安装试试.在下载页面,目前是SQL  ...

  2. 微软.NET CORE 3.0 预览版 7 发布:大幅减少 SDK 空间大小

    据悉,这个预览版是 .Net Core 3 中重要的版本,可以视为原计划在 7 月发布的 RC 版本 (引自微软 .NET Core 首席 Program Manager Richard 先生原话), ...

  3. .NET 5.0预览版6发布:支持Windows ARM64设备

    2020年6月25日,微软dotnet团队在博客宣布了第六个 .NET 5.0 的预览版:https://devblogs.microsoft.com/dotnet/announcing-net-5- ...

  4. .NET 6 预览版 5 发布

    很高兴.NET 6 预览版5终于跟大家见面了.我们现在正处于.NET 6 的后半部分,开始整合一些重要的功能. 例如.NET SDK 工作负载,它是我们.NET 统一愿景的基础,可以支持更多类型的应用 ...

  5. .NET 6 预览版 7 发布——最后一个预览版

    原文:bit.ly/2VJxjxQ 作者:Richard 翻译:精致码农-王亮 说明:文中有大量的超链接,这些链接在公众号文章中被自动剔除,一部分包含超链接列表的小段落被我删减了,如果你对此感兴趣,请 ...

  6. HarmonyOS 3.0.0开发者预览版全新发布

    2021年10月22日在华为开发者大会HDC.Together 2021 主题演讲上,我们发布了HarmonyOS 3.0.0开发者预览版,主要内容包括:Harmony设计系统.ArkUI 3.0.A ...

  7. .NET 7 预览版 1 发布

    宣布 .NET 7 预览版 1 Jeremy 2022 年 2 月 17 日 今天,我们很高兴地宣布 .NET 历史上的下一个里程碑.在庆祝社区和 20 年创新的同时,.NET 7 Preview 1 ...

  8. 传Windows 9预览版今秋发布

    据ZDNet长期关注微软动态的资深人士玛丽•乔•弗利(Mary Jo Foley)称,Windows 9预览版将会在9月或者10月推出.按照这一进度,代号为“Threshold’”的Windows 9 ...

  9. 宣布发布全新的 Windows Azure 缓存预览版

    全新 Windows Azure 缓存的预览版现已发布.此托管服务可以提供闪电般的数据访问速度,以帮助您构建更具可伸缩性.响应更快的应用程序. 详情如下: ·    托管式缓存:这一全新的托管服务为需 ...

  10. 实时人工智能:微软发布Project Brainwave预览版 现场可编程门阵列(Field Programmable Gate Array,简称FPGA) 硬件设计可以迅速演进

    https://mp.weixin.qq.com/s/bAPiPURZd-YsbV5PbzwpQQ 编者按:随着各大公司对于数据计算的要求越来越高,实时AI成为了研究者们关注的重点.在美国西雅图举行的 ...

随机推荐

  1. jquery 给表格添加或删除一行

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. jQuery模态框原理

    <!-- 引入jQuery.js --> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquer ...

  3. WPF实现轮播图

    1.效果图 2.前端代码 <Window x:Class="LiveChartDemo.View.CarouselView" xmlns="http://schem ...

  4. 在 Flask 项目中配置 Session:简明指南

    在 Flask 项目中配置 Session:简明指南 本文介绍如何在 Flask 项目中配置会话 1. Flask 内置会话 Flask 自带会话管理功能,使用客户端 Cookie 存储会话数据.默认 ...

  5. 基于ReAct机制的AI Agent

    当前,在各个大厂纷纷卷LLM的情况下,各自都借助自己的LLM推出了自己的AI Agent,比如字节的Coze,百度的千帆等,还有开源的Dify. 你是否想知道其中的原理?是否想过自己如何实现一套AI ...

  6. kubernetes——资源管理

    Kubernetes 资源管理 介绍 kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes. kubernetes的最小管理单元是pod而不是容器,所以只能将 ...

  7. 后端返回html字符串 样式覆盖全局必须用 iframe嵌套显示才行

    后端返回html字符串 样式覆盖全局必须用 iframe嵌套显示才行 $.axios({          method: "POST",          url: progre ...

  8. kettle从入门到精通 第三十八课 kettle 分页全量同步(数据量大)

    1.上一课我们学习了在数据量小的情况下的全量同步示例,本次我们一起学习下kettle 分页全量同步. 2.kettle分页全量同步示例依然基于test数据库,从t1表全量同步数据到t2表,由于t1表的 ...

  9. ABC321题解

    E: problem LCA题. 我们枚举向上跳 \(t\) 步,跳到了 \(y\). 假如说 \(t = 0\) 那么我们计算 \(\text{clac}(x,k)\) 即可.(\(\text{cl ...

  10. vue排行榜 加单位