.NET 10 中的新增功能

.NET 运行时

.NET 10 运行时引入了新功能和性能改进。 关键更新包括:

  • 数组接口方法反虚拟化:JIT 现在可以取消虚拟化和内联数组接口方法,从而提高数组枚举的性能。
  • 数组枚举去抽象化:改进功能以通过枚举器减少数组迭代的抽象开销,从而实现更好的函数内联和栈分配。
  • 后期非虚拟化方法的内联:JIT 现在可内联方法;而由于以前的内联功能,这些方法现在可实现非虚拟化。
  • 基于内联观察的去虚拟化:JIT 使用内联中的精确类型信息使后续调用去虚拟化。
  • 值类型的数组的堆栈分配:没有 GC 指针的小型固定大小的数组现在可以进行堆栈分配。
  • AVX10.2 支持:为基于 x64 的处理器引入了对高级矢量扩展 (AVX) 10.2 的支持,但目前默认禁用。
  • NativeAOT 增强功能:支持在 NativeAOT 的类型预初始化器中进行强制转换和求反。

有关详细信息,请参阅 .NET 10 运行时 中的新增功能。

.NET 库

.NET 10 库引入了多项新功能和改进,包括:

  • 按 SHA-1 以外的指纹查找证书:新方法允许使用哈希算法(如 SHA-256)查找证书。
  • 在 ASCII/UTF-8 中查找 PEM 编码数据:PEM 编码 API 现在支持直接从 ASCII/UTF-8 数据读取。
  • 面向 DateOnly 的 ISOWeek 支持:ISOWeek 类中的新重载支持 DateOnly 类型。
  • 用于跨度的字符串规范化 API:新的 API 允许 Unicode 字符串规范化处理字符跨度,从而减少内存分配。
  • 字符串比较的数字顺序:新 CompareOptions.NumericOrdering 选项启用数值字符串比较。
  • 新的 TimeSpan.FromMilliseconds 重载:单参数重载解决了 LINQ 表达式的问题。
  • ZipArchive 性能改进:优化可减少内存使用量,并提高模式和并行提取的性能ZipArchiveUpdate
  • OrderedDictionary 增强功能:新的 TryAdd 与 TryGetValue 重载会返回用于快速访问的索引。
  • JSON 序列化更新:源代码生成器现在允许在ReferenceHandler中指定JsonSourceGenerationOptionsAttribute。
  • 左手系矩阵变换:用于创建左手系变换矩阵的新 API。
  • PKCS#12 导出增强功能:新方法允许指定 PKCS#12/PFX 导出的加密和摘要算法。

有关详细信息,请参阅 .NET 10 库中的新增功能。

.NET SDK

.NET 10 SDK 引入了以下新功能和增强功能,包括:

  • 删除框架提供的包引用:自动删除未使用的框架提供的包引用,减少生成时间和磁盘使用率。
  • 更一致的命令顺序:CLI 命令的新名词优先别名 dotnet 可提高可读性和一致性。

有关详细信息,请参阅 SDK for .NET 10 中的新增功能。

.NET Aspire

.NET Aspire 发布 9.1 版本,重点在于优化用户体验。

有关详细信息,请参阅 .NET Aspire 9.1中的新增功能。

ASP.NET Core

ASP.NET Core 10.0 版本引入了多项新功能和增强功能,包括:

  • Blazor 增强功能

    • 将 ReconnectModal 组件添加到 Blazor Web App 项目模板,改进了重新连接 UI 控件。
    • NavigateTo 方法在同页导航时不再自动滚动到顶部。
    • 组件 NavLink 现在在使用 NavLinkMatch.All时忽略查询字符串和片段。
    • 向 QuickGrid 添加了 RowClass 参数,以根据行数据将样式应用于行。
    • 向 QuickGrid 添加了 CloseColumnOptionsAsync 方法,以便以编程方式关闭列选项。
    • Blazor 框架脚本现在作为启用了预压缩和指纹的静态 Web 资源提供。
  • OpenAPI 改进

    • 添加了对生成 OpenAPI 版本 3.1 文档的支持。
    • 添加了对以 YAML 格式提供 OpenAPI 文档的支持。
    • 将 XML 文档注释填充到 OpenAPI 文档中。
  • 最小 API

    • 改进了使用顶级语句的应用的集成测试。
    • 表单提交中的空字符串现在会被视为可为 Null 的值类型的 null
  • 身份验证和授权

    • 添加了用于身份验证和授权事件的新指标。
  • 杂项

    • 添加了用于检测本地 URL 的RedirectHttpResult.IsLocalUrl辅助方法。
    • 在 RouteAttribute 中新增了对路由语法进行突出显示的支持。

