最全.NET Core 、.NET 5、.NET 6和.NET 7簡介和區別

来源:https://www.cnblogs.com/xbhp/archive/2023/04/04/17286028.html
-Advertisement-
Play Games

.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開發跳槽

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • kubeadm安裝kubernetes kubeadm 是官方社區推出的一個用於快速部署 kubernetes 集群的工具。 這個工具能通過兩條指令完成一個 kubernetes 集群的部署: $ kubeadm init 創建一個master節點 $ kubeadm join 將一個 Node 節 ...
  • 俗話說的好:技能學了~就要用在自己喜歡得東西上!! 這我不得聽個話~我喜歡小姐姐,跳舞的小姐姐 這不得用python把小姐姐爬下來~嘿嘿嘿 採集網站 本期目標來自虎牙舞蹈區 開發環境 Python 3.8 Pycharm 模塊 requests re 基本流程 數據來源分析 確定採集內容是什麼? ( ...
  • 作者:袁首京 原創文章,轉載時請保留此聲明,並給出原文連接。 草堂南澗邊,有客嘯雲煙。 掃葉林風後,拾薪山雨前。 野橋通竹徑,流水入芝田。 琴月相親夜,更深戀不眠。 話說周世宗顯德年間,有位老先生,性情疏野,不以榮宦為意。一生遇見了很多人、經歷了許多事。可惜這些事我一件也不知道、這些人我一個也不曉得 ...
  • 整理編輯:阿秀 鏈接:https://www.nowcoder.com/discuss/1096078 學弟分享 我是一個杭州雙非的本科生,2022屆畢業之後進了某銀行的科技部工作,年包 20w+。 當時想著在銀行也算是一份安穩的工作,因此選擇了給錢最多的一個,想著自己走上了金融 + 科技的賽道。 ...
  • 教程簡介 Apache Commons DBUtils入門教程 - 從基本到高級概念的簡單簡單步驟熟悉Apache Commons DBUtils,其中包括概述,環境設置,第一個應用程式,基本CRUD示例,創建,讀取,更新,刪除查詢,DBUtils對象,QueryRunner ,AsyncQuery ...
  • 前言 一、人物簡介 第一位閃亮登場,有請今後會一直教我們C語言的老師 —— 自在。 第二位上場的是和我們一起學習的小白程式猿 —— 逍遙。 二、算數運算符簡介 C語言的算數運算符,是用來完成基本的算術運算的符號。 按操作數個數可分為一元運算符(含一個操作數)和二元運算符(含兩個操作數)。 一元運算符 ...
  • abstract 由abstract關鍵字修飾的類稱為抽象類,可以將某些類共有的行為抽象出來,形成約束,提高開發效率。 //抽象類 public abstract class Action{ //抽象方法,只有方法名字,沒有方法的實現 public abstract void doSth(); } ...
  • 一、說明 在SimpleAdmin1.0版本中,我將整體項目結構分為三大塊,分別為架構核心、業務模塊和應用服務。隨著1.0版本的封版,回去再看我之前的項目架構,也暴露了一些問題,比如在1.0版本中,Signalr和Mqtt只能二選一,這顯然是不科學的,因為這兩種雖然都可以作為消息通知,但是顯然可以有 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...