.NET 10首个预览版发布:重大改进与新特性概览!

前言
.NET 团队于2025年2月25日发布博文,宣布推出 .NET 10 首个预览版更新,重点改进.NET Runtime、SDK、Libraries 、C#、ASP.NET Core、Blazor 和.NET MAUI 等。
.NET 10介绍
.NET 10 是 .NET 9 的后继版本,将作为长期支持维护 (LTS) 版本提供 3 年的支持。
下载 .NET 10

.NET runtime
.NET 10 运行时在 Preview 1 中引入了新特性与性能改进,核心目标之一是降低常用语言特性的抽象开销(如虚方法调用)。为此,JIT 编译器的去虚拟化能力已扩展至数组接口方法,可优化包含虚方法调用的数组遍历代码。此外,JIT 支持对不含 GC 指针的固定大小值类型数组进行栈分配,减少引用类型的内存开销。
另一重要特性是新增对 x64 处理器的 AVX10.2 指令集支持(默认关闭)。由于当前硬件尚未普及,开发者需等待支持 AVX10.2 的 CPU 上市后,通过 System.Runtime.Intrinsics.X86.Avx10v2 类测试新内在函数。
.NET libraries
.NET 10 类库新增多项功能:
- FindByThumbprint 方法支持非 SHA-1 哈希算法(如 SHA-256)搜索证书指纹。
X509Certificate2Collection coll = store.Certificates.FindByThumbprint(HashAlgorithmName.SHA256, thumbprint);
Debug.Assert(coll.Count < 2, "Collection has too many matches, has SHA-2 been broken?");
return coll.SingleOrDefault();
- 新增直接读取 ASCII 编码的 PEM 格式文件支持。
- ISOWeek 类扩展 DateOnly 类型兼容性,简化周数计算(https://github.com/dotnet/runtime/blob/main/src/libraries/System.Private.CoreLib/src/System/Globalization/ISOWeek.cs)。
public static class ISOWeek
{
// 新的重载方法
public static int GetWeekOfYear(DateOnly date);
public static int GetYear(DateOnly date);
public static DateOnly ToDateOnly(int year, int week, DayOfWeek dayOfWeek);
}
- ZipArchive 性能和内存改进。
OrderedDictionary<TKey,TValue>的TryAdd和TryGetValue方法返回条目索引,便于快速定位。
public class OrderedDictionary<TKey, TValue>
{
// 新的重载方法
public bool TryAdd(TKey key, TValue value, out int index);
public bool TryGetValue(TKey key, out TValue value, out int index);
}
public static void IncrementValue(OrderedDictionary<string, int> orderedDictionary, string key)
{
// Try to add a new key with value 1.
if (!orderedDictionary.TryAdd(key, 1, out int index))
{
// Key was present, so increment the existing value instead.
int value = orderedDictionary.GetAt(index).Value;
orderedDictionary.SetAt(index, value + 1);
}
}
- 允许在 JsonSourceGenerationOptionsAttribute 中指定 ReferenceHandler ,JSON 序列化得到了增强。
- 等等...
.NET SDK
.NET 10 SDK 引入了以下新功能和增强功能:
从 .NET 10 开始,NuGet Audit 功能现在可以修剪项目中未使用的框架提供的包引用。此功能默认对所有 net 目标框架(例如 net8.0、net10.0)以及 .NET Standard 2.0 及更高版本启用。这一改进减少了构建过程中需要恢复(restore)和分析的包数量,从而可能加快构建速度、减少磁盘空间占用,并降低 NuGet Audit 或其他依赖扫描机制的误报率。
ASP.NET Core
- Blazor:添加了QuickGrid的RowClass参数,以及将Blazor脚本作为静态Web资源提供
- OpenAPI:增加了生成 OpenAPI 3.1 文档以及在 YAML 格式中提供生成的 OpenAPI 文档的支持。
- 身份验证和授权:增加了身份验证和授权的新功能。
- 为SignalR和Minimal APIs添加了新功能。
.NET MAUI
- 详细介绍:https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-10?view=net-maui-9.0
此版本主要针对 .NET MAUI、.NET for Android、.NET for iOS、Mac Catalyst、macOS 和 tvOS 进行了质量改进。
EF Core
- LINQ 和 SQL 转换增强功能。
ExecuteUpdateAsync方法现在支持接受常规的非表达式形式 Lambda(例如包含代码块的语句 Lambda),简化批量更新操作的异步执行代码编写。
此更新显著提升了 EF Core 在处理复杂查询。
await context.Blogs.ExecuteUpdateAsync(s =>
{
s.SetProperty(b => b.Views, 8);
if (nameChanged)
{
s.SetProperty(b => b.Name, "foo");
}
});
C# 14
C# 14 引入了许多新特性和增强功能,以提高开发者的生产力和代码质量。其中一些关键更新包括:
- nameof 支持未绑定的泛型类型。
- 隐式 Span 转换。
- 字段支持的属性。
- 简单 Lambda 参数的修饰符。
- 等...
WinForms
- 与剪贴板相关的序列化和反序列化更改。
- 弃用了剪贴板 API。
- 新增了与剪贴板相关的 API。
参考文章
- https://devblogs.microsoft.com/dotnet/dotnet-10-preview-1
- https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-10/overview
.NET 10首个预览版发布:重大改进与新特性概览!的更多相关文章
- Windows 10简体中文最新预览版Build 9926
Windows 10 消费者预览版全新特性: • 全新的开始菜单Win 10的开始菜单产生了较大改变,磁贴界面在原有磁贴概念的基础上进行了大幅度的调整,新的磁贴界面开始支持纵向滚动,并可以利用开始按钮 ...
- Windows 10 开发人员预览版中的新增功能(转自 IT之家)
Windows 10 开发人员预览版中的新增功能 在Win10预览版中安装工具与SDK后,即可着手创建Windows通用应用或先浏览目前的环境与此前相比都发生了什么变化. 应用建模 文件资源管理器: ...
- PHP专业开发IDE——Zend Studio 10.5预览版发布
Zend Studio是新一代的PHP IDE,高效的开发和维护PHP代码是它的核心.Zend公司目前已发布了Zend Studio 10.5预览版,预览版中提高了快速响应能力和时时误差检查.因此使用 ...
- sql server 2014预览版发布
MSDN发布sql server2014预览版,如下图: SQL Server 2014新特性: 微软SQL Server部门主管Eron Kelly介绍,通过将交易处理放到内存中进行,新的SQL S ...
- Window 7 平台的IE11浏览器预览版发布
继之前Windows 8.1 带来了IE11浏览器之后,今天Window 7 以及Windows Server 2008 R2平台的IE11浏览器预览版也已经发布. 当然这还只是一个开发者预览版,可能 ...
- VS2019预览版发布了
VS2019正式版已发布:https://www.cnblogs.com/zhaogaojian/p/10648904.html 1.点击下载https://visualstudio.microso ...
- jQuery 3.0最终版发布,十大新特性眼前一亮
jQuery 3.0在日前发布了最终的全新版本.从2014年10月,jQuery团队对这个主要大版本进行维护开始,web开发者社区便一直在期待着这一刻的到来,终于在2016年6月他们迎来了这一个最终板 ...
- HarmonyOS 3.0.0开发者预览版全新发布
2021年10月22日在华为开发者大会HDC.Together 2021 主题演讲上,我们发布了HarmonyOS 3.0.0开发者预览版,主要内容包括:Harmony设计系统.ArkUI 3.0.A ...
- 官宣.NET 6 预览版4
我们很高兴发布 .NET 6 Preview 4.我们现在大约完成了 .NET 6 发布的一半.现在是一个很好的时机,可以再次查看.NET6的完整范围.许多功能都接近最终形式,而其他功能将很快推出,因 ...
- 终于等到你!微软正式上线 Windows Terminal 预览版
前一段时间,一直在知乎.技术社区收到技术小伙伴们的终极拷问:微软Build 大会上提到的**6月中旬**要上Windows store 的 Windows Terminal 到底啥时候可以用到呀? 有 ...
随机推荐
- ASP.NET Core 中的 Request Feature
ASP.NET Core 中的 Request Feature https://docs.microsoft.com/en-us/aspnet/core/fundamentals/request-fe ...
- 【Mybatis】学习笔记01:连接数据库,实现增删改
需要数据库SQL的请跳转到文末 哔哩哔哩 萌狼蓝天 [转载资料][尚硅谷][MyBatis]2022版Mybatis配套MD文档 [Mybatis]学习笔记01:连接数据库,实现增删改 [Mybati ...
- Gmssl编译问题: error while loading shared libraries: libssl.so.1.1: cannot open shared object file
在Centos7上编译安装Gmssl后,运行gmssl version出现如下错误: gmssl: error while loading shared libraries: libssl.so.1. ...
- 动态改变shiro的Principal属性
因为要保存一些用户名之外的内容在shiro中,所以创建了一个ShiroUser的类,当用户修改了某些属性后,如何动态保存到shiro中: Subject subject = SecurityUtils ...
- 龙哥量化:通达信macd和kdj跨周期引用导致信号漂移等未来函数详细解释
代写技术指标.量化策略,微信:Long622889 龙哥QQ:591438821 跨周期引用macd就是未来函数,导致信号漂移,简直怕了未来函数,那怎么解决呢,调大参数即可, 例如:收盘价 > ...
- IM通讯协议专题学习(四):从Base64到Protobuf,详解Protobuf的数据编码原理
本文由腾讯PCG后台开发工程师的SG4YK分享,进行了修订和和少量改动. 1.引言 近日学习了 Protobuf 的编码实现技术原理,借此机会,正好总结一下并整理成文. 接上篇<由浅入深,从根上 ...
- 使用Matlab进行图像分类
Classify images Instructions are in the task pane to the left. Complete and submit each task one at ...
- JMeter JDBC 请求实战宝典
<JMeter JDBC 请求实战宝典> 宝子们,今天咱就来唠唠 JMeter 里超厉害的 JDBC 请求,这玩意儿就像是数据库世界的神奇魔杖,能帮咱把数据库里的各种秘密(数据)都挖出来, ...
- 题解:AT_abc385_f [ABC385F] Visible Buildings
小学二年级就会的基本一次函数知识. 抽象一下题意: 求 \(n\) 个点 \((X_i, H_i)\) 中任意两个点组成的直线的截距的最大值(不小于 \(0\),\(X_i\) 递增). 先说结论:先 ...
- 利用bash脚本函数执行创建用户和组,并设置sudo权限等
示例:利用bash脚本函数执行创建用户和组,并设置sudo权限等: Linux服务器设置历史命令记录,及命令执行的时间: sudo echo 'HISTTIMEFORMAT="%F %T w ...