有关详细信息,请参阅 .NET 10 中 ASP.NET Core 的新增功能。

C# 14

C# 14 引入了多项新功能和增强功能,以提高开发人员的工作效率和代码质量。 关键更新包括:

  • 字段支持的属性:提供从自动实现的属性到编写自定义 get 和 set 访问器的更流畅的路径。 现在可以使用上下文关键字访问 field 编译器生成的后盾字段。
  • 未绑定泛型支持 nameof:表达式 nameof 现在支持未绑定泛型类型,例如 List<>,返回类型的名称而无需类型参数。
  • 隐式跨度转换:为附带新的隐式转换的 Span<T> 和 ReadOnlySpan<T> 引入了一流支持,以便让使用这些类型的编程更为自然。
  • 简单 lambda 参数的修饰符:允许参数修饰符(例如 ref, in或在 out lambda 表达式中)不指定参数类型。
  • 实验功能 - 数据部分中的字符串文本:允许将字符串文本作为 UTF-8 数据发出到 PE 文件的单独部分,从而提高某些方案的效率。
  • 部分事件和构造函数:添加了对部分实例构造函数和部分事件的支持,并补充了 C# 13 中引入的部分方法和属性。

有关详细信息,请参阅 C# 14中的新增功能。

.NET MAUI

.NET 10 中的 .NET MAUI 更新包括适用于 .NET MAUI、适用于 Android 的 .NET 以及适用于 iOS、Mac Catalyst、macOS 和 tvOS 的 .NET 的多项新功能和质量改进。 关键更新包括:

  • 常规改进

    • 用于在 VisualElement 上将格式化后的字符串转换为 Shadow 的新 ShadowTypeConverter
    • 添加了 SpeechOptions.Rate 用于控制文本转语音中的播放速率。
    • 支持在 iOS 和 Mac Catalyst 上将模态窗口样式设为弹出样式。
    • 添加了 Switch.OffColor 用于在关闭时自定义控件颜色 Switch 。
    • 添加了 SearchBar.SearchIconColor 用于自定义搜索图标的颜色。
    • 无需泛型参数即可调用 JavaScript 的新 HybridWebView.InvokeJavascriptAsync 方法。
  • 弃用功能

    • FontImageExtension XAML 标记扩展已弃用。 请改用 FontImageSource
    • MessagingCenter 现在为内部功能。 将其替换为 CommunityToolkit.Mvvm 包中的 WeakReferenceMessenger
  • 适用于 Android 的 .NET

    • 支持 Android 16 (API-36) Beta 1。
    • 已将建议的最低支持 Android API 更新为 24 (Nougat)。
    • 支持使用 JDK-21 进行构建。
    • 添加了对 Android 项目中 dotnet run 的支持。
    • 默认启用封送方法以提高启动性能。
    • 设计时生成不再调用 aapt2,从而缩短生成时间。
  • 适用于 iOS、Mac Catalyst、macOS、tvOS 的 .NET

    • 剪裁器警告现在默认处于启用状态。
    • 库中的原始资源捆绑功能现在可选择不使用。

有关详细信息,请参阅 .NET 10 中 .NET MAUI 的新增功能。

EF Core

