.NET平台系列22:.NET Core/.NET5/.NET6 對比 .NET Framework


  在我的博客《.NET平台系列2 .NET Framework 框架詳解》《.NET平台系列7 .NET Core 體系結構詳解》 兩篇文章中分別詳細介紹了.NET Framewrok與.NET Core 的核心構成以及各部件的組成與原理。本文通過其他維度更加直接的對比說明兩者的差異。

體系結構對比

  .NET平台自誕生之日起就具備跨平台的能力。.NET Framework本身是一個跨平台的解決方案,在這一基礎上它還支持C#和VB等編程語言,且這些語言共同遵守公共語言規范( Common Language Specification 簡稱CLS),最終生成的應用程序都會被編譯成公共中間語言(Common Intermediate Language 簡稱CIL)或者MSIL(微軟中間語言)執行。從多層架構設計的角度來看,如果想讓它不僅可以在多種 Windows操作系統中運行,也可以在macOS、 Linux操作系統中運行,則主要需要修改架構底層關於操作系統的部分,而原有的多種編程語言實際上與所運行的操作系統關系很小。

  對比 .NET Framework 的公共語言運行時(Common Language Runtime 簡稱CLR),.NETCore 重新設計了 CoreCLR,以及一個被稱為 CoreFX 的基礎類庫( Base Class Library 簡稱BCL)。

代碼庫體積對比 

  .NET Framework在不斷升級過程中使自己變得更加強大和完備,但是在另一方面也使得自己變得越來越臃腫。隨着版本的不斷升級,構成.NET Framework的應用模型、BCL和運行時(CLR)都在不斷地膨脹(.NET Framework 2.0/3.x和.NET Framework 4.x分別采用CLR 2.0和CLR 4.0)

.NET Core 是借鑒 .NET Frmawork 的優秀思想與強大功能重新構建的新框架,體積自然要比.NET Framework小的多。如Windows Forms 和 Windows Presentation Foundation(WPF)可用於構建圖形用戶界面(GUI應用程序與Windows生態系統緊密相連,無法跨平台,因此將他們從 macOS 和 Linux 的 .NET Core 中移除了。

 

 

下圖引用微軟官方幫助文檔中的一幅圖,圖中通過餅圖和柱狀圖兩種形式展示了 CoreFX 中專門針對各個操作系統(Windows、Unix、 Linux和OX)的C#代碼比例和代碼行數,可以看到90%的 CoreFX 代碼是與操作系統無關的,所以我們在使用 ASP.NET Core時受不同操作系統的影響也同樣會非常小。

 

發版周期對比

在.NET Framework 時代,每發布一個重大版本,需要經歷1年,2年,甚至3年。發版周期相對較長。

從《.NET Core發展歷程》圖中可以了解到自.NET Core 1.0於2016年6月26日正式發布,至2019年12發布.NET Core 3.1版本,基本上是每年發布一個大的版本。.NET5已經於20201年11月正式發布。微軟.NET團隊規划未來每年第四季度發布一個重大版本,其中奇數標記的為GA版本,偶數標記的為LTS版本。

總結

 

參考文獻:

  • https://devblogs.microsoft.com/dotnet/introducing-net-5/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM