.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 性能改進:優化可減少內存使用量,并提高模式和并行提取的性能ZipArchive
Update
。 - 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?中新增了對路由語法進行突出顯示的支持。
- 添加了用于檢測本地 URL 的
有關詳細信息,請參閱?.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_0
到city
)。 - 添加了對使用?
DatePart.Microsecond
?和?DatePart.Nanosecond
?的日期/時間函數的翻譯。 - 使 SQL Server 基架與 Azure 數據資源管理器兼容。
- SQL 查詢中的參數名稱簡化(例如,從
有關詳細信息,請參閱?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 統一剪貼板代碼來提高一致性和可靠性。
- 引入了新的 API,用于從剪貼板進行 JSON 序列化和類型安全的數據檢索,例如?
-
移植的 UITypeEditors:
- 從 .NET Framework 移植了多個?
UITypeEditors
,其中包括與?DataGridView
?控件相關的?ToolStripCollectionEditor
?和編輯器。
- 從 .NET Framework 移植了多個?
-
質量增強功能:
- 擴展了單元測試覆蓋范圍并解決了各種 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 中的新增功能。