EF Core 10 版本引入了多项新功能和改进,包括:

  • LINQ 增强功能

    • 添加了对 LeftJoin 运算符的支持,简化了需要 LEFT JOIN 操作的 LINQ 查询。
    • 添加了对 RightJoin 运算符的支持,启用需要 RIGHT JOIN 操作的 LINQ 查询。
  • ExecuteUpdateAsync 改进

    • ExecuteUpdateAsync 现在接受常规的非表达式 lambda,从而在更新实体时降低冗长度。
  • 性能优化

    • 改进了DateOnly.ToDateTime(timeOnly)的翻译。
    • 优化了多个连续的 LIMIT 操作。
    • 增强了 ICollection<T> 上 Count 操作的性能。
    • 优化了 DISTINCT 上的 MIN/MAX 操作。
  • 杂项

    • SQL 查询中的参数名称简化(例如,从@__city_0city)。
    • 添加了对使用 DatePart.Microsecond 和 DatePart.Nanosecond 的日期/时间函数的翻译。
    • 使 SQL Server 基架与 Azure 数据资源管理器兼容。

有关详细信息,请参阅 EF Core for .NET 10中的新增功能。

F#

.NET 10 中的 F# 更新包括语言、标准库和编译器服务的多项新功能和改进。 关键更新包括:

  • F# 语言

    • 新的语言功能需要在文件中启用 <LangVersion>preview</LangVersion> 项目属性 .fsproj 。 这些功能成为 .NET 10 版本的默认功能。
  • FSharp.Core 标准库

    • FSharp.Core 标准库的更改会自动应用于使用新 SDK 编译的项目,除非显式了固定较低的 FSharp.Core 版本。
  • FSharp.Compiler.Service

    • 编译器实现中的常规改进和 bug 修复。

有关详细信息,请参阅 F# 发行说明。

Visual Basic

.NET 10 中的 Visual Basic 更新包括以下功能和增强功能:

  • unmanaged 约束支持:Visual Basic 编译器现在解释并强制实施 unmanaged 泛型约束,从而更好地与运行时 API 兼容。
  • 遵循重载解析优先级:Visual Basic 编译器依照此 OverloadResolutionPriorityAttribute,优先选择性能更好的基于 Span 的重载,并解决方法重载间的歧义。

这些更新可确保 Visual Basic 可以在 C# 和运行时中使用更新的功能,从而提高兼容性和性能。

有关详细信息,请参阅 Visual Basic 中的新增功能。

Windows 窗体

适用于 .NET 10 的 Windows 窗体中的更改包括:

  • 与剪贴板相关的更新

    • 引入了新的 API,用于从剪贴板进行 JSON 序列化和类型安全的数据检索,例如 SetDataAsJson<T> 和 TryGetData<T>
    • 将多个与剪贴板相关的 API 标记为已过时,以警告开发人员潜在的 BinaryFormatter 使用情况。
    • 添加了配置开关 (Windows.ClipboardDragDrop.EnableUnsafeBinaryFormatterSerialization) 以为剪贴板场景显式启用 BinaryFormatter
    • 使用 WPF 统一剪贴板代码来提高一致性和可靠性。
  • 移植的 UITypeEditors

    • 从 .NET Framework 移植了多个 UITypeEditors,其中包括与 DataGridView 控件相关的 ToolStripCollectionEditor 和编辑器。
  • 质量增强功能

    • 扩展了单元测试覆盖范围并解决了各种 bug 修复,以提高稳定性和性能。

有关详细信息,请参阅 .NET 10 的 Windows 窗体中的新增功能。

WPF(Windows Presentation Foundation)

.NET 10 中的 WPF 更新包括多项性能改进、Fluent 样式更改、bug 修复和工程运行状况更新:

  • 性能改进

    • 将数据结构从PartialList替换为ReadOnlyCollection以提升性能。
    • 优化 UI 自动化和文件对话框操作,以最大程度地减少资源分配。
    • 改进了像素格式转换性能。
  • Fluent 样式更改

    • 更新了Label的默认样式。
    • 通过调整 KeyTime 值修复了 Expander 的动画问题。
  • Bug 修复

    • 解决了 UI 元素游标类型的问题以及当位图流为 null 时导致的崩溃问题。
    • 修复了 ScrollViewer 和 . 的 ContextMenu本地化问题。
    • 解决了 BitmapMetadata 和本地依赖项中的次要 bug。
  • 工程运行状况

    • 跨 WPF 组件更新并同步了 MilCodeGen
    • 删除了弃用的 .NET 运行时引用和不必要的包依赖项。
    • 对生成的代码进行样式清理并禁用了代码分析,以简化构建过程。

