微軟發布了 .NET 8 開放平台,該平台整合了 .NET Framework、.NET Core 和 Mono 產品。借助 .NET 8,您可以使用統一的程式庫和通用的建置流程(與應用程式類型無關)來建立跨平台應用程序,這些應用程式可應用於瀏覽器、雲端、桌面、物聯網設備和行動平台。 .NET SDK 8、.NET Runtime 8 和 ASP.NET Core Runtime 8 組件皆專為此而設計。 Linux, macOS и Windows.NET Desktop Runtime 8 僅適用於 Windows該專案的開發成果以 MIT 許可證發布。 .NET 8 分支被歸類為長期支援版本 (LTS),並將獲得三年支持,直至 2026 年 11 月。
.NET 8 包含一個執行環境,其中包含 RyuJIT JIT 編譯器、API 規格、WPF 函式庫, Windows Forms、WinUI、Entity Framework、dotnet 命令列介面,以及用於開發微服務、庫、伺服器、圖形和控制台應用程式的工具。單獨發布的還有 ASP.NET Core 8.0 Web 應用程式開發堆疊、Entity Framework Core 8.0 ORM 層(提供驅動程序,包括 SQLite 和 PostgreSQL 的驅動程式)以及 WPF 8 程式庫(Windows Presentation Foundation (PF) 框架 Windows 用於圖形使用者介面開發的 Forms 8、用於建立雲端原生應用程式的 Aspire 8 平台、用於開發多平台使用者介面的 MAUI 8 框架,以及 C# 12 和 F# 8 語言的版本。免費的 Visual Studio Code 程式碼編輯器支援 .NET 8.0 和 C# 12。
新版本的特點:
- 已進行重大效能優化。預設啟用新的程式碼產生器,支援基於程式碼執行分析的動態最佳化(動態分析引導最佳化)。使用新的程式碼產生器可將應用程式效能提高高達 20%。此外,新版本還增加了對AVX-512指令的支持,提高了向量資料並行操作的效能。對於原始類型,已經實現了一個新的接口,允許您直接解析和格式化 UTF-8 格式的數據,而無需重新編碼。在 TechEmpower 測試中,JSON API 的效能提高了 18%,Fortunes 的效能提高了 24%。

- 新增了新的 .NET Aspire 堆疊,旨在使用 .NET 技術開發雲端原生應用程式。 .NET Aspire 提供了一組豐富的元件,您可能需要建立在雲端環境中運行的應用程序,包括用於遙測收集、配置、運行狀況測試和容錯的工具。
- 用於將應用程式打包到隔離容器中的工具已擴展。現在預設支援發布不帶 Dockerfile 且不帶 root 使用者的容器映像。 .NET 平台元件的基礎容器鏡像大小已減少。新增了一個用於執行編譯成執行檔的應用程式的極簡鏡像(原生 AOT)。此外,還新增了一個更安全的基於 Chiseled 的鏡像選項。 Ubuntu.
- 提高了編譯為自包含可執行檔(本機 AOT)的效率,其中整個專案最初編譯為目標平台的本機機器碼,而不使用中間程式碼,也不使用 JIT。

- 可用於機器學習系統的軟體介面的功能得到了擴展。例如,System.Numerics 函式庫增強了與生成式 AI 系統的兼容性。新增了聊天機器人感知、內容產生和存取 Azure AI 服務的範例。
- Blazor 是一個用於以 C# 建立 Web 應用程式的平台,它縮短了頁面載入時間,提高了可擴充性,並允許在同一應用程式中使用 Blazor Server 和 Blazor WebAssembly 來建立結合多種功能的程式。 服務器 客戶端也進行了更新。新增了 Jiterpreter,這是一個速度更快的新型 WebAssembly 運行時,使 UI 渲染速度提升了 20%。身份驗證、授權和識別功能也擴展了。
- 用於開發多平台使用者介面的 MAUI 框架已擴展,現在可以使用單一程式碼庫建立多個介面。 Windows, macOSiOS 和 Android新增對編譯(原生 AOT)的實驗性支援。新增對 Xcode 15 的支援。 Android API 34.圖形元素和按鈕已現代化,滑鼠點擊和鍵盤事件的處理也得到了改進。
- C# 12 增加了在任何類別和結構中創建主建構函數的簡化語法的支持,並且還簡化了數組、跨度和其他類型集合的創建。提供用於設定 lambda 表達式參數預設值的工具。簡化可選參數的處理。新增了使用“alias”指令創建任何類型的別名的功能。 // 建立一個列表a = [1, 2, 3, 4, 5, 6, 7, 8]; // 建立跨度數組 Span b = ['a', 'b', 'c', 'd', 'e', 'f', 'h', 'i']; // 使用擴充運算子連接 int[] array1 = [1, 2, 3]; int[] 數組2 = [4, 5, 6]; int[] array3 = [7, 8, 9]; int[] fullArray = [..array1, ..array2, ..array3]; // 內容將為 [1, 2, 3, 4, 5, 6, 7, 8, 9]
- ASP.NET Core 針對單頁(SPA,單頁應用程式)和 Web 應用程式(Blazor)實現了對 Cookie 和基於令牌的身份驗證的支援。已經提出了一種用於身份驗證的新使用者介面。改進了針對 XSRF/CSRF 攻擊的防護。
- Entity Framework Core 提供了一個可用作物件的新複雜型別。新增了對 SQL Server 中分層資料的支援。
- NuGet 套件管理器簡化了專案中套件的審核,並提供已知漏洞是否存在的資訊。
- .NET 執行階段為 WebAssembly (WASM) 新增了預先編譯 (AOT) 模式, Android.
- WPF 新增了目錄開啟對話方塊 (OpenFolderDialog) 並啟用了對 RDP 中硬體加速的支援。
- 顯著改進了對 ARM64 架構的支援並提高了 ARM 的程式碼品質。
- 調試器為常用的 .NET 類型提供調試摘要顯示和簡化的調試層。
來源: opennet.ru


