在今天的文章中,我们将了解一下最近发布的.NET 9及其特性。技术领域在不断发展,.NET平台也随之持续演进。微软推出了.NET 9,它包含了诸多旨在让开发人员的工作更轻松、更高效且更安全的增强功能。这个版本囊括了数千项性能、安全以及功能方面的改进,为软件开发设立了新的标杆。让我们一起来探索.NET 9那些令人激动的特性吧。
性能增强:速度与效率
应用程序大小动态适配(DATAS)
垃圾回收器(Garbage Collector,简称GC)中引入的应用程序大小动态适配(Dynamic Adaptation to Application Size,简称DATAS)特性是一项重大变革。这一创新功能允许垃圾回收器根据应用程序的大小动态调整其行为,优化内存管理。无论你正在开发的是微服务还是大型企业应用程序,DATAS都能确保你的应用程序性能得到最大程度的优化。
控制流强制技术(CET)
在当今的数字时代,安全性至关重要,.NET 9通过控制流强制技术(Control-Flow Enforcement Technology,简称CET)来应对这一问题。对于Windows应用程序,CET默认启用,它通过减轻控制流劫持攻击来增强安全性。这一先进特性确保你的应用程序能够抵御复杂的漏洞利用行为。
增强的性能指标
.NET 9带来了一系列性能优化:
- 循环优化:循环执行时间有了显著改进。
- 内联优化:增强的内联策略减少了函数调用开销。
- Arm64优化:针对Arm64处理器的专门向量化和代码生成带来了显著的性能提升。
C# 13:重新定义编码简洁性
C# 13引入了一些强大的特性,旨在让编写清晰高效的代码变得比以往更容易:
- 参数集合:通过将参数声明为集合来简化方法签名,针对具有可变参数的方法增强了代码可读性。
- 增强的锁类型:在多线程编程场景中扩展了线程安全选项,同时降低了复杂性。
- 新的转义字符:一个通用的转义字符简化了字符串操作,提供了更大的灵活性。
- 隐式索引访问:通过直观、直接地访问元素来简化集合或数组的初始化。
###.NET Aspire:用于现代开发的高级构建与遥测工具
.NET Aspire引入了一套增强的工具,旨在简化开发流程,并提供对应用程序性能更深入的洞察:
- 增强的MSBuild SDK:新的Aspire.AppHost.Sdk MSBuild SDK简化了开发环境的设置。将此SDK添加到项目中后,所有必要的组件都会通过NuGet自动下载,无需单独安装.NET工作负载来构建.NET Aspire应用程序。
- 改进的仪表盘:.NET Aspire仪表盘为监控应用程序遥测提供了一个统一的界面。它能全面洞察项目指标,包括日志、跟踪信息以及各种度量指标,便于进行有效的调试和性能分析。
- 遥测增强:与OpenTelemetry的集成允许对分布式系统进行标准化的跟踪和监控。这种集成使开发人员能够更好地了解应用程序的行为和性能。
- 依赖等待支持:.NET Aspire内置的服务发现功能使前端应用程序能够以最少的配置找到后端API,确保应用程序启动更顺畅,并能高效管理初始化依赖关系。
###.NET MAUI:通过轻量级高效应用程序增强跨平台移动开发
.NET多平台应用程序用户界面(.NET Multi-platform App UI,简称.NET MAUI)通过引入一些特性持续推进跨平台移动应用程序开发,这些特性可提升性能、减小应用程序大小并提供更丰富的用户体验。
关键增强功能:
- 原生提前编译(AOT)部署:.NET MAUI现在支持针对iOS和Mac Catalyst平台的原生提前(Ahead-of-Time,简称AOT)编译。这种方式将应用程序直接编译为原生代码,使得应用程序包大小得以减小——通常能缩小至原来的1/2.5——并且启动速度更快,往往能提升一倍。
- API嵌入:开发人员可以将原生API直接嵌入到.NET MAUI应用程序中,实现与特定平台功能的深度集成,增强应用程序的功能。
- 完全剪裁:通过实施完全代码剪裁,.NET MAUI会从应用程序中移除未使用的代码,优化应用程序大小并提升性能。这个过程涉及分析中间代码并移除不必要的方法、属性和类。
- 新控件:新的用户界面控件(如混合网页视图(HybridWebView)和标题栏(TitleBar))的引入,使开发人员能够创建更具交互性和吸引力的用户界面,提升整体用户体验。
库更新:更丰富的API与增强的功能
System.Text.Json增强功能
.NET中使用最广泛的库之一——System.Text.Json,迎来了显著的增强:
- 可空引用类型注释:使处理JSON数据更加健壮。
- JSON模式导出:能够实现更好的数据验证和互操作性。
LINQ增强功能
LINQ一直因其简洁性和高效性而深受开发人员喜爱。.NET 9引入了:
- CountBy和AggregateBy方法:这些新方法允许通过键进行高效的状态聚合,简化了复杂的数据处理任务。
加密与安全
安全增强是.NET 9的一个重点关注方面:
- 一次性哈希方法:简化了加密操作。
- KMAC算法:使用KMAC算法的新加密类增强了安全性。
反射与动态代码生成
新的PersistedAssemblyBuilder类型允许开发人员:
- 保存已生成的程序集:支持程序数据库(PDB),使得动态代码生成和调试更加无缝衔接。
TimeSpan增强功能
创建TimeSpan对象变得更加直观,得益于:
- 新的From方法:这些方法允许直接从整数创建TimeSpan对象,简化了时间操作。
SDK增强功能:简化的开发体验
工作负载集
.NET 9引入了工作负载集,能对开发环境提供更强的控制:
- 版本控制:工作负载集会将所有工作负载保持在特定版本,直至明确进行更新,确保开发环境的稳定性。
增强的单元测试
MSBuild集成方面的改进实现了:
NuGet安全审计
安全性依然是重点,NuGet功能得到了增强:
- 默认安全审计:现在默认会对直接和传递性的包引用进行审计,有助于尽早识别漏洞。
终端记录器
终端记录器在可用性方面有所改进:
跨平台开发:无缝的互操作性
.NET 9继续强化跨平台支持,确保你的应用程序能在不同环境中高效运行。特定平台优化和工具方面的增强使得在Windows、Linux和macOS上开发和部署应用程序比以往更加顺畅。
社区与生态系统发展
.NET生态系统依靠其活跃的社区蓬勃发展。.NET 9中的新特性和改进彰显了全球开发人员的协作成果。社区的反馈和贡献推动着平台的演进,确保它能满足用户的多样化需求。
通过.NET 9,微软继续拓展软件开发的可能性边界。这个版本带来了强大的特性、性能增强以及安全改进,使得开发应用程序变得更快、更安全且更有趣。无论你正在从事的是小型项目还是大型企业应用程序,.NET 9都提供了能助力你取得成功的工具和功能。