CoreCLR 取代 .NET MAUI 中的 Mono

從 Preview 6 開始,CoreCLR 成為 .NET MAUI 行動應用程式唯一的執行階段。Mono 已移除。

實際上,iOS 和 Mac Catalyst 應用程式通常比使用 Mono 時更快。Android 的啟動時間和應用程式大小與 Mono 相比約在 10% 以內,考量所獲得的完整 .NET 診斷工具,這是一個合理的權衡。dotnet-tracedotnet-counters 現在可以在行動裝置上運作,這在 Mono 上是不可能的。Android 的 NativeAOT 基礎也已在此版本中加入。

偵錯和 Hot Reload 在 Visual Studio 與 VS Code 中皆可運作,不過團隊仍在處理一些細微問題。

如果您維護 .NET MAUI 應用程式,現在正是測試 Preview 6 的時機。團隊特別希望收到關於效能基準測試、套件大小以及任何回歸問題的回報,以便在 11 月的 GA 版本發布前進行調整。


.NET MAUI 改進

除了執行階段切換之外,此版本還包含多項生活品質提升。

Maps 獲得幾項實用更新:密集地點的自動標記群集、透過 ImageSource 自訂標記圖片,以及 Google Maps JSON 樣式支援。

Animations 現在接受 CancellationToken,讓您可以停止個別動畫,而不會取消其他正在執行的動畫。較舊的非非同步方法如 FadeTo()RotateTo() 現已標記為已淘汰。

Gestures 新增 LongPressGestureRecognizer,讓長按偵測變得簡單,無需任何變通方法。

BoxView 新增支援漸層的 Fill 屬性。

應用程式大小:未使用 CSS 樣式表的應用程式,在發佈期間會自動移除相關基礎架構。

Android 控制項現在預設採用 Material 3 樣式,無需額外設定即可獲得更一致的外觀。

CollectionView2 也已包含在 Windows 版本中。


執行階段與效能

在執行階段方面,Preview 6 包含執行階段非同步效能改進和 JIT 改進。NativeAOT 的介面分派速度更快。此外,還新增了供開發人員進行低階數值運算的 SIMD 通道建構 API。


ASP.NET Core 與 Blazor

以下是一些值得注意的新增功能:

  • 自動 CSRF 保護現已內建於 ASP.NET Core 中,無需手動設定。
  • OpenAPI 3.2 成為新的預設值。
  • Blazor Virtualize 新增捲動至項目的支援。
  • SignalR 取得驗證重新整理功能,這對於權杖會過期的長時間連線非常重要。

EF Core

EF Core 獲得 LINQ 查詢轉譯改進,以及對無限制外部金鑰關係的支援,這涵蓋了先前需要使用原始 SQL 的某些邊緣案例。


其他新增功能

  • 記憶體與文字的串流配接器
  • 透過 DataAnnotations 進行非同步驗證
  • System.Text.Json 支援 C# 聯集型別
  • dotnet test 現在支援 xUnit v3 和 NUnit 選項
  • F# 在此版本中有多項語言改進

GA 版本預計於 11 月發布。如果您使用 .NET MAUI,現在測試並回報問題,可讓團隊有最多時間在發布前進行修正。