他来了,他来了,他带着新功能走来了!.NET 9 和 C# 13:新增功能和改进

        随着 .NET 9 和 C# 13 的推出,.NET 平台和 C# 语言的开发向前推进,引入了一系列增强功能和改进,以提高开发人员的效率、速度和安全性。本文深入探讨了这些版本中的升级和新功能,让开发人员详细了解。

3371cce3fc8a5fbb8f1b7cb4f3a4a226.png

图片由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:关键字不再局限于数组类型。现在,它可以与任何可识别的集合类型一起使用,包括 、 以及实现和具有方法的类型。在使用需要接受可变数量的参数的方法时,这提供了更大的灵活性。paramsSystem.Span<T>System.ReadOnlySpan<T>System.Collections.Generic.IEnumerable<T>Add

    • 在下面的代码片段中,该方法接受 的类型,这意味着您可以将任意数量的参数传递给该方法。PrintNumbersparamsList<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。\eESCAPE

  • 方法组自然类型改进:此功能对涉及方法组的重载分辨率进行了小的优化。

  • 对象初始值设定项中的隐式索引器访问:运算符允许我们直接在对象初始值设定项中使用索引器。

        C# 13 和 .NET 9 标志着 C# 编程和 .NET 环境的发展迈出了关键的一步。最新版本带来了许多新功能和改进,可提高开发人员的工作效率、应用程序性能和安全性。通过及时了解这些变化,开发人员可以利用这些进步来构建更强大、更高效、更安全的应用程序。祝您编码愉快!

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨曦_子画

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值