.NET9发布了,了解一下更新了什么?
版本信息
版本号信息如下:
- Full version
- 9.0.100-preview.1.24101.2
- Visual Studio support
- Visual Studio 2022 (v17.10 Preview 1)
- 官方下载地址:Download .NET 9.0
升级步骤
- 安装官方的sdk和runtime两个包
- 升级本地的visual studio,我自己vs的版本是2022,17.8.7,要连续更新,只能升级到17.9.0
- 所以还得重新下载10的安装工具,下载地址:visualstudio17.10.0
- 修改项目的global.json如下
1
2
3
4
5
6{
"sdk": {
"version": "9.0.100"
}
} - 然后打开vs在各项目的属性中,选择.net9.0即可完成升级
以下新特性文档,摘自微软官方
序列化
在 System.Text.Json 中,.NET 9 具有用于序列化 JSON 的新选项和新的单一实例,可以更轻松地使用 Web 默认值进行序列化。
缩进选项
JsonSerializerOptions包含一些新属性,可用于自定义写入 JSON 的缩进字符和缩进大小。
1 | var options = new JsonSerializerOptions |
默认 Web 选项
如果要使用 ASP.NET Core 用于 Web 应用的默认选项进行序列化,请使用新的 JsonSerializerOptions.Web 单一实例。
1 | string webJson = JsonSerializer.Serialize( |
LINQ的
引入了新方法CountBy和AggregateBy这些方法可以按键聚合状态,而无需通过 GroupBy
CountBy 可让您快速计算每个键的频率。下面的示例查找文本字符串中最常出现的单词。
1 | string sourceText = """ |
AggregateBy允许您实现更多通用工作流。以下示例演示如何计算与给定键关联的分数。
1 | (string id, int score)[] data = |
密码学
对于加密,.NET 9 在 CryptographicOperations类型上添加了新的一次性哈希方法。它还添加了使用 KMAC 算法的新类。
CryptographicOperations.HashData() 方法
.NET 包括哈希函数和相关函数的多个静态“一次性”实现。这些 API 包括 SHA256。HashData 和 HMACSHA256。哈希数据。最好使用一次性 API,因为它们可以提供最佳性能并减少或消除分配。
如果开发人员想要提供支持哈希的 API,其中调用方定义要使用的哈希算法,则通常通过接受 HashAlgorithmName 参数来完成。但是,将该模式与一次性 API 一起使用需要切换每个可能的 HashAlgorithmName,然后使用适当的方法。为了解决此问题,.NET 9 引入了 CryptographicOperations.HashData API。此 API 允许您一次性生成输入的哈希或 HMAC,其中使用的算法由 HashAlgorithmName 确定。
1 | static void HashAndProcessData(HashAlgorithmName hashAlgorithmName, byte[] data) |
KMAC算法
.NET 9 提供 NIST SP-800-185指定的 KMAC 算法。KECCAK 消息验证码 (KMAC) 是一个基于 KECCAK 的伪随机函数和键控哈希函数。
以下新类使用 KMAC 算法。使用实例累积数据以生成 MAC,或使用静态方法对单个输入进行一次性处理。HashData
KMAC 在具有 OpenSSL 3.0 或更高版本的 Linux 以及 Windows 11 Build 26016 或更高版本上可用。可以使用 static 属性来确定平台是否支持所需的算法。IsSupported
1 | if (Kmac128.IsSupported) |
反射
在 .NET Core 版本和 .NET 5-8 中,对生成程序集和为动态创建的类型发出反射元数据的支持仅限于可运行的 AssemblyBuilder。缺乏对_保存_程序集的支持通常是客户从 .NET Framework 迁移到 .NET 的障碍。.NET 9 将公共 API 添加到 AssemblyBuilder以保存发出的程序集。
新的持久化 AssemblyBuilder
1 | public void CreateAndSaveAssembly(string assemblyPath) |
- 标题: .NET9发布了,了解一下更新了什么?
- 作者: PH88
- 创建于 : 2024-02-21 10:00:05
- 更新于 : 2024-05-31 11:50:33
- 链接: https://ph88.ink/2024/02/21/net9/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。