當前位置: 妍妍網 > 碼農

.NET 8 釋出了,迄今為止最快的 .NET

2024-02-22碼農

前言

從今天開始推出 .NET 8,這是世界領先的開發平台之一的最新 LTS 版本。.NET 8 提供了數以千計的效能、穩定性和安全性改進,以及平台和工具增強功能,有助於提高開發人員的工作效率和創新速度。

在為期三天的活動 .NET Conf 2023(11 月 14 日至 16 日)上,.NET 團隊、我們的合作夥伴和 .NET 社群將討論 .NET 8 中的新增功能,以及使用 .NET 構建的內容,以滿足更多的需求。

在此版本中,.NET 重塑了我們構建按需擴充套件的智慧雲原生應用程式和高流量服務的方式。無論是部署到 Linux 還是 Windows,使用容器還是所選的雲套用模型,.NET 8 都可以更輕松地構建這些套用。它包括一組經過驗證的庫,目前 Microsoft 的許多大規模服務都在使用這些庫來幫助您應對可觀測性、彈性、可伸縮性、可管理性等方面的基本挑戰。

將 OpenAI 的 GPT 等大型語言模型 (LLM) 直接整合到 .NET 套用中。使用單個功能強大的元件模型來處理 Blazor 的所有 Web UI 需求。使用 .NET MAUI 將移動應用程式部署到最新版本的 iOS 和 Android。發現新的語言增強功能,使你的程式碼在 C# 12 中更加簡潔和富有表現力。讓我們看看 .NET 8 中的新增功能。

無與倫比的效能 – 體驗迄今為止最快的 .NET

.NET 8 在整個堆疊中提供了數千項效能改進。預設情況下,會啟用一個名為動態配置檔引導最佳化 (PGO) 的新程式碼生成器,該生成器會根據實際使用情況最佳化程式碼,並且可以將套用的效能提高多達 20%。現在支持的 AVX-512 指令集使您能夠對 512 位數據向量執行並列運算,這意味著您可以在更短的時間內處理更多的數據。基元型別(數值和更高型別)現在實作了一個新的格式化和可解析介面,使它們能夠直接格式化和解析為 UTF-8,而不會產生任何轉碼開銷。

每年,我們都會討論 .NET 的效能提升。今年,我們將繼續努力將 .NET 的效能提升到新的高度。從最新的 TechEmpower 對 .NET 8 的基準測試來看,我們看到 JSON API 方案改進了 18%,使用 ASP.NET Core Minimal API 達到了每秒近 100 萬個請求。

Fortunes 方案更接近實際工作負載,包括資料庫存取和伺服器端 HTML 呈現。在這次測試中,我們看到了 24% 的更大改進,現在使用 ASP.NET Core 時每秒超過 300K 個請求。

.NET Aspire – 一個自以為是的堆疊,用於構建可觀察的生產就緒型雲原生應用程式

.NET Aspire 是一個堆疊,用於使用 .NET 構建可復原、可觀察和可配置的雲原生應用程式。它包括一組針對雲原生增強的精選元件,預設情況下包括遙測、復原能力、配置和執行狀況檢查。結合復雜但簡單的本地開發人員體驗,.NET Aspire 可以在第 1 天和第 100 天輕松發現、獲取和配置雲原生應用程式的基本依賴項。.NET Aspire 的第一個預覽版現已推出。

.NET 8 容器增強功能 - 更安全、更緊湊、更高效

使用 .NET 比以往任何時候都更輕松、更安全地使用容器打包您的應用程式。每個 .NET 映像都包含一個非 root 使用者,從而透過單行配置實作更安全的容器。.NET SDK 工具釋出沒有 Dockerfile 的容器映像,預設情況下是非根映像。

由於 .NET 基礎映像較小,因此可以更快地部署容器化套用,包括映像的新實驗變體,這些變體為本機 AOT 提供真正最小的應用程式大小。選擇使用新的 Chiseled Ubuntu 映像變體進行更多安全強化,以進一步減少攻擊面。使用 Dockerfile 或 SDK 工具,為任何架構構建套用和容器映像。

原生 AoT – 邁向更高密度永續計算的旅程

將 .NET 套用編譯為使用較少記憶體並立即啟動的本機程式碼。無需等待 JIT(即時)編譯器在執行時編譯程式碼。無需部署 JIT 編譯器和 IL 程式碼。AOT 套用僅部署套用所需的程式碼。現在,你的套用可以在不允許使用 JIT 編譯器的受限環境中執行。

