.NET 8 RC 2 发布,将在11月14日发布正式版
微軟2023-10-10 發(fā)布了 .NET 8 RC 2,下一站是.NET 8正式發(fā)布,就在下個月Net Conf 2023[1](11月14日)期間正式發(fā)布,我們也開始籌備第四屆中國.NET開發(fā)者峰會了。 經(jīng)過長達一年時間的開發(fā),.NET 8 規(guī)劃的所有主要的新功能都已推出,.NET 8 及其所有組件現(xiàn)在距離正式發(fā)布還有一個月的時間,接下來一個月,開發(fā)團隊主要專注于通過改進功能和修復(fù)錯誤而不是引入主要的新功能來使 .NET 8 進入GA 的最終形態(tài)。
.NET 8 已準備好投入生產(chǎn),但 Microsoft 建議通過 Visual Studio 17.8 預(yù)覽版 3(也是今天剛剛發(fā)布的發(fā)行)對其進行測試,并建議開發(fā)人員轉(zhuǎn)向預(yù)覽頻道內(nèi)部版本[2],以試用 Visual Studio/Visual Studio Code 的 .NET 8。2023年10月,Tiobe編程語言排行榜.顯示Java跌落比較明顯,C#上升趨勢比較明顯. Tiobe官方表示,目前,差異僅為1.2%,如果趨勢保持這種狀態(tài),C#將在大約2個月內(nèi)超過Java。
.NET 團隊今天在官方博客上發(fā)布了一系列文章來介紹.NET 8框架以及相關(guān)聯(lián)的 ASP.NET Core、MAUI、EF Core 、Visual Studio 2022 17.8 的功能特性:
- ASP.NET Core Updates in .NET 8 RC2[3]
- .NET MAUI Updates in .NET 8 RC2[4]
- Visual Studio 2022 17.8 Preview 3[5]
- Entity Framework Updates in .NET 8 RC2[6]
- What’s New in .NET 8[7] 中的所有新功能. 關(guān)于.NET 平臺的廣泛視圖, 請閱讀 為什么要選擇-net[8].
我們通過上面這些文章來看一下 .NET 團隊 如何描述其開發(fā)人員工具產(chǎn)品的 RC2。
.NET 8
.NET 團隊在今天早晨通過文章 宣布推出 .NET 8 RC2[9] :“這是我們最后一個發(fā)布RC 版本。此版本包括適用于 .NET 包的新 NuGet 包自述文件、適用于 MSBuild 的基于 CLI 的簡單項目評估、將容器發(fā)布到 tar.gz 存檔以及適用于 .NET 的張量基元。”
文章提到的的亮點如下:
- 引入了 .NET 包的 NuGet 包自述文件,以便為用戶提供重要信息,并幫助他們快速了解庫是什么及其用途。這是開發(fā)團隊努力提高 NuGet 包自述文件的采用率和質(zhì)量的一部分。
- MSBuild 具有一個新的、簡單的基于 CLI 的項目評估功能:
--getProperty--getItem--getTargetResult,該功能可以更輕松地使用 、 和標志將 MSBuild 中的數(shù)據(jù)合并到腳本或工具中,以便于項目分析。 - SDK 容器發(fā)布工具具有一項新功能,可以直接將容器創(chuàng)建為 tar.gz 存檔,這對于需要在推送映像之前掃描或移動Image的工作流非常有用,從而擴展了可用的部署選項。
- 引入 .NET 張量原語,增強對機器學(xué)習(xí)和數(shù)據(jù)科學(xué)操作的支持。張量原語是一組新的 API,它們引入了對張量操作的支持,這對于 AI 和機器學(xué)習(xí)工作負載至關(guān)重要。它為余弦相似性、點積、矩陣乘法等操作提供了矢量化實現(xiàn)。這是破例的特性發(fā)布,以前在 RC階段是不加新特性的 。這個特性對于當前的人工智能的應(yīng)用開發(fā)尤為重要,特別是開源項目Semantic kernel 也發(fā)布了1.0 beta 1[10].
此外,有關(guān)值得注意的修補程序以及更多內(nèi)容的信息,請參閱 .NET 8 RC2 發(fā)行說明[11]。
MAUI
.NET 團隊在文章 .NET MAUI Updates in .NET 8 RC2[4] 介紹到,今天,我們通過在.NET 8候選版本8(RC2)中發(fā)布.NET MAUI 向.NET 8正式發(fā)布(GA)更近了一步,與 RC1 一樣,此版本包含在上線許可證中,因此您可以在生產(chǎn)應(yīng)用程序中使用它時獲得支持。在此版本中,我們重點關(guān)注了在整個預(yù)覽版中回歸的問題,并恢復(fù)了在改進熱重載、視覺狀態(tài)管理器、綁定和應(yīng)用主題的可靠性時丟失的一些性能。
公告文章中的亮點包括:
- .NET MAUI 受上線許可證保護,并且沒有與 .NET 7 相關(guān)的重大 API 更改。
- 進行了一些優(yōu)化以提高Android和“Setter Specificity”的性能。
ActivityExtensions.GetWindowFrame - 該團隊修復(fù)了與 UI 元素和控件相關(guān)的幾個問題,以提高跨平臺的一致性和視覺準確性。
- 針對拖放功能、選項卡欄外觀和某些平臺行為制定了特定于平臺的修復(fù),以實現(xiàn)跨平臺的一致用戶體驗。
- Microsoft發(fā)布了適用于 .NET 7 的服務(wù)版本8 (版本 7.0.96),其中包含高優(yōu)先級修補程序。
- Xamarin 開發(fā)人員可以將 Xcode 15 和 Android API 34 與 Visual Studio 17.8 Preview 3 或 Visual Studio for Mac 的最新穩(wěn)定版本配合使用。
有關(guān)詳細信息,請參閱 .NET MAUI 發(fā)行說明[12]。
ASP.NET 核心
.NET團隊在 .NET 8 RC 2 中 ASP.NET Core 更新[3]的公告文章中介紹了,開發(fā)團隊在這個周期中的大部分工作都致力于 Blazor,主要使用 C# 而不是通常的主流 JavaScript 進行 Web 開發(fā)的Microsoft 的方案。該帖子特別列車了 Blazor 的 11 個項改進, 其他還包括一個組件項,兩個服務(wù)器和中間件項,換句話說ASP.NET Core的核心特性都是Blazor。
對于 .NET 8,Microsoft引入了 Blazor 的一個重要新概念,即提供全棧 Web UI 的能力。 .NET團隊表示,隨著.NET 8的發(fā)布,Blazor是一個全棧Web UI框架,用于開發(fā)在組件或頁面級別呈現(xiàn)內(nèi)容的應(yīng)用程序:
- 靜態(tài)服務(wù)器呈現(xiàn)以生成靜態(tài) HTML。
- 使用 Blazor 服務(wù)器托管模型的交互式服務(wù)器呈現(xiàn)。
- 使用 Blazor WebAssembly 托管模型的交互式客戶端呈現(xiàn)。
- 首先使用 Blazor Server 自動呈現(xiàn)交互式客戶端,然后在下載 Blazor 捆綁包并激活 .NET WebAssembly 運行時后,在后續(xù)訪問時呈現(xiàn) WebAssembly。自動呈現(xiàn)通常提供最快的應(yīng)用啟動體驗。
公告文章的亮點包括:
- HTTP 日志記錄中間件具有持續(xù)時間日志記錄、組合日志和自定義攔截器等新功能。
- IdentityModel 庫已更新到版本 7x,這提高了性能、一致性和本機 AOT 兼容性。
- 最小 API 和 Blazor 的表單綁定現(xiàn)在支持具有屬性的類型。
IFormFile - SignalR TypeScript 客戶端現(xiàn)在支持有狀態(tài)重新連接,從而減少出現(xiàn)臨時網(wǎng)絡(luò)問題的客戶端的停機時間。
- Blazor Web 應(yīng)用模板具有用于全局或按頁面啟用交互式呈現(xiàn)模式以及使用 Blazor 標識 UI 的新選項。
- Blazor WebAssembly 獨立應(yīng)用模板已重命名和更新,以支持沒有 ASP.NET 核心服務(wù)器的靜態(tài)網(wǎng)站托管。
@rendermode現(xiàn)在可以在文件范圍內(nèi)應(yīng)用 Razor 指令,以在組件定義上指定呈現(xiàn)模式。- Blazor 的增強導(dǎo)航和表單處理已通過新的屬性和事件進行了改進,以控制和自定義行為。
- 已實現(xiàn)交互式服務(wù)器組件的電路關(guān)閉,以便在頁面上沒有剩余的交互式組件時釋放服務(wù)器資源。
- Blazor 中的表單模型綁定現(xiàn)在遵循數(shù)據(jù)協(xié)定屬性,用于自定義表單數(shù)據(jù)綁定到模型的方式。
HttpContext現(xiàn)在可以作為級聯(lián)參數(shù)從靜態(tài)服務(wù)器組件進行訪問。- 該服務(wù)現(xiàn)在可用于在 Blazor Web 應(yīng)用中保留和讀取組件狀態(tài)。
PersistentComponentState - 該屬性現(xiàn)在支持使用該屬性注入密鑰服務(wù)。
[Inject]InjectAttribute.Key - 對話框元素現(xiàn)在支持 Blazor 中的取消和關(guān)閉事件。
更多信息可在新更新的“ASP.NET Core 8.0 新增功能[13]”文檔中找到。
EF Core 8
EF8 Core 的公告帖子 Entity Framework Updates in .NET 8 RC2[6] 重點介紹了對象關(guān)系映射器 (ORM) 產(chǎn)品/服務(wù)中的“包含的一些較小功能”,盡管它還包含指向68 項針對.NET 8的改進。
公告文章的亮點包括:
- EF Core 8 需要 .NET 8,此 RC 2 版本應(yīng)與 .NET 8 RC 2 SDK 一起使用。
- EF Core 8 將與 .NET 8 作為長期支持 (LTS) 版本保持一致。
- EF Core 8 引入了以下新功能:
- 更改具有數(shù)據(jù)庫默認值的屬性的哨兵值(sentinel)
- 支持訪問多個實體類型的更新
- 使用 SQL 而不是 SQL 改進查詢 替換
INEXISTS - 將列映射到 或 屬性
rowversionlongulong - 消除生成的 SQL 中不必要的括號
有關(guān)詳細信息,請參閱“EF Core 8 中的新增功能[14]”文檔和 EF Core 路線圖[15]。
總結(jié)
在 .NET 8 發(fā)布的過程中,我們衷心感謝世界各地所有充滿激情的 .NET 開發(fā)人員,他們挺身而出探索和測試預(yù)覽版和候選版本。您對 .NET 生態(tài)系統(tǒng)的奉獻非常寶貴,您的反饋在確保此最新版本的可靠性和健壯性方面發(fā)揮了關(guān)鍵作用。感謝您成為這一激動人心的旅程的重要組成部分,我們迫不及待地想看看你將通過 .NET 8 帶來什么。.NET團隊特別列出了以下特性來自于社區(qū)的反饋和貢獻:
- ASP.NET Core. 重新考慮在 .NET 8 中默認啟用 HTTP/3[16]
- Blazor. 圍繞 Blazor WebAssembly 的項目結(jié)構(gòu)和 TFM 更改了整個計劃[17]
- Runtime. 點亮更新的 ARM64 硬件功能[18] 和 更新 Marshal.QueryInterface[19].
- 軟件開發(fā)工具包 改進了簡化的輸出路徑[20]并完善了終端記錄器
相關(guān)鏈接:
- [1]Net Conf 2023:https://dotnetconf.net/
- [2]預(yù)覽頻道內(nèi)部版本:https://visualstudio.com/preview
- [3]ASP.NET Core Updates in .NET 8 RC2:https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-rc-2
- [4]NET
MAUI Updates in .NET 8 RC2: https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8-rc-2 - [5] Visual Studio 2022 17.8 Preview 3:https://aka.ms/vs/v178P3
- [6]Entity Framework Updates in .NET 8 RC2 https://devblogs.microsoft.com/dotnet/announcing-ef8-rc2
- [7]What’s New in .NET https://learn.microsoft.com/dotnet/core/whats-new/dotnet-8
- [8]為什么要選擇-net https://devblogs.microsoft.com/dotnet-ch/%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e9%80%89%e6%8b%a9-net/
- [9]宣布推出 .NET 8 RC2: https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-rc2/
- [10]開源項目Semantic kernel 也發(fā)布了1.0 beta 1: https://devblogs.microsoft.com/semantic-kernel/introducing-the-v1-0-0-beta1-for-the-net-semantic-kernel-sdk/
- [11].NET 8 RC2 發(fā)行說明 https://github.com/dotnet/core/blob/main/release-notes/8.0/preview/8.0.0-rc.2.md
- [12].NET MAUI 發(fā)行說明 https://github.com/dotnet/maui/releases/tag/8.0.0-rc.2.9373
- [13]ASP.NET Core 8.0 新增功能: https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-8.0?view=aspnetcore-8.0
- [14]EF Core 8 中的新增功能: https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew
- [15]EF Core 路線圖: https://learn.microsoft.com/en-us/ef/core/what-is-new/
- [16]重新考慮在 .NET 8 中默認啟用 HTTP/3: https://github.com/dotnet/aspnetcore/issues/50131
- [17]圍繞 Blazor WebAssembly 的項目結(jié)構(gòu)和 TFM 更改了整個計劃: https://github.com/dotnet/aspnetcore/issues/49079
- [18]點亮更新的 ARM64 硬件功能:https://github.com/dotnet/runtime/issues/89937
- [19]更新 Marshal.QueryInterface: https://github.com/dotnet/runtime/issues/91981
- [20]改進了簡化的輸出路徑: https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-4/
總結(jié)
以上是生活随笔為你收集整理的.NET 8 RC 2 发布,将在11月14日发布正式版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符 kotlin(3)
- 下一篇: MapGuide应用程序演示样例——你好