Microsoft
.NET是開發(fā)常用的環(huán)境,很多軟件都是繼續(xù)這種環(huán)境開發(fā)的,如果您在安裝電腦軟件的時候提示無法檢測到net說明您的電腦沒有安裝對應(yīng)的Microsoft
.NET版本,通常情況下新發(fā)布的軟件都是基于更高級net版本開發(fā)的,如果你電腦上的net版本比較低,那么在運(yùn)行一些新軟件的時候可能也會提示電腦沒有找到適合的net環(huán)境,例如安裝一些cad軟件,photoshop軟件可能會提示電腦需要NET才能運(yùn)行,這時候就可以下載新版的NET使用,這里小編推薦的是.NET
Framework 6,這個版本是2021年11月發(fā)布的,需要就下載吧1
.NET 6是LTS 版本,將支持三年,從 2021 年 11 月到 2024 年 11 月。它在多個操作系統(tǒng)上受 Microsoft 支持。
在 .NET 6 開發(fā)周期內(nèi),總共包含大約一萬個 commit,下面簡要介紹新版本的亮點(diǎn)變化,https://docs.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-6
NET 6 中的新增功能
.NET 6 提供 .NET 統(tǒng)一計劃的最終部分,該計劃在 .NET 5 中啟動。 .NET 6 在移動、桌面、IoT 和云應(yīng)用之間統(tǒng)一了 SDK、基礎(chǔ)庫和運(yùn)行時。 除了這方面的統(tǒng)一以外,.NET 6 生態(tài)系統(tǒng)還提供了以下功能:
簡化開發(fā):輕松入門。 C# 10 中的新語言功能可減少需要編寫的代碼量。 利用 Web 堆棧和最小 API 的投資,可以輕松地快速編寫更小、更快速的微服務(wù)。
更佳的性能:.NET 6 是最快的完整堆棧 Web 框架,如果在云中運(yùn)行,則會降低計算成本。
終極工作效率:.Net 6 和 visual studio 2022 提供熱重載、新的 git 工具、智能代碼編輯、可靠的診斷和測試工具以及更好的團(tuán)隊協(xié)作。
預(yù)覽功能默認(rèn)為禁用狀態(tài)。 它們還不支持在生產(chǎn)環(huán)境中使用,并且可能會在將來的版本中刪除。 新的 RequiresPreviewFeaturesAttribute 用于批注預(yù)覽 API,如果使用這些預(yù)覽 API,則相應(yīng)的分析器會發(fā)出警報。
Visual Studio 2022 和 Visual Studio 2022 for Mac(以及更高版本)支持 .NET 6。
FileStream
已為 .NET 6 重寫 System.IO.FileStream 類型,以便在 Windows 上提供更佳的性能和可靠性。 現(xiàn)在 FileStream 絕不會在為 Windows 上的異步 I/O 創(chuàng)建時阻止
按配置優(yōu)化
按配置優(yōu)化 (PGO) 是指 JIT 編譯器根據(jù)最常使用的類型和代碼路徑生成優(yōu)化后的代碼。 .NET 6 引入了動態(tài) PGO。 動態(tài) PGO 與分層編譯配合運(yùn)作,以根據(jù)層級 0 中實施的其他檢測來進(jìn)一步優(yōu)化代碼。 動態(tài) PGO 默認(rèn)情況下處于禁用狀態(tài),但可以使用 DOTNET_TieredPGO環(huán)境變量來啟用它
Crossgen2
.NET 6 引入了 Crossgen2,它是已被刪除的 Crossgen 的后繼版本。 Crossgen 和 Crossgen2 是用于提供預(yù)先 (AOT) 編譯的工具,可改進(jìn)應(yīng)用的啟動時間。 Crossgen2 是用 C# (而不是 C++)編寫的,可執(zhí)行之前的版本無法實現(xiàn)的分析和優(yōu)化。
Arm64 支持
.NET 6 版本支持 macOS Arm64(或“Apple Silicon”)和 Windows Arm64 操作系統(tǒng),支持本機(jī) Arm64 執(zhí)行和 x64 模擬。 此外,x64 和 Arm64 .NET 安裝程序現(xiàn)在會并行安裝。
熱重載
使用熱重載功能,可以修改應(yīng)用源代碼,并立即將這些更改應(yīng)用到正在運(yùn)行的應(yīng)用。 此功能的目的是避免在編輯之間重新啟動應(yīng)用程序,從而提高工作效率。 熱重載在 Visual Studio 2022 和 dotnet watch 命令行工具中可用。 熱重載適用于大多數(shù)類型的 .NET 應(yīng)用以及 C#、Visual Basic 和 C++ 源代碼
.NET MAUI
.NET 多平臺應(yīng)用 UI ( .NET MAUI) 仍處于預(yù)覽狀態(tài),會在 2022 第一季度推出候選發(fā)布版本,并在 2022 的第二季度正式發(fā)布 (GA)。 使用 .NET MAUI,可以使用單個代碼庫生成適用于桌面和移動操作系統(tǒng)的本機(jī)客戶端應(yīng)用。
C# 10 和模板
C# 10 包括一些創(chuàng)新,如 global using 指令、文件范圍內(nèi)的命名空間聲明和記錄結(jié)構(gòu)
為了配合這些內(nèi)容,已采用新式 C# .NET SDK 項目模板以使用一些新的語言功能:
async Main 方法
頂級語句
目標(biāo)類型的新表達(dá)式
隱式 global using 指令
文件范圍的命名空間
可為空引用類型
通過將這些新語言功能添加到項目模板,可從啟用的功能開始編寫新代碼。 但是,在升級到 .NET 6 時,不會影響現(xiàn)有的代碼。
F# 和 visual basic
F# 6 增加了對 F# 語言和 F# 交互窗口的幾項改進(jìn)。
Visual Basic 在 Visual Studio 體驗和 Windows 窗體項目啟動方面進(jìn)行了改進(jìn)。
SDK 工作負(fù)載
為了將 .NET SDK 的大小控制到較小,某些組件已放置在新的可選 SDK 工作負(fù)載中。 這些組件包括 .NET MAUI 和 Blazor WebAssembly AOT。 如果使用 Visual Studio,它將負(fù)責(zé)安裝所有需要的 SDK 工作負(fù)載。 如果使用 .NET CLI,則可以使用新 dotnet workload 命令來管理工作負(fù)載:
1、下載以后就可以得到64、86版本的軟件,通常安裝64就可以了,如果電腦是32就安裝86
2、如圖所示,彈出安裝的引導(dǎo)界面,直接點(diǎn)擊安裝
3、提示安裝結(jié)束,現(xiàn)在就可以重啟電腦完成配置,也可以在軟件查看說明文檔
IL 剪裁
改進(jìn)了獨(dú)立部署的剪裁。 在 .NET 5 中,僅剪裁未使用的程序集。 .NET 6 還添加了對未使用的類型和成員的剪裁。 此外,現(xiàn)在默認(rèn)啟用剪裁警告,會在剪裁可能會刪除運(yùn)行時使用的代碼時發(fā)出警告
安全性
.NET 6 添加了對兩項關(guān)鍵安全緩解措施的預(yù)覽支持:控制流強(qiáng)制技術(shù) (CET) 以及“寫入獨(dú)占執(zhí)行”(W^X)。
CET 是一種 Intel 技術(shù),在部分較新的 Intel 和 AMD 處理器中可用。 它將功能添加到硬件,防止某些控制流劫持攻擊。 .NET 6為 Windows x64 應(yīng)用提供了對 CET 的支持,且必須顯式啟用它。
可通過 .NET 6 在所有操作系統(tǒng)上使用 W^X,但它僅在 Apple Silicon 上默認(rèn)啟用。 W^X 通過禁止內(nèi)存頁同時可寫入和可執(zhí)行來阻止最簡單的攻擊路徑。
代碼分析
.NET 6 SDK 包括一些新的代碼分析器,這些分析器涉及 API 兼容性、平臺兼容性、剪裁安全性、在字符串串聯(lián)和拆分中使用范圍、更快的字符串 API 和更快的集合 API。
反射 API
.NET 6 引入了以下新 API,用于檢查代碼并提供可為 null 的信息:
System.Reflection.NullabilityInfo
System.Reflection.NullabilityInfoContext
System.Reflection.NullabilityState
這些 API 可用于基于反射的工具和序列化程序。
Microsoft.Extensions API
多個擴(kuò)展命名空間在 .NET 6 中進(jìn)行了改進(jìn),如下表所示。
新的 LINQ API
.NET 6 中添加了許多 LINQ 方法。 下表中列出的大多數(shù)新方法在 System.Linq.Queryable 類型中具有等效方法。
網(wǎng)友評論