微軟釋出了 .NET 9 的第 6 個預覽版,此版本包括對執行時、SDK、.NET MAUI、ASP.NET Core 和 C# 的更新,預覽版沒有包含太多新的主要功能或特性,因為已接近 .NET 9 開發的最後階段,該開發計劃於 11 月全面釋出。
Loongarch的Native-AOT程式碼合進去了,龍芯.NET 可以直接同步社群程式碼,這樣龍芯.NET 就可以非常方便製作Loongarch架構的SDK來發布。極大減少程式碼的本地維護,龍芯.NET 現在都是基於社群的原始碼極少的修改就可以釋出。 其次,社群支援Loongarch的CI也在慢慢的發展著,開源社群原生髮布Loongarch架構的OS系統映象,如Alpine和Debian都在快速推進,特別Alpine社群網頁wiki已經明確把支援Loongarch放到今年11月的釋出計劃中,其實Alpine和Debian兩個OS發行版社群,對Loongarch的支援已經很全面了,只是需要等社群下個版本釋出中,正式釋出Loongarch架構的ISO映象。 到時候就可以先在dotnet的CI中先新增一個Loongarch的測試。為後續做好準備
執行時更新
ARM64 程式碼生成:改進了載入和儲存資料的指令,增強了執行時間和效能。
程式碼佈局:增強基本塊排序,以最大化 fallthrough 行為和熱程式碼密度,減少分支指令的數量。
迴圈最佳化:識別翻轉迴圈計數器變數的時機以提高效能。
減少地址暴露:更好地跟蹤區域性變數地址以釋放更多的最佳化機會。
AVX10v1 支援:新的 SIMD 指令集支援,允許在支援 AVX10 的硬體上進行向量化操作。
硬體內部程式碼生成:改進硬體內部函式中常量的處理,以生成加速程式碼。
常量摺疊:增強浮點和 SIMD 運算的常量摺疊功能。
SDK 更新
NuGetAudit:現在會對傳遞依賴項中的漏洞發出警告,有助於維護專案安全。“NuGetAudit 最初是在 .NET 8 中新增的,如果專案使用的任何包存在已知漏洞,它會在還原期間發出警告,”Microsoft 解釋道。“它需要一個提供漏洞資料庫的包源,所以在實踐中你需要使用 https://api.nuget.org/v3/index.json 作為包源,我們計劃在不 nuget.org 作為包源的情況下允許審計。有關 NuGet 稽核(包括所有配置選項)的詳細資訊,請參閱有關 NuGet 稽核的文件
dotnet nuget why:一個新命令,用於查明你的專案為什麼使用傳遞包。
MSBuild BuildChecks:引入它來在構建期間強制執行規則和不變數,類似於 Roslyn Analyzers,並針對共享輸出路徑和雙寫檢測制定了新規則。
.NET MAUI 更新
質量改進:擴大測試覆蓋範圍、端到端場景測試和大量錯誤修復。
適用於 Android 和 iOS 的 .NET:注重質量的更新,確保兩個平臺的應用程式開發穩健可靠。
ASP.NET Core 更新
靜態 Web 資產的指紋識別:自動生成靜態資產的指紋版本,以改善快取並加快載入時間。
改進了 SignalR 的分散式跟蹤:增強了 SignalR 集線器方法呼叫的跟蹤功能。
Microsoft.AspNetCore.OpenAPI 的增強:改進了完成提供程式並支援 [Required] 和 [DefaultValue] 屬性以及模式轉換器。
[Authorize] 和 [AllowAnonymous] 分析器:當 [Authorize] 被 [AllowAnonymous] 覆蓋時,新的分析器會發出警告。
ComponentPlatform 重新命名為 RendererInfo:匹配新的命名約定。
跨幀拆分大型 HTTP/2 標頭:確保更好地處理大型標頭。
.NET 9 預覽版6的相關 GitHub 討論,新討論包括:
- .NET 9 預覽版 6 中的庫和執行時更新
- .NET 9 預覽版 6 中的 .NET MAUI 更新
- ASP.NET .NET 9 預覽版 6 中的核心更新
對於那些傾向於深入研究細節的人,可以在不同屬性的發行說明中找到更多的指南,包括:
- .NET 9 預覽版 6 中的庫更新
- .NET 9 預覽版 6 中的執行時更新
- .NET 9 預覽版 6 中的 SDK 更新
- .NET 9 預覽版 6 中的 C# 更新
- ASP.NET .NET 9 預覽版 6 中的核心更新
- .NET 9 預覽版 6 中的 .NET MAUI 更新
可以在 .NET 9 中的新增功能(上次更新於 6 月 11 日)中跟蹤主要開發工作。該公司表示,它特別關注雲原生應用程式和效能。