随着 .NET 9 和 C# 13 的推出,.NET 平台和 C# 语言的开发向前推进,引入了一系列增强功能和改进,以提高开发人员的效率、速度和安全性。本文深入探讨了这些版本中的升级和新功能,让开发人员详细了解。
图片由Microsoft提供
.NET 9
.NET 9 对 .NET 生态系统进行了一系列改进,重点关注 AI 和通过发布 .NET Aspire 构建云原生分布式应用程序、提高性能以及增强 .NET 库和框架。以下是一些值得注意的亮点:
.NET Aspire
它是一个固执己见的堆栈,有助于开发 .NET 云原生应用程序和服务。我最近在DZone上撰写并发表了一篇与此相关的文章。
性能改进
.NET 9 专注于优化云原生应用,性能是此优化的一个关键方面。在 .NET 9 中进行了多项与性能相关的改进,包括:
1. 更快的异常
现在,由于采用了更现代的实现,.NET 9 中的异常速度提高了 2-4 倍。此改进意味着您的应用将花费更少的时间处理异常,从而使其能够专注于其核心功能。
2. 更快的循环
在 .NET 9 中,通过环路提升和感应变量加宽,提高了环路性能。这些优化使循环运行得更快、更高效,从而使您的应用响应速度更快。
3. 动态 PGO 改进
动态 PGO(按配置文件优化)在 .NET 9 中得到了改进,从而降低了类型检查的成本。这意味着您的应用将更快、更高效地运行,并减少类型检查的开销。
4. RyuJIT 改进
RyuJIT 是 .NET Just-In-Time 编译器,已在 .NET 9 中得到改进,可以内联更通用的方法。这意味着你的应用将运行得更快,方法调用的开销更少。
5. Arm64 代码优化
Arm64 代码现在可以在 Arm64 上使用 SVE/SVE2 SIMD 指令编写得更快。这意味着你的应用可以利用最新的 Arm64 硬件,运行速度更快、更高效。
6. 服务器GC模式
在某些基准测试中,.NET 9 中的新服务器 GC 模式已被证明可以将内存使用量减少多达 2/3。这意味着您的应用将使用更少的内存,从而降低成本并提高性能。
.NET 9 中这些与性能相关的改进意味着你的应用将运行得更快、更精简、更高效。无论是构建云原生应用还是桌面应用,.NET 9 都能提供成功所需的性能优化。
与 AI 相关的改进
.NET 中这些与 AI 相关的改进使开发人员能够构建具有 AI 功能的强大应用程序,与 AI 生态系统集成,并监视和观察 AI 应用程序性能。多个合作伙伴关系包括 Qdrant、Milvus、Weaviate 等,以扩展 .NET AI 生态系统。它很容易与语义内核、Azure SQL 和 Azure AI 搜索集成。
特征 | 起色 | 效益 |
---|---|---|
张量<T> | 张量的新类型 | 有效的数据处理和信息流,用于学习和预测 |
智能组件 | 具有端到端 AI 功能的预构建控件 | 在几分钟内为应用注入 AI 功能 |
OpenAI 开发工具包 | OpenAI 的官方 .NET 库 | 愉快的体验和与其他编程语言的奇偶校验 |
监测和观察 | 用于监视和跟踪 AI 应用程序的功能 | 可靠、高效和高质量的结果 |
注意:.NET Aspire 团队、语义内核和 Azure 中有一些集成工作,以利用 .NET Aspire 仪表板来收集和跟踪指标。
与 Web 相关的改进
提高性能、安全性和可靠性
升级到现代云原生应用的现有 ASP.NET Core 功能
内置对 OpenAPI 文档生成的支持
能够在构建时或运行时生成 OpenAPI 文档
使用文档和操作转换器的可自定义 OpenAPI 文档
这些改进旨在增强 .NET 和 ASP.NET Core 的 Web 开发体验,从而更轻松地构建具有改进质量和基本功能的新式 Web 应用。
使用 HybridCache 改进缓存
作为我的最爱之一,我将在另一篇关于 .HybridCache
简而言之,ASP.NET Core 中的 API 已升级,以提供更高效、可扩展的缓存解决方案。它引入了一种多层存储方法,将进程内 (L1) 和进程外 (L2) 缓存结合在一起,具有“踩踏”保护和可配置序列化等功能。这可显著提高性能,在高缓存命中率方案中最多可提高 1000 倍。HybridCache
C# 13:引入新的语言功能
C# 13 引入了一系列语言元素,旨在提高代码的清晰度、可维护性和开发人员效率。以下是一些关键的补充:
params
collections:关键字不再局限于数组类型。现在,它可以与任何可识别的集合类型一起使用,包括 、 以及实现和具有方法的类型。在使用需要接受可变数量的参数的方法时,这提供了更大的灵活性。params
System.Span<T>
System.ReadOnlySpan<T>
System.Collections.Generic.IEnumerable<T>
Add
在下面的代码片段中,该方法接受 的类型,这意味着您可以将任意数量的参数传递给该方法。
PrintNumbers
params
List<int>[]
List<int>
1
public void PrintNumbers(params List<int>[] numbersLists)
2
{
3
foreach (var numbers in numbersLists)
4
{
5
foreach (var number in numbers)
6
{
7
Console.WriteLine(number);
8
}
9
}
10
}
11
12
PrintNumbers(new List<int> {1, 2, 3}, new List<int> {4, 5, 6}, new List<int> {7, 8, 9});
新的锁定对象:已引入,以通过其 API 提供更好的线程同步。
System.Threading.Lock
新的转义序列:可以用作字符的字符文本转义序列 Unicode U+001B。
\e
ESCAPE
方法组自然类型改进:此功能对涉及方法组的重载分辨率进行了小的优化。
对象初始值设定项中的隐式索引器访问:运算符允许我们直接在对象初始值设定项中使用索引器。
C# 13 和 .NET 9 标志着 C# 编程和 .NET 环境的发展迈出了关键的一步。最新版本带来了许多新功能和改进,可提高开发人员的工作效率、应用程序性能和安全性。通过及时了解这些变化,开发人员可以利用这些进步来构建更强大、更高效、更安全的应用程序。祝您编码愉快!