
微软于发布了.NET 10第一个预览版,带来多项语言与执行环境的改进,涵盖C#语法增强、效能最佳化,以及Blazor和.NET MAUI的强化。这次更新不仅提升开发体验,也进一步强化.NET在跨平台与云端应用的竞争力。
在C#部分,这次更新带来数个语法层级的强化,让程序码更简洁且易于维护。nameof现在可用于未绑定的泛型,让泛型类别或方法内部的参照更加直觉,而隐式span转换则进一步简化Span<T>和ReadOnlySpan<T>的使用方式,减少不必要的显式转换,提高记忆体管理效率。此外,首次加入栏位支援属性(Field-backed Properties),让开发者能以更简洁的方式定义具有内部储存栏位的属性,在维持可读性的同时,减少样板程序码的撰写。
效能层面,.NET 10针对执行阶段进行多项最佳化,包括阵列介面方法去虚拟化(Array Interface Method Devirtualization),让JIT编译器能够更有效率地执行常见的阵列操作,将阵列实作的介面方法从虚拟呼叫转换为直接呼叫,减少额外的计算成本开销。此外,.NET 10进一步扩展值型别阵列的堆叠分配(Stack Allocation of Arrays of Value Types),在符合条件的情境下,JIT现在可以将小型、固定大小且不包含垃圾回收指标的值型别阵列直接分配在堆叠,而非堆记忆体,降低垃圾回收压力,进一步提升应用程序的执行效能。同时这次版本也支援AVX10.2,让.NET应用可以在支援的硬件架构上,充分运用最新的向量运算能力,提升数值计算与科学运算的效能。
在网页应用开发方面,.NET 10的ASP.NET Core与Blazor也迎来多项改进,最受瞩目的更新之一是对OpenAPI 3.1的支援,使API开发符合最新的标準规範,提升与各种REST API生态系的相容性。Blazor则在开发体验方面有多项改善,例如RouteAttribute现在支援语法突出显示,让路由设定更清晰可读,而QuickGrid也新增RowClass参数,让开发者能够更灵活地调整UI样式。此外,Blazor的JavaScript互通性进一步强化,支援将Blazor脚本视为静态网页资产,减少外部依赖,提高应用的可移植性与载入效能。
跨平台开发也是这次.NET 10更新的重点,特别是在.NET MAUI的强化上,iOS和Mac Catalyst的CollectionView进行多项效能与稳定性调整,让UI操作更顺畅。在Android开发方面,.NET 10开始支援Android 16,并调整最低支援API的建议版本。此外,这次更新也加入对JDK 21的支援,让开发者可以使用最新的Java环境建置Android应用,同时dotnet run也已支援Android专案,简化开发流程,减少额外的部署步骤。
Entity Framework Core也在这次版本中迎来数个实用的新功能,.NET 10正式支援LeftJoin运算子,让LINQ查询的可读性与效能获得进一步提升,而ExecuteUpdateAsync也开始支援一般的Lambda运算式,使开发者可以更直觉地操作资料库,减少对表示式树(Expression Trees)的依赖,提升程序码的可维护性。