人工智慧 – 將 AI 融入 .NET 應用程式

生成式 AI 和大型語言模型正在改變 AI 領域,使開發人員能夠在其應用程式中建立獨特的 AI 驅動體驗。.NET 8 使你能夠透過 .NET SDK 中一流的開箱即用 AI 功能以及與多個工具的無縫整合輕松利用 AI。

.NET 8 為庫帶來了多項增強功能,以提高其與生成式 AI 工作負載的相容性,例如整合 Tensor 基元。隨著支持 AI 的應用程式的興起,新的工具和 SDK 應運而生。我們與眾多內部和外部合作夥伴合作,例如 Azure OpenAI、Azure 認知搜尋、Milvus、Qdrant 和 Microsoft Teams,以確保 .NET 開發人員可以透過各自的 SDK 輕鬆存取各種 AI 模型、服務和平台。此外,開源語意內核SDK 簡化了這些 AI 元件與新套用和現有套用的整合,幫助您提供創新的使用者體驗。 System.Numerics 現在提供了各種範例和參考樣版,展示了模式和實踐,使開發人員可以輕松入門:

  • 客戶聊天機器人

  • 檢索增強生成

  • 使用 Azure AI 服務開發套用

  • Blazor – 使用 .NET 生成全棧 Web 應用程式

    .NET 8 中的 Blazor 可以同時使用伺服器和客戶端來處理所有 Web UI 需求。這是全棧 Web UI!借助專註於最佳化頁面載入時間、可伸縮性和提升使用者體驗的幾項新增強功能,開發人員現在可以在同一套用中使用 Blazor Server 和 Blazor WebAssembly,從而在執行時自動將使用者從伺服器轉移到客戶端。由於新的基於「Jiterpreter」的執行時和新的內建元件,您的 .NET 程式碼在 WebAssembly 上的執行速度明顯加快。作為增強 .NET 8 中整體身份驗證、授權和標識管理的一部份,Blazor 現在支持生成基於 Blazor 的完整標識 UI。

    .NET MAUI – 提升的效能、可靠性和開發人員體驗

    .NET MAUI 提供單個計畫系統和單個程式碼庫來生成 WinUI、Mac Catalyst、iOS 和 Android 應用程式。原生 AOT(實驗性)現在支持面向類似 iOS 的平台。適用於 .NET MAUI 的新 Visual Studio Code 擴充套件提供了開發跨平台 .NET 移動和桌面套用所需的工具。

    現在支持 Xcode 15 和 Android API 34,允許您面向最新版本的 iOS 和 Android。對效能、控制項和 UI 元素以及特定於平台的行為(例如桌面互動、添加更好的單擊處理、鍵盤偵聽器等)進行了大量品質改進。

    C# 12 功能 – 簡化語法,提高開發人員的工作效率

    C# 12 使你的編碼體驗更加高效和愉快。現在,您可以使用簡單優雅的語法在任何類和結構中建立主建構函式。無需再使用樣板程式碼來初始化欄位和內容。使用簡潔而富有表現力的語法建立陣列、跨度和其他集合型別時,您會感到高興。對 lambda 運算式中的參數使用新的預設值。不再需要多載或 null 檢查來 處理可選參數。您甚至可以使用 alias 指令為任何型別添加別名,而不僅僅是命名型別! using 集合運算式

    // Create a list:
    List<int> a = [12345678];
    // Create a span
    Span<char> b = ['a''b''c''d''e''f''h''i'];
    // Use the spread operator to concatenate
    int[] array1 = [123];
    int[] array2 = [456];
    int[] array3 = [789];
    int[] fullArray = [..array1, ..array2, ..array3]; // contents is [1, 2, 3, 4, 5, 6, 7, 8, 9]

    有關最新版本的 C# 的詳細資訊,請參閱宣布推出 C# 12。

    跨 Visual Studio 系列工具的 .NET 8 支持

    我們有一組很棒的工具,可以幫助你在開發工作流中提高工作效率,並立即利用 .NET 8。Visual Studio 2022 17.8 版本與 .NET 8 一起釋出,帶來了對 .NET 8、C# 12 語言增強功能和各種新的生產力功能的支持。如果你正在學習和/或想要快速了解執行時,VS Code 和 C# 開發工具包是開始使用 .NET 8 的好方法,可在 Linux、macOS 或 GitHub Codespaces 中使用。適用於 .NET 的新 GitHub Codespaces 樣版隨 .NET SDK 和一組已配置的擴充套件一起提供,是開始使用 .NET 8 的最快方法之一。

    .NET 8 中的其他功能:

  • ASP.NET 核心。 簡化單頁應用程式 (SPA) 和 Blazor 的標識,提供基於 Cookie 的身份驗證、預生成的 API、令牌支持和新的標識 UI。並透過表單繫結、防偽支持(以防止跨站點請求偽造 (XSRF/CSRF))以及 asParameters 支持(用於使用 Open API 定義進行參數繫結)來增強最小的 API

  • ASP.NET 核心工具。 路由語法突出顯示、自動完成和分析器,以幫助你建立 Web API。

  • 實體框架核心。 提供新的「復雜型別」作為值物件、基元集合和對分層數據的 SQL Server 支持。

  • NuGet。 幫助你稽核計畫和解決方案中的 NuGet 包是否存在任何已知的安全漏洞。

  • .NET 執行時。 為 WebAssembly (WASM) 和 Android 帶來了新的 AOT 編譯模式。

  • .NET SDK。 恢復終端構建輸出和生產就緒預設值。

  • WPF。 支持 OpenFolderDialog 並在 RDP 中啟用硬體加速

  • ARM64 中。 透過與 ARM 工程師合作,為 ARM64 平台提供顯著的功能增強和改進的程式碼品質。

  • 偵錯。 顯示偵錯摘要,並為常用的 .NET 型別提供簡化的偵錯代理。

  • System.Text.Json. 幫助填充唯讀成員,自訂未對映的成員處理,並改進本機 AOT 支持。

  • .NET 社群工具包。 加速構建 .NET 庫和應用程式,同時確保它們與 trim 和 AOT 相容(包括 MVVM 原始碼生成器!

  • 天藍色。 支持 .NET 8 和 Azure 的 PaaS 服務,例如適用於 Windows 和 Linux 的套用服務、靜態 Web 套用、Azure Functions 和 Azure 容器套用。

  • F# 8. 包括重大的語言更改、新的診斷、可用性的改進和計畫編譯中的效能增強,以及對 FSharp.Core 標準庫的升級。

  • .NET 8 中的新增功能。 檢視我們的文件,了解其他所有內容!

  • .NET 8 入門

    為了獲得 .NET 8 的最佳開發體驗,建議使用最新版本的 Visual Studio 和 Visual Studio Code 的 C# 開發工具包。設定完成後,您應該執行以下操作:

  • 試用新功能和 API。 下載 .NET 8 並在問題跟蹤器中報告問題。

  • 測試當前套用的相容性。了解你的套用是否受到 .NET 8 中預設行為更改的影響。

  • 使用選擇加入更改來測試您的套用。.NET 8 具有選擇加入行為更改,這些更改僅在啟用時影響套用。盡早了解和評估這些更改非常重要,因為它們可能會在下一個版本中成為預設更改。

  • 使用升級助手更新套用。 使用升級助手,只需單擊幾下即可升級套用。

  • 知道你得到了支持。.NET 8 作為長期支持 (LTS) 版本由 Microsoft 正式支持,將支持三年。

  • 獎勵:適用於 .NET 8 的 eShop 範例。使用我們的新 eShop 範例遵循所有最佳編碼和體系結構實踐,該範例現已針對 .NET 8 進行了更新!

  • 慶祝.NET 8

  • .NET 會議 2023。加入我們 2023 年 11 月 14 日至 16 日,慶祝 .NET 8 釋出!

  • .NET 的下一步是什麽? 參與並了解有關 .NET 8 和下一版本的 .NET 的最新訊息。

  • 獲得 C# 認證。透過 freeCodeCamp C# 認證獲得榮譽徽章。

  • 了解 .NET 8。從初學者到高級 .NET 開發人員的免費教程、視訊、課程等。全部針對 .NET 8 進行了更新!

  • 請參閱開發人員案例。檢視開發人員遷移到新式 .NET 的成功案例。

  • 了解為什麽選擇 .NET?。通讀我們最近的部落格系列,了解 .NET 的便利性。

  • 原文:https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/

    轉自 寒冰

    連結:mp.weixin.qq.com/s/imJfL1wHBoIOhfNfvn904g

    - EOF -