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