有关详细信息,请参阅 .NET 10 中的 WPF 中的新增功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

盲注命令执行(Blind Command Execution)

一、核心原理 1. 无回显命令执行的本质 盲命令执行&#xff08;Blind Command Execution&#xff09;是一种攻击形式&#xff0c;攻击者通过注入系统命令到Web应用或后端系统中&#xff0c;但无法直接获取命令执行结果。盲命令执行的本质在于攻击者无法直接看到执行结果&#x…

Linux多线程技术

什么是线程 在一个程序里的多执行路线就是线程。线程是进程中的最小执行单元&#xff0c;可理解为 “进程内的一条执行流水线”。 进程和线程的区别 进程是资源分配的基本单位&#xff0c;线程是CPU调度的基本单位。 fork创建出一个新的进程&#xff0c;会创建出一个新的拷贝&…

计算机组成原理实验(1) 算术逻辑运算单元实验

实验一 算术逻辑运算单元实验 一、实验目的 1、掌握简单运算器的数据传输方式 2、掌握74LS181的功能和应用 二、实验内容 1、不带进位位逻辑或运算实验 2、不带进位位加法运算实验 3、实验指导书2.15实验思考 三、实验步骤和结果 实验内容一&#xff1a;不带进位…

Android将启动画面实现迁移到 Android 12 及更高版本

如果在 Android 11 或更低版本中实现自定义启动画面&#xff0c;请迁移应用迁移到 SplashScreen API 以获取帮助 确保其在 Android 12 及更高版本中正确显示。 从 Android 12 开始&#xff0c;在所有应用的冷启动和温启动期间&#xff0c;系统都会应用 Android 系统的默认启动…

692. 前K个高频单词(map的练习)

目录 1、题目分析 2.解题思路 3.代码实现 4.总结 1、题目分析 2.解题思路 首先它给出我们一个string&#xff0c;让我们提取出它们中出现次数最多的。利用map将word一个一个存入其中&#xff0c;没有就插入&#xff0c;有了就1&#xff0c;这样我们就得到了key_value&#…

如何创建极狐GitLab 议题?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 创建议题 (BASIC ALL) 创建议题时&#xff0c;系统会提示您输入议题的字段。 如果您知道要分配给议题的值&#xff0c;则可…

day32 学习笔记

文章目录 前言一、霍夫变换二、标准霍夫变换三、统计概率霍夫变换四、霍夫圆变换 前言 通过今天的学习&#xff0c;我掌握了霍夫变换的基本原本原理及其在OpenCV中的应用方法 一、霍夫变换 霍夫变换是图像处理中的常用技术&#xff0c;主要用于检测图像中的直线&#xff0c;圆…

图解YOLO(You Only Look Once)目标检测(v1-v5)

1. YOLO系列整体介绍 YOLO属于深度学习经典检测方法中的单阶段&#xff08;one - stage&#xff09;类型&#xff0c;与两阶段&#xff08;two - stage&#xff0c;如Faster - rcnn、Mask - Rcnn系列&#xff09;方法相对。 不同模型性能 单阶段方法的最核心优势是速度非常快…

C# 类型、存储和变量(静态类型和dynamic关键字、可空类型)

本章内容 C#程序是一组类型声明 类型是一种模板 实例化类型 数据成员和函数成员 预定义类型 用户定义类型 栈和堆 值类型和引用类型 变量 静态类型和dynamic关键字 可空类型 静态类型和dynamic关键字 你可能巳经注意到了&#xff0c;每一个变量都包括变量类型。这样编译器就可…

信奥赛之c++基础(初识循环嵌套与ASCII密码本)

