對於剛接觸 .NET 生態系的工程師來說,追蹤 Preview 版本的更新可能會覺得資訊量太大。其實我們只需要關注一個核心邏輯:微軟在每一代更新中,都在試圖讓程式執行得更快(Runtime 優化)、開發過程更順手(SDK 改善),以及讓語言表達能力更強(C# 新語法)。這次的 .NET 11 Preview 3 正是延續這個方向。
首先我們來看看 Runtime 執行環境的變動。Runtime 是程式跑起來的底層引擎,這裡的優化直接影響效能。這次最值得關注的是 Runtime Async 功能不再需要開啟預覽標記,這意味著非同步處理的底層機制正趨於穩定。同時,NativeAOT(原生提前編譯)和 ReadyToRun(預編譯)得到了進一步支持。這裡要解釋一下,NativeAOT 是將程式直接編譯成機器碼,跳過 JIT 編譯過程,這樣可以大幅縮短啟動時間並減少記憶體佔用,對於雲端原生或 Serverless 環境至關重要。
在 JIT 編譯器(即時編譯器)方面,微軟優化了分支檢查與邊界檢查。簡單來說,JIT 會在程式執行時將中間碼轉為機器碼,這次它能更聰明地處理 switch 表達式,減少不必要的判斷步驟,讓 CPU 執行路徑更短,效能自然提升。
接下來是 SDK 與開發工具的改善。對於管理大型專案的工程師,dotnet sln 現在可以直接編輯方案篩選文件(Solution Filter),這能讓你只載入需要的專案,避免 IDE 因為載入數百個專案而卡死。此外,dotnet run 新增了 -e 選項,讓你能直接從命令列傳遞環境變數,而不需要每次都去修改設定檔,這在測試不同環境配置時非常方便。
在 ASP.NET Core 網頁框架部分,這次導入了 Zstandard 壓縮。Zstandard 是一種高效的壓縮演算法,比傳統的 Gzip 更快且壓縮率更高,能有效降低伺服器與用戶端之間的傳輸流量。而 Kestrel 伺服器則優化了 HTTP/3 的處理流程,不再等待控制流就開始處理請求,這能顯著降低新連線的首次請求延遲。
對於資料庫操作的 EF Core,新推出的 GetEntriesForState API 讓開發者能直接獲取特定狀態的實體,而不需要先執行 DetectChanges。在原先的機制中,偵測變更是一個相對耗時的過程,跳過這一步可以提升大量數據追蹤時的效能。
在前端與跨平台開發方面,.NET MAUI 的地圖控制項現在支持 Pin Clustering(圖標聚合),也就是當地圖上點位過多時,會自動將鄰近點合併成一個數字標記,避免畫面被圖標填滿而無法閱讀。
最後是 C# 15 的進展。這次重點在於對 Union Types(聯合類型)的 IDE 支持。聯合類型允許一個變數在定義時可以是幾種特定類型之一,這在處理複雜的業務狀態(例如:結果可能是成功、失敗或待處理)時,比單純使用 object 或基類更加安全且明確,能讓編譯器在開發階段就幫你檢查是否漏掉了某種情況的處理。
總結來說,.NET 11 Preview 3 的更新重點在於降低延遲、提升編譯效率以及強化語言的型別安全性。雖然目前仍是預覽版,但這些變動預示了 2026 年正式版將會更加強調高效能與開發體驗的極致化。
來源:infoq.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。