微軟發布了.NET 10第一個預覽版,帶來多項語言與執行環境的改進,涵蓋C#語法增強、效能最佳化,以及Blazor和.NET MAUI的強化。這次更新不僅提升開發體驗,也進一步強化.NET在跨平臺與雲端應用的競爭力。

在C#部分,這次更新帶來數個語法層級的強化,讓程式碼更簡潔且易於維護。nameof現在可用於未綁定的泛型,讓泛型類別或方法內部的參照更加直覺,而隱式span轉換則進一步簡化Span<T>和ReadOnlySpan<T>的使用方式,減少不必要的顯式轉換,提高記憶體管理效率。此外,首次加入欄位支援屬性(Field-backed Properties),讓開發者能以更簡潔的方式定義具有內部儲存欄位的屬性,在維持可讀性的同時,減少樣板程式碼的撰寫。

效能層面,.NET 10針對執行階段進行多項最佳化,包括陣列介面方法去虛擬化(Array Interface Method Devirtualization),讓JIT編譯器能夠更有效率地執行常見的陣列操作,將陣列實作的介面方法從虛擬呼叫轉換為直接呼叫,減少額外的計算成本開銷。此外,.NET 10進一步擴展值型別陣列的堆疊分配(Stack Allocation of Arrays of Value Types),在符合條件的情境下,JIT現在可以將小型、固定大小且不包含垃圾回收指標的值型別陣列直接分配在堆疊,而非堆記憶體,降低垃圾回收壓力,進一步提升應用程式的執行效能。同時這次版本也支援AVX10.2,讓.NET應用可以在支援的硬體架構上,充分運用最新的向量運算能力,提升數值計算與科學運算的效能。

在網頁應用開發方面,.NET 10的ASP.NET Core與Blazor也迎來多項改進,最受矚目的更新之一是對OpenAPI 3.1的支援,使API開發符合最新的標準規範,提升與各種REST API生態系的相容性。Blazor則在開發體驗方面有多項改善,例如RouteAttribute現在支援語法突出顯示,讓路由設定更清晰可讀,而QuickGrid也新增RowClass參數,讓開發者能夠更靈活地調整UI樣式。此外,Blazor的JavaScript互通性進一步強化,支援將Blazor腳本視為靜態網頁資產,減少外部依賴,提高應用的可移植性與載入效能。

跨平臺開發也是這次.NET 10更新的重點,特別是在.NET MAUI的強化上,iOS和Mac Catalyst的CollectionView進行多項效能與穩定性調整,讓UI操作更順暢。在Android開發方面,.NET 10開始支援Android 16,並調整最低支援API的建議版本。此外,這次更新也加入對JDK 21的支援,讓開發者可以使用最新的Java環境建置Android應用,同時dotnet run也已支援Android專案,簡化開發流程,減少額外的部署步驟。

Entity Framework Core也在這次版本中迎來數個實用的新功能,.NET 10正式支援LeftJoin運算子,讓LINQ查詢的可讀性與效能獲得進一步提升,而ExecuteUpdateAsync也開始支援一般的Lambda運算式,使開發者可以更直覺地操作資料庫,減少對表示式樹(Expression Trees)的依賴,提升程式碼的可維護性。

熱門新聞

Advertisement