🎠 游乐园编程奇遇记——循环嵌套与ASCII密码本 🎡 第一章:摩天轮与旋转木马——循环嵌套 🎪 游乐场里的双重循环 for(int 排数=1; 排数<=3; 排数++){// 外层循环像摩天轮for(int 座位=1; 座位<=5; 座位++){// 内层循环像旋转木马cout << "🎪"…

Spine 动画教程:皮肤制作

一、前言 搁了很久的抖音直播小玩法开发&#xff0c;最近又让我想起来了。由于是初次尝试&#xff0c;所以我将开发费用的预算降到为零。不但不买服务器采用 UnitySDK 的指令直推&#xff0c;而且游戏的资产也用 AI 生成&#xff0c;主打省时又省钱。 但是图片有了&#xff0…

论文阅读笔记——π0.5: a Vision-Language-Action Model with Open-World Generalization

π0.5 论文 通过异构数据协同训练与分层推理&#xff0c;用中等规模的目标数据&#xff08;400小时&#xff09;实现了大规模泛化能力&#xff0c;为现实世界机器人学习提供了新范式。 高层推理(high-level) 根据当前观测和任务指令预测子任务&#xff08;如“打开抽屉”&…

记录搭建自己应用中心

记录搭建自己应用中心 应用架构主应用-管理中心系统文件系统子应用 日志系统日志系统前端日志系统后端 用户系统接入使用暂未完成 研发管理需求面板消息推送任务分配应用发布 应用架构 一直想做个试试&#xff0c;这是一个简易版的&#xff0c;主要是整合下知识的&#xff0c;…

【网工第6版】第5章 网络互联⑦

目录 ▲ 路由协议OSPF ◎ OSPF简介 ◎ OSPF特点 本章重要程度&#xff1a;☆☆☆☆☆ ▲ 路由协议OSPF ◎ OSPF简介 OSPF(Open Shortest Path First,开放式最短路径优先协议)是目前应用最广泛的路由协议。 OSPF是一种内部网关协议IGP&#xff0c;也是链路状态路由协议&am…

5.3 Dify:低代码平台,适用于企业快速部署合规AI应用

Dify作为一款开源低代码平台&#xff0c;已成为企业快速构建和部署合规AI应用的首选工具。Dify通过整合后端即服务&#xff08;Backend-as-a-Service, BaaS&#xff09;、大型语言模型操作&#xff08;LLMOps&#xff09;以及直观的视觉化界面&#xff0c;显著降低了AI应用开发…

AI 编程工具:Augment Code

Meet Augment Agent: Your AI pair programmer that deeply understands your codebase, and learns as you work Augment 是开发人员AI平台&#xff0c;它可以帮助您理解代码、调试问题&#xff0c;并更快地发布&#xff0c;因为它了解您的代码库。使用聊天、Next Edit和Augme…

vc++ 如何调用poco库

1. 下载并安装 Poco 库 你可以从 Poco 的官方网站&#xff08;POCO C Libraries - Simplify C Development &#xff09;下载其源代码压缩包。下载完成后&#xff0c;按照下面的步骤进行编译和安装&#xff1a; 解压源代码&#xff1a;把下载的压缩包解压到指定目录。配置编译…

浅谈OpenAIClaude LLM Tools的额外配置

前言 https://platform.openai.com/docs/guides/function-calling?api-modechat&strict-modedisabled#additional-configurationshttps://docs.anthropic.com/en/docs/build-with-claude/tool-use/overview#forcing-tool-use tool_choice “none” 就是不用tools&#x…

SystemWeaver详解:从入门到精通的深度实战指南

SystemWeaver详解&#xff1a;从入门到精通的深度实战指南 文章目录 SystemWeaver详解&#xff1a;从入门到精通的深度实战指南一、SystemWeaver环境搭建与基础配置1.1 多平台安装全流程 二、新手必学的十大核心操作2.1 项目创建全流程2.2 建模工具箱深度解析 三、需求工程与系…

力扣DAY68 | 热100 | 寻找两个正序数组的中位数

前言 困难 ○ 这题搞了3天实在太难了&#xff0c;本质就是每次排除k/2个数&#xff0c;直到找到第k个数。 题目 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为…