.NET是一種用於構建多種應用的免費開源開發平臺,可以使用多種語言,編輯器和庫開發Web應用、Web API和微服務、雲中的無伺服器函數、雲原生應用、移動應用、桌面應用、Windows WPF、Windows窗體、通用 Windows平臺 (UWP)、游戲、物聯網 (IoT)、機器學習、控制台應用、 ...
.NET是一種用於構建多種應用的免費開源開發平臺,可以使用多種語言,編輯器和庫開發Web應用、Web API和微服務、雲中的無伺服器函數、雲原生應用、移動應用、桌面應用、Windows WPF、Windows窗體、通用 Windows平臺 (UWP)、游戲、物聯網 (IoT)、機器學習、控制台應用、Windows服務。框架主要包括:.NET Framework、.NET Standard、.NET Core、.NET 5/6/7 。本主要介紹一下.NET Core 、 .NET 5、.NET 6和.NET 7簡介及區別。
1、.NET Core
.NET Core是適用於 Windows、Linux 和 macOS 的免費、開源托管的電腦軟體框架,是微軟開發的第一個官方版本,具有跨平臺能力的應用程式開發框架 (Application Framework)。
.NET Core 是由許多項目所組成,除了基本的類庫(Core FX) 之外,也包含採用 RyuJIT 編譯的運行平臺 Core CLR、編譯器平臺.NET Compiler Platform、採用 AOT 編譯技術運行最優化的包 Core RT (.NET Core Runtime),以及跨平臺的 MSIL 編譯器 LLILC (LLVM-based MSIL Compiler) 等項目。NET Core 3.1是一個長期支持(LTS)版本,將支持三年。
NET Core 3.1支持的平臺:
-
Alpine: 3.10+
-
Debian: 9+
-
Ubuntu: 16.04+
-
Fedora: 29+
-
centOS: 7+
-
RHEL: 6+
-
openSUSE: 15+
-
SUSE Enterprise Linux (SLES): 12 SP2+
-
macOS: 10.13+
-
Windows Client: 7, 8.1, 10 (1607+)
-
Windows Server: 2012 R2+
註意:Windows窗體和WPF應用程式僅在Windows上運行和支持。
CPU架構支持:
-
x64 支持 Windows, macOS, 和 Linux
-
x86 支持 Windows
-
ARM32 支持 Windows 和 Linux
-
ARM64 支持 Linux (kernel 4.14+)
註意: 需要確保.NET Core 3.1 ARM64部署使用Linux內核4.14版本或更高版本。例如,Ubuntu 18.04滿足這個要求,但16.04是不滿足的。
參考文檔:https://devblogs.microsoft.com/dotnet/announcing-net-core-3-1/
2、.NET 5
.NET 5 是繼 3.1 之後 .NET Core 的下一代的重要版本。命名為.NET 5出於以下兩個原因:
1)跳過了版本編號 4.x,以避免與 .NET Framework 4.x 混淆。
2)從名稱中刪除了“Core”,是為了強調這是 .NET 未來的主要實現。與 .NET Core 或 .NET Framework 相比,.NET 5 會支持類型更多的應用和平臺。
ASP.NET Core 5.0 雖以 .NET 5 為基礎,但保留了名稱“Core”以避免與 ASP.NET MVC 5 混淆。同理,Entity Framework Core 5.0 保留了名稱“Core”,以避免與 Entity Framework 5 和 Entity Framework 6 混淆。
.NET 5 不會替換 .NET Framework,.NET 5 及更高版本是 .NET 未來的主要實現,但 .NET Framework 4.x 仍受支持。目前沒有計劃將以下技術從 .NET Framework 移植到 .NET 5,但 .NET 中有一些替代項:
技術 | 建議使用的替代項 |
Web 窗體 | ASP.NET Core Razor 或 Razor Pages |
Windows 工作流 (WF) | Elsa-Workflows |
.NET 5 不會替代 .NET Standard,新的應用程式開發可為所有項目類型(包括類庫)指定 net5.0 目標框架名字對象 (TFM)。在 .NET 5 工作負載之間共用代碼得到了簡化,因為你只需要 net5.0 TFM。對於 .NET 5 應用和庫,net5.0 TFM 合併和替換了 netcoreapp 和 netstandard TFM。但是,如果計劃在 .NET Framework、.NET Core 和 .NET 5 工作負載之間共用代碼,可以通過將 netstandard2.0 指定為 TFM 來實現此目的。
編寫 .NET 5 應用的開發人員將有權訪問最新的 C# 版本和功能。.NET 5 與 C# 9 搭配,為語言帶來了許多新功能。
參考文檔:https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-5
3、.NET 6
.NET 6 提供 .NET 統一計劃的最終部分,該計劃在 .NET 5 中啟動。.NET 6 在移動、桌面、IoT 和雲應用之間統一了 SDK、基礎庫和運行時。除了這方面的統一以外,.NET 6 生態系統還提供了以下功能:
1)簡化開發
輕鬆入門。C# 10 中的新語言功能可減少需要編寫的代碼量。利用 Web 堆棧和最小 API 的投資,可以輕鬆地快速編寫更小、更快速的微服務。
2)更佳的性能
.NET 6 是最快的完整堆棧 Web 框架,如果在雲中運行,則會降低計算成本。
3)終極工作效率
.Net 6 和 Visual Studio 2022 提供熱重載、新的 git 工具、智能代碼編輯、可靠的診斷和測試工具以及更好的團隊協作。
.NET 6 將作為長期支持 (LTS) 版本得到三年的支持。.NET 6 重寫 System.IO.FileStream 類型,以便在 Windows 上提供更佳的性能和可靠性。現在 FileStream 絕不會在為 Windows 上的非同步 I/O 創建時阻止。按配置優化 (PGO) 是指 JIT 編譯器根據最常使用的類型和代碼路徑生成優化後的代碼。.NET 6 引入了動態 PGO。動態 PGO 與分層編譯配合運作,以根據層級 0 中實施的其他檢測來進一步優化代碼。動態 PGO 預設情況下處於禁用狀態,但可以使用 DOTNET_TieredPGO環境變數來啟用它。
.NET 6 引入了 Crossgen2,它是已被刪除的 Crossgen 的後繼版本。Crossgen 和 Crossgen2 是用於提供預先 (AOT) 編譯的工具,可改進應用的啟動時間。Crossgen2 是用 C# (而不是 C++)編寫的,可執行之前的版本無法實現的分析和優化。
.NET 6 版本支持 macOS Arm64(或“Apple Silicon”)和 Windows Arm64 操作系統,支持本機 Arm64 執行和 x64 模擬。此外,x64 和 Arm64 .NET 安裝程式現在會並行安裝。
使用熱重載功能,可以修改應用源代碼,並立即將這些更改應用到正在運行的應用。此功能的目的是避免在編輯之間重新啟動應用程式,從而提高工作效率。熱重載在 Visual Studio 2022 和 dotnet watch 命令行工具中可用。熱重載適用於大多數類型的 .NET 應用以及 C#、Visual Basic 和 C++ 源代碼。
參考文檔:https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-6
4、.NET 7
.NET 7 為應用程式帶來了更高的性能和C# 11/ F# 7、.NET MAUI、ASP.NET Core/Blazor, Web api, WinForms, WPF等等。有了.NET 7\還可以輕鬆地將.NET 7項目進行容器化,在GitHub操作中設置CI/CD工作流,並實現雲原生的可觀察性。
.NET仍然是最快、最受喜愛和信任的平臺之一,它擁有龐大的.NET包生態系統,包括超過33萬個包。
.NET 7版本與其他產品、庫和平臺一起發佈,包括:
-
ASP.NET Core 7
-
Entity Framework Core 7
-
.NET MAUI
-
Windows Forms
-
WPF
-
Orleans 7
更新與優化包括如下:
1).NET MAUI
.NET多平臺應用程式 UI (MAUI) 將 Android、iOS、macOS 和 Windows API 統一到一個API中,開發者可以編寫一個在多平臺上本機運行的應用。作為.NET 7的一部分,.NET MAUI提供了一個項目來處理跨設備及其平臺的多目標。
2)ARM64
ET可幫助開發者構建在ARM設備上運行的應用,.NET 7將迎來多項改進。
3)性能
.NET 7是目前最快的.NET。.NET 7對反射、堆棧替換 (OSR)、啟動時間、本機 AOT、迴圈優化和許多其他領域進行了超過一千項影響性能的改進。
5、.NET Framework、.NET Standard、.NET Core與.NET 5/6/7 區別
.NET Framework框架只能在windows上運行,但各種跨平臺的需求原來越強烈,不能滿足跨平臺、模塊化的需求。微軟把.NET Framework可以跨平臺的部分提取出來,封裝成標準庫就是.NET Standard。無論哪個系統平臺上,標準庫里內容是完全通用的。但其他系統的特有的部分在Windows中也沒有,所以在標準庫.NET Standard基上開發出來.NET Core。.NET Core穩定後,改名成.NET 5/6/7。
1).NET Core
適用於windows、linux、macos操作系統的免費開源托管的計算軟體框架。最初是為了支持ASP.NET Core而創建的。.NET Core可以在Windows、Linux和macOS上運行,並且支持多種編程語言,如C#、F#和Visual Basic。
2).NET Standard
基礎的規範標準,把.NET Framework的某些程式集對應到.NET Core。如果本來就是.NET Core以上的版本就沒必要使用.NET Standard。
3).NET 5/6/7
.NET Core的穩定版本 官方也有文檔說明如何 從 ASP.NET Core 3.1 遷移到 6.0。
.NET 5是.NET Core的下一個版本,它是一個統一的開發平臺,用於構建應用程式和服務,可以在Windows、Linux和macOS上運行。.NET 5支持多種編程語言,包括C#、F#、Visual Basic和C++/CLI。
.NET 6是.NET 5的後續版本,它將在2021年發佈。.NET 6將包括更多的功能和改進,如更好的性能、更好的可靠性、更好的安全性和更好的開發人員體驗。
.NET 7是.NET 6的後續版本,它將包括更多的功能和改進,以進一步提高性能、可靠性、安全性和開發人員體驗。
出處:https://www.cjavapy.com/article/2823/
來源公眾號:DotNet開發跳槽