在.NET Aspire 9.2中有哪些新功能 - 來自Iron Software的開發者快速視角
微軟在二月推出了.NET 11的首個預覽版本,並提供了運行時改進。 我們在Iron Software的團隊已經審視了.NET 11預覽版1,對.NET開發者社群有一些值得強調的變更。
簡而言之
- 異步進入運行時 - 更快,更優化,更容易除錯。 這對我們的通用產品來說是個好消息。
- CoreCLR獲得WASM支持 - 取代了Mono,讓瀏覽器編譯的.NET程式碼明顯運行得更快。
- 本機Zstandard壓縮 - 我們正在考慮在IronZIP中採用它。
微軟已經正式發布了.NET 11預覽版1,這是下一個標準長期支持版本開發週期中的第一個里程碑,預計2026年11月發布。
運行時級異步:默默的大變革
預覽版1中最重要的更新之一是異步追蹤進一步進入運行時本身,而不再完全由編譯器處理。
在此背景下,異步編程是允許應用在非阻塞塊中運行工作的模式,因此當等待網路調用、文件讀取或資料庫響應時,整個執行緒不會凍結。 這對現代.NET開發至關重要。 絕大多數API、服務和以UI為驅動的工作負載都嚴重依賴於它。
通過將異步協調更靠近運行時層,微軟可以同時解決這兩個痛點:
除錯:重建的異步流程。除錯器應該最終能夠跨過等待追蹤執行路徑,恢復目前丟失的上下文。
性能:降低協調開銷。運行時級優化可以更為激進,比僅有編譯器生成的狀態機減少每個任務的成本。
對於分佈式服務、雲原生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的戰略方向變得明確。 微軟正在大力推動其所稱的"智能AI",即旨在與AI代理、Copilot工作流程和結構化模型上下文互動的應用。 這包括模型上下文協議支持、AI輔助的開發模式,以及將.NET應用定位為代理可調用和編排的工具的框架。
這一方向並不令人意外。 整個行業都在向AI輔助的工作流程靠攏,而微軟有所有的動機使.NET成為這個生態系統中的一流公民。
這裡的重點是什麼
如果我們撇開路線圖的爭論,專注於實際影響,運行時的改進是真正的重點:
- 異步除錯可能最終可以對複雜程式碼庫進行處理
- WebAssembly性能可能在CoreCLR取代Mono後顯著提升
- Zstd壓縮獲得一流支持,消除了對第三方的依賴
這些不是真正閃亮耀眼的功能。 他們不會在會議主題演講上獲得掌聲。 但這些是那種默默降低日常開發摩擦的改進,這些比起吸引眼球的功能在長期來看往往更加重要。
預覽版1已經顯示了.NET生態系統的兩個方面:強大且意義深遠的運行時進展,以及關於語言方向和平臺優先事項日益增多的討論。 這種緊張並不一定是件壞事。 它通常意味著平臺正在以人們真正關心的方式發展。
