產業新聞

.NET 11 Preview 1:重大運行時優勢,更大的方向問題

Microsoft 在二月推出了.NET 11的首個預覽版本,提供了運行時的改進。 我們Iron Software的團隊一直在審查.NET 11的預覽版本1,其中有一些值得.NET開發者社群關注的變更。

概要

  • 非同步移動至運行時 - 更快速、更優化,更易於偵錯。 這對於我們的通用產品來說是好消息。
  • CoreCLR 獲得 WASM 支援 - 替代Mono,因此瀏覽器編譯的.NET代碼應該會明顯更快地運行。
  • 本地化Zstandard壓縮 - 我們正考慮在IronZIP中採用它作為底層技術。

Microsoft 已正式發布.NET 11的預覽版本1,這是下一個標準技術支援版本開發週期的第一個里程碑,預計在2026年11月發布。

運行時級別的非同步:靜默的大變革

在預覽版本1中,最重要的更新之一是非同步跟蹤移動到運行時本身,而不再完全由編譯器處理。

作為背景,非同步編程是一種模式,允許應用程式以非阻塞的方式運行工作,因此在等待網路調用、文件讀取或資料庫響應時,整個執行緒不會被冻结。 這對現代.NET開發至關重要。 大多數API、服務和以UI為導向的工作負載都嚴重依賴於它。

通過將非同步協調更接近於運行時層,Microsoft 可以同時解決這兩個痛點:

偵錯:重建的非同步流程。 偵錯器終於可以跨越await追踪執行路徑,恢復當前丟失的上下文。

效能:降低協調開銷。 運行時級別的優化可以比編譯器生成的狀態機更具進取心,從而降低每個任務的成本。

對於分散式服務、雲端原生API和UI應用程式,這可能會帶來明顯的全面改進。

CoreCLR 適用於 WebAssembly

迄今為止,編譯為WebAssembly的.NET應用依賴於Mono,這是最初為跨平台兼容性設計的舊運行時。 Mono運行良好,但其已知的效能限制,使其無法從CoreCLR的相同優化投資中受益。

在這個預覽版本中,CoreCLR 獲得了 WebAssembly 的支援,帶來了幾個具體的改進:JIT 的能力提高了運行時的執行速度。 記憶體管理變得更加高效。 在瀏覽器上的 .NET 應用更接近於與本地執行持平。 對於開發Blazor WebAssembly應用或進行瀏覽器側.NET工作負載的團隊來說,這是整個預覽的最佳升級之一。

這對於更廣泛的生態系統也很重要。 針對WASM的庫和工具,包括基於瀏覽器的文件處理、渲染和數據操作。

本地化 Zstandard 壓縮

.NET 11 通過新 ZstandardStream 實現添加了對 Zstandard (Zstd) 壓縮演算法的一等支持。 Zstd 已成為高性能系統的標準,因為它提供了比 Gzip 更佳的壓縮比、顯著更快的解壓速度,以及對大規模數據處理具備強勁的吞吐量。

對於庫和工具開發者來說,這消除了第三方綁定的摩擦。 壓縮重型產品現在可以本地使用 Zstd。 一眼就能看到這在像 IronZIP 這樣的工具下變得有用,或類似的工作流程中,效能和文件大小都很關鍵的地方。

更大的主題:.NET 向代理 AI 的轉向

除了運行時的改進外,.NET 11 的戰略方向變得更加清晰。 Microsoft 正在大力推進其所謂的"代理 AI"應用,即設計用於與AI代理、Copilot工作流和結構化模型上下文交互的應用。 這包括模型上下文協議支持、AI協助的開發模式,以及將.NET應用定位為代理可以調用和協作的工具的框架。

這個方向並不令人感到驚訝。 整個行業都在朝著AI協助的工作流程前進,而Microsoft有一切動機讓.NET成為該生態系統中的一等公民。

這裡真正重要的事情

如果我們撇開路線圖辯論,純粹專注於實際影響,那運行時的改進才是大多數的重點:

  • 非同步偵錯 終於有可能變得易於處理複雜的代碼庫
  • WebAssembly 效能 隨著 CoreCLR 替代 Mono 而顯著提升
  • Zstd 壓縮 獲得一等支持,消除第三方依賴

這些並不是華而不實的功能。 它們不會在會議主題演講中值得掌聲。 但這些都是在日常開發中悄然減少摩擦的改進,而從長遠來看,這些往往比頭條功能更重要。

預覽1已經展示了 .NET 生態系統的兩面性:強大和有意義的運行時進展與不斷增長的關於語言方向和平台優先級的討論並存。 這種緊張關係不一定是壞事。 這通常意味著平台正在朝著人們真正關注的方向演變。