.NET 7 中的新增功能:.NET 7 的新功能和最新更新!
我們都對 .NET 7 的發(fā)布感到興奮,正如我們所知,每年 11 月左右,Microsoft 都會發(fā)布最新版本的 .NET。最后一個版本 .NET 6 于 2021 年 11 月 8 日發(fā)布,并且按照同一時間線,Microsoft 將 .NET 7 的發(fā)布日期定在 2022 年 11 月 8 日,即為期三天的 .NET Conf 在線活動的開幕日與去年發(fā)布日期相同的 .NET 6。今年新版本的好消息是它主要關(guān)注統(tǒng)一、現(xiàn)代、簡單和快速。所以,事不宜遲,讓我們跳到細節(jié)。
.NET 7 的新增功能和更新
Microsoft 推出了帶有 STS(標準期限支持)的 .NET 版本 7 或僅提供 18 個月支持的較短支持版本。微軟今年推出STS版本,是因為它在2019年就已經(jīng)提到,每年11月左右都會發(fā)布一個新版本的.NET。但是,考慮到新的官方 .NET 7 功能和更新,它仍然為用戶帶來了大量更改和 .NET 7 性能改進。下面給出了 .NET 7 與 .NET 6 之間的 17 個值得注意的差異,如下所示:
1. 堆棧替換(OSR)這允許在執(zhí)行過程中通過某種方式更改執(zhí)行的代碼。這將有助于長時間運行的方法在執(zhí)行過程中轉(zhuǎn)移到更快的版本。
2.正則表達式改進:一些正則表達式改進,使它們在 .NET 7 中更好一些。
3. 簡化的 LINQ 排序
4.動態(tài)PGO改進:Dynamic PGO 旨在對 Static PGO 進行一些關(guān)鍵更改,靜態(tài) PGO 要求開發(fā)人員使用與培訓分開的特殊工具,Dynamic PGO 不需要任何這些;您需要做的就是運行您有興趣優(yōu)化的應用程序,然后為 Microsoft 收集數(shù)據(jù)!
5.反射改進:通過 Microsoft 的此更新,現(xiàn)在在 .NET 7 中使用反射調(diào)用成員時的開銷已大大減少。
6. 應用修整改進:修剪您在特定應用程序中不需要的東西并制作更小的應用程序,從而提供更小的 .exe 大小。
7. 修剪庫:修剪不需要或不需要的庫。
8.日期時間中的納秒和微秒值允許您從 Date Time 對象中獲得更具體的值。
9. 內(nèi)存緩存改進這是專門針對 ASP.NET 的,但這是對我們?nèi)绾芜M行內(nèi)存緩存的改進。
10. TAR 文件創(chuàng)建:.NET 6 已經(jīng)允許創(chuàng)建 .ZIP 文件,但最新版本的 .NET 7 現(xiàn)在允許創(chuàng)建 .TAR 文件。
11. Blazor 變化:空白模板,示例 Blazor 模板(其中沒有啟動示例數(shù)據(jù)),
導航改進
在 Blazor Web 組件中加載進度條
虛擬化改進:更快地在屏幕上顯示內(nèi)容并查看響應速度更快的網(wǎng)站
通過狀態(tài)
自定義元素改進
更好的 .NET Maui 性能
12. Blazor 混合認證與授權(quán):以前,沒有對構(gòu)建 .NET Maui 應用程序的支持,但現(xiàn)在有關(guān)于如何做的實際支持,可以節(jié)省時間。
13.復雜的身份驗證支持:允許在后端創(chuàng)建 8 個復雜的令牌
14. 最小的 API 改進
輸出緩存
速率限制:之前您必須手動編寫隊列,但現(xiàn)在只需對您自己的應用程序進行速率限制,然后管理調(diào)用依賴項的速率和更好的用戶體驗
在最小 API 中上傳文件
以最少的 API 改進開放 API
路由過濾器處理
改進的依賴注入
ASP.NET Core中的一些改進,例如 MVC 和 Blazor Pages 的可空模型
15. 根據(jù) GDPR 更改 cookie 同意的值,在 .NET 6 中,它是手動完成的,但現(xiàn)在只需復制并粘貼 20 行代碼,您就可以獲得 cookie 橫幅和接受等。
16. 同時使用 gRPC 和 REST API然后你需要為兩者編碼,但現(xiàn)在添加了 .JSON 轉(zhuǎn)碼,所以如果有人調(diào)用你的 REST API 并且不知道如何使用 gRPC,他們可以使用 REST 使你的服務(wù)到服務(wù)和客戶端到服務(wù)的速度更快。
17. 其他附加變化
加載應用程序時加載 Circle
使好的代碼相對較快
Blazor 的基本加密支持
這是您需要了解的有關(guān) .NET 7 的所有內(nèi)容的概述,要更深入地了解新版本和以前的版本,您可以參考.NET 博客和.NET Conf并獲取相關(guān)信息并使用它們。
是什么給 .NET 7 帶來了這么多變化?
.NET 開源社區(qū)已經(jīng)交流并提出了大量有助于塑造 .NET 7 版本的意見。說到實際投稿數(shù),有不止28k 貢獻由以上制作8900 位貢獻者在 .NET 7 的整個發(fā)布過程中來自社區(qū)。
您將如何從 ASP.NET 6.0 Core 和 7.0 遷移
現(xiàn)在我們已經(jīng)熟悉了 .NET 7.0 的最新功能。讓您心煩意亂的問題一定是“我應該從 .NET 6 轉(zhuǎn)向 .NET 7”嗎?出色地!答案取決于您的需要和要求,是否完全轉(zhuǎn)向 .NET 7 取決于您。而且,如果您選擇從 ASP.NET Core 6.0 遷移到 7.0,我們已經(jīng)給出了您可以執(zhí)行的步驟相同的。
而且,如果您選擇遷移到 .NET 7,下面是Microsoft提供的從 ASP.NET 6.0 遷移到 7.0 的分步指南。
從 ASP.NET 6.0 遷移到 7.0 的初始先決條件是擁有 Visual Studio Code 2022。
更新 global.json 中的 .NET Core SDK 版本\
如果您使用global.json文件來定位特定的 .NET Core SDK 版本,請將版本屬性更新為安裝的 .NET 7.0 SDK 版本。例如:
目標框架或 TFM 更新
將 TFM 或目標框架更新到 .NET 7.0
<Project Sdk="Microsoft.NET.Sdk.Web">
<屬性組>- <TargetFramework>net6.0</TargetFramework>+ <TargetFramework>net7.0</TargetFramework>
</物業(yè)組></項目>
對更新包的引用
在項目文件中,將所有Microsoft.AspNetCore .*、Microsoft.EntityFrameworkCore .*、Microsoft.Extensions.*和System.Net.Http.Json包引用的 Version 屬性更新為 7.0.0 或更高版本。例如:
<物品組>- <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="6.0.9" />- <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.9">- <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="6.0.9" />- <PackageReference Include="System.Net.Http.Json" Version="6.0.0" />+ <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="7.0.0" />+ <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.0">+ <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="7.0.0" />+ <PackageReference Include="System.Net.Http.Json" Version="7.0.0" /></項目組>
恭喜!您的 .NET 7 已準備好執(zhí)行其操作。
結(jié)論
正如我們所看到的,Microsoft 正在履行其每年向其用戶提供卓越更新的承諾。我相信這篇博文一定讓您對 .NET 7 帶來的最新功能和更新有了不錯的了解。它將幫助您決定是應該升級到 .NET 7 還是等待 2023 年的 .NET 8。
此外,Bacancy 是提供全球一流的全棧開發(fā)服務(wù)的領(lǐng)先品牌。我們才華橫溢的專家可以在您的整個開發(fā)過程中為您提供幫助。如果您還計劃為您的下一個項目雇用 .NET 開發(fā)人員。與我們的專家聯(lián)系 30 分鐘。免費致電并了解他們的專家建議如何為您的項目做出貢獻。
(言鼎科技)專做軟件開發(fā),微信小程序,網(wǎng)站開發(fā),軟件外包,手機APP開發(fā),歡迎資訊!