.NET8 GA 开源发布
微软在 2023年11月14日
举行了 “.NET Conf 2023”
开发者大会,并推出了最新一代 .NET8
开源开发平台。
.NET8 新特性和性能改进
对企业来说特别重要的是,.NET8
是一个长期支持 (LTS
) 版本,这意味着它将获得三年的支持和补丁,而标准期限支持 (STS
) 版本则是 18
个月。对于开发人员来说,特别重要的是 .NET
团队正在向期待已久的原生提前编译(NativeAOT
)迈进 。
据介绍,.NET8
不仅包含许多性能改进,还增加了一个新的代码生成器 —— 动态配置文件引导优化(PGO
),它可以根据应用优化代码。微软表示这将使基于 .NET8
的应用性能提升至高 20%
。
此外,新增的 AVX-512
指令集支持也可以对 512
位数据向量进行并行运算,在 .NET8
中受支持和使用,从而允许在更短的时间内进行更多的数据处理。
微软还表示,基元类型现在实现了新的格式化和可解析接口,使它们能够直接格式化和解析为 UTF-8
,而不会产生任何转码开销。
.NET8
带来了数千种性能改进,涵盖了整个堆栈。默认情况下会启用一个新的代码生成器,称为动态配置文件引导优化(PGO
),它会根据实际使用情况优化您的代码,从而为应用程序提高多达20%
性能。- 现在支持的
AVX-512
指令集使您能够在512
位数据向量上执行并行操作,这意味着您可以在更短的时间内处理更多的数据。基本类型(数值和更多)现在实现了一个新的可格式化和可解析接口,使其能够直接以UTF-8
格式进行格式化和解析,而无需任何转码开销。
.NET8 性能的 TechEmpower 基准测试
微软表示,TechEmpower
基准测试显示,在 JSON API
场景中,.NET8
的性能比 .NET7
提高了 18%
,而在 Fortunes
场景中,.NET8
的性能比 .NET7
提高了 24%
。
.NET8 love AI
微软还在努力推动将 .NET8
用于基于 AI
的应用程序。
集成
Tensor
基元。随着启用AI
的应用程序的兴起,出现了新的工具和 SDK。我们与许多内部和外部合作伙伴(如Azure OpenAI、Azure Cognitive Search、Milvus、Qdrant
和Microsoft Teams
)合作,确保.NET
开发人员通过各自的SDK
轻松访问各种AI
模型、服务和平台。此外,开源的语义内核
SDK
简化了将这些AI
组件集成到新应用程序和现有应用程序中的过程,帮助您提供创新的用户体验。
.NET8 & NativeAOT
.NET8
通过推进 NativeAOT
来增强可持续计算,以减少内存使用并实现即时应用程序启动。微软今天强调了 AOT
的功能,包括:
- 它将应用程序编译为使用更少内存的本机代码并立即启动;
- 无需等待
JIT
(实时)编译器在运行时编译代码; - 无需部署
JIT
编译器和IL
代码; - AOT 应用仅部署应用所需的代码;
- 现在,应用程序可以在不允许使用
JIT
编译器的受限环境中运行;
对于在 .NET8
上开发并在 Linux
和 Windows
平台上运行的 AOT
(提前编译)应用也将得到性能提升,这意味着开发人员不必使用 JIT
(即时编译)编译器来在运行时编译他们的应用程序。
.NET8 Aspire & 云原生
除了 .NET8
之外,微软还发布了 .NET Aspire
首个版本(目前还处于预览版)。这是一个专门为制作基于云的应用程序而设计的堆栈,或者说是一个用于构建弹性、可观察和可配置的云原生应用程序的堆栈。
.NET Aspire
附带了一组针对云原生开发增强的精选组件,默认情况下包括遥测、复原、配置和运行状况检查等等。
在云原生的容器方面,.NET8
通过简化应用程序的打包和使用默认的非 root
用户配置增强安全性来简化容器化。它还提供更小的映像大小以加快部署速度,并提供可选的 Dirstroless Ubuntu
映像以增强安全性,以及多功能架构支持。
微软还表示,它使用简单易用的本地开发人员体验,同时也足够复杂以创建基于云的应用程序。
C#12 (.NET8 的标配)
此外,借助 C#12
,你现在可以用简单而优雅的语法在任何类和结构中创建主要构造函数,不再需要样板代码来初始化字段和属性。使用简洁而富有表现力的语法创建数组、spans
和其他集合类型。对 lambda
表达式中的参数使用新的默认值。不再需要重载或 null
检查来处理可选参数。您甚至可以使用 using alias
指令为任何类型设置别名,而不仅仅是命名类型!
C# 12 中的新增功能指南
解释了版本 12
中的以下新功能:
- 主构造函数 - 在
Visual Studio 17.6 预览版 2
中引入。 - Lambda 表达式中的可选参数 - 在 Visual Studio 17.5 预览版 2 中引入。
- 任何类型的别名 - 在
Visual Studio 17.6 预览版 3
中引入。 - 内联数组 - 在
Visual Studio 17.7 预览版 3
中引入。 - 集合表达式 - 在
Visual Studio 17.7 预览版 5
中引入。 - 拦截器 - 预览功能在
Visual Studio 17.7 预览版 3
中引入。
开发人员可以在这篇博客文章中了解有关 .NET Aspire
的更多信息,并且可以在 GitHub
上提交有关此预览版本的反馈。
官方文档:
.NET Aspire
,https://learn.microsoft.com/zh-cn/dotnet/aspire/.NET 8 的新增功能
,https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-8?WT.mc_id=dotnet-35129-website.net8 sdk download
,https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0
转载声明: