行業新聞

.NET 11 Preview 1:運行時重大突破,發展方向引發更多疑問

微軟在 2 月發布了.NET 11 的首個預覽版,帶來了運行時的改進。 Iron Software團隊一直在審查.NET 11 Preview 1,其中有一些變化值得.NET開發人員社群重點關注。

太長不看

*非同步操作移至運行時-速度更快、更優化、更容易調試。 我們的通用產品迎來好消息。

  • CoreCLR 獲得 WASM 支援- 取代 Mono,因此瀏覽器編譯的.NET程式碼運行速度應該明顯更快。
    *原生 Zstandard 壓縮- 我們正在考慮在IronZIP 的底層採用它。

微軟正式發布了.NET 11 Preview 1,這是下一個標準期限支援版本(預計於 2026 年 11 月發布)開發週期中的第一個里程碑。

運行時異步:悄悄發生的巨大變革

Preview 1 中最重要的更新之一是非同步追蹤正在深入運行時本身,而不是完全由編譯器處理。

作為背景,非同步程式設計是一種允許應用程式以非阻塞區塊運行工作的模式,這樣整個執行緒就不會在等待網路呼叫、檔案讀取或資料庫回應時凍結。 它對現代.NET開發至關重要。 大多數 API、服務和 UI 驅動的工作負載都嚴重依賴它。

透過將非同步協調移至更靠近執行時間層的位置,微軟可以同時解決這兩個痛點:

調試:重構非同步流程。偵錯器最終應該能夠追蹤跨越 await 的執行路徑,從而恢復目前遺失的上下文。

性能:協調開銷更低。運行時最佳化可以比僅由編譯器產生的狀態機更積極,從而降低每個任務的成本。

對於分散式服務、雲端原生 API 和 UI 應用程式而言,這可以轉化為全方位的可衡量改進。

CoreCLR 登陸 WebAssembly

到目前為止,編譯成 WebAssembly 的.NET應用程式一直依賴 Mono,Mono 是最初為跨平台相容性而設計的較舊的運行時。 Mono雖然能用,但它的性能有眾所周知的局限性,而且不像CoreCLR那樣能從優化投入中受益。

透過此次預覽,CoreCLR 獲得了 WebAssembly 支持,帶來了幾項具體的改進:JIT 功能提高了運行時執行速度。 記憶體管理效率更高。 瀏覽器託管的.NET應用程式正逐漸接近與本地執行相同的效能。 對於建立Blazor WebAssembly 應用程式或嘗試瀏覽器端.NET工作負載的團隊來說,這是整個預覽版中最好的升級之一。

這對整個生態系統也至關重要。 針對 WASM 的程式庫和工具,包括基於瀏覽器的文件處理、渲染和資料操作。

原生 Zstandard 壓縮

.NET 11 透過新的 ZstandardStream 實現,為 Zstandard (Zstd) 壓縮演算法增加了一流的支援。 Zstd 已成為高效能係統的標準,因為它比 Gzip 提供更好的壓縮比、更快的解壓縮速度以及強大的吞吐量,適用於大規模資料處理。

對於函式庫和工具開發者而言,這消除了第三方綁定帶來的摩擦。 現在,大量使用壓縮的產品可以直接使用 Zstd。 不難看出,對於像IronZIP這樣的工具或類似的流程來說,這種底層技術將非常有用,因為在這些工具中,效能和檔案大小都至關重要。

更宏大的主題:.NET 向智慧體人工智慧的轉型

除了執行時期的改進之外, .NET 11 的策略方向也逐漸清晰起來。 微軟正大力推動其所謂的"代理人工智慧",即旨在與人工智慧代理、Copilot 工作流程和結構化模型上下文進行互動的應用程式。 這包括模型上下文協定支援、AI輔助開發模式以及將.NET應用程式定位為代理可以呼叫和協調的工具的框架。

這個方向並不令人意外。 整個產業都在向人工智慧輔助工作流程發展,微軟完全有動力讓.NET成為該生態系統中的一流產品。

真正重要的是什麼

如果我們拋開路線圖之爭,純粹專注於實際影響,那麼運行時效能的提升才是真正的亮點:

*非同步調試最終可能變得易於處理,尤其對於複雜的程式碼庫而言
使用 CoreCLR 取代 Mono 後, WebAssembly 的效能可能會顯著提升。

  • Zstd 壓縮獲得一流支持,消除了對第三方的依賴

這些功能並不花俏。 他們不會在會議上獲得主題演講的掌聲。 但這些改進能夠悄悄減少日常開發中的摩擦,從長遠來看,這些改進往往比主要功能更重要。

預覽版 1 已經展現了.NET生態系統的兩個面向:強勁而有意義的運行時進展,以及關於語言方向和平台優先級的日益增多的討論。 這種緊張關係未必是件壞事。 這通常意味著平台正在朝著人們真正關心的方向發展。