在.NET 8 RC1 版本中 MAUI、ASP.NET Core 和 EF8 的新特性

2023-09-13 09:00:37

從年初2 月份釋出第一個預覽版,經歷7個預覽版後,Microsoft 西雅圖時間9月13日釋出了 .NET 8  RC 1: https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-rc1/[1], 這是該框架在 11 月初正式釋出之前的兩個版本中的第一個。 .NET 8 RC1 是在生產中受支援,隨著開發團隊修復和完善內容,該框架基本上已經準備好了新的和令人興奮的功能,以便在 11 月 14 日開始的 .NET Conf 2023 [2]期間正式釋出RTM。

image

.NET 8 的大多數新特性和功能都已開發好,開發團隊主要進行潤色,這並不是說RC沒有引入一些新的好東西,詳見下面的摘要:

.NET 8
.NET 8 RC1現在是生產可用的,這是我們的兩個版本候選中的第一個。此版本包括適用於 Android 和 WASM 的新 AOT 模式、System.Text.Json 改進以及對容器的 Azure 託管標識支援。具體細節包括:

  • 適用於android和WASM的AOT模式:開發人員可以將他們的 .NET 程式碼直接編譯為 WebAssembly 或 Android 的本機程式碼,從而加快啟動和執行時效能,但應用尺寸更大。該團隊還引入了新選項來去除未使用的中間語言 (IL) 程式碼,以減小應用大小。
  • System.Text.Json 改進:其中包括用於 IAsyncEnumerable 流式反序列化的新擴充套件方法,以及支援修剪 安全/源生成合約的 JsonContent 的新建構函式。
  • Azure 託管標識容器的支援:這有助於使用者輕鬆地使用 Azure 容器登入檔或使用 OAuth 令牌交換的其他登入檔進行身份驗證,而無需使用 docker 登入命令。
  • 用於跨構建的 Win32 資源支援: 在非 Windows 平臺上構建時,開發人員可以將 Win32 資源(如圖示、清單和版本資訊)嵌入到其應用程式中。

除了 9 月 13 日的公告釋出之外,還可以在發行說明 [9]和.NET 8 中的新增功能[10]檔案中找到更多資訊。

.NET MAUI
MAUI是Xamarin.Forms的演變,因為它除了傳統的iOS和Android移動目標之外,還增加了建立桌面應用程式的功能。儘管它遇到了開發問題並且 .NET 6 釋出得很晚,但.NET 開發人員對該產品非常感興趣,並且在最近宣佈 Visual Studio for Mac 退役後密切關注它。一些.NET MAUI開發人員擔心.NET MAUI可能會遭受同樣的命運。也許考慮到這些問題,.NET 團隊特別釋出了一篇「在.NET 8候選版本1:質量中宣佈.NET MAUI[11]」,並進一步說,「我們在.NET 8中的.NET MAUI工作的主要主題是程式碼質量。隨著質量的提升,RC1 附帶了上線許可證,可用於生產工作。以下是 RC1 中的一些注意事項,其中包括新功能、改進和效能優化:

  • 記憶體漏失:iOS 平臺上影響編輯器、入口、MauiDoneAccessoryView、RefreshView、SwipeView、TimePicker、Picker 和 GraphicsView 的各種 UI 控制元件中解決了幾個記憶體漏失問題,旨在通過改進記憶體管理來確保更好的應用程式穩定性。
  • UI 控制元件增強功能:解決的 UI 控制元件問題會影響多個平臺上的核取方塊、重新整理檢視、輕掃項、標籤和按鈕,有助於使應用互動更順暢。
  • 特定於平臺的修復:進行了修復以確保在不同平臺(包括iOS,Android,Windows和macOS)上保持一致的使用者體驗,解決了邊框剪下,視窗故障和影象載入問題等問題。
  • 效能優化:改善記憶體使用率和資源生成的努力涉及優化,以提高應用程式效能和響應能力,特別是針對改進 CollectionView 的記憶體使用、資源生成控制和 Android 計時器問題。

Microsoft還加強了對蘋果IDE Xcode 15的支援。「你現在可以使用Xcode 15測試版作為構建應用程式和管理模擬器的安裝,這將在Visual Studio的下一個版本中提供。

ASP.NET Core
在這裡,Blazor 是ASP.NET Core的重心,Blazor 讓 Web 開發人員使用 C# 而不是 JavaScript 的又有了八個方面不同的改進(其中一些在 Microsoft 的主要 .NET 公告中進行了討論):

  • Blazor Web App應用模板更新
  • 從其他程式集中發現用於靜態伺服器呈現的元件
  • 路由改進
  • 觸發頁面重新整理
  • 將任意屬性傳遞到QuickGrid
  • 確定表單域是否具有關聯的驗證訊息
  • 設定 .NET WebAssembly 執行時
  • 提前 (AOT) 編譯後修剪 .NET IL

開發團隊還對很多方面(伺服器和中介軟體、身份、單頁應用SPA、指標)進行了調整,具體參見 ASP.NET .NET 8 候選版本 1 中的核心更新[12]。

EF Core 8
此資料驅動框架包含在 NuGet 包中,該包擁有超過 809.70 億次下載,EF Core是 .NET 的現代ORM。它支援 LINQ 查詢、更改跟蹤、更新和架構遷移。EF Core通過提供程式外掛API與SQL Server,Azure SQL Database,SQLite,Azure Cosmos DB,MySQL,PostgreSQL和其他資料庫配合使用。公告貼文列出了多達70個專案,並附有指向每個專案的更多資訊的連結。EF Core 8 中的新增功能[13]中還提供了詳細資訊.


相關連結: