ASP.NET Core基於 .NET Core 項目模型,它支持構建能夠運行在 Windows、Mac和 Linux 上的跨平臺應用程式。當您構建一個 .Net Core 項目的時候,您可以選擇一種 .NET框架來構建您的應用程式,.NET Framework (CLR)、 .NET Core (... ...
原文:Choosing the Right .NET For You on the Server
作者:Daniel Roth
翻譯:王健
校對:謝煬(Kiler)、何鎮汐、許登洋(Seay)、孟帥洋(書緣)
ASP.NET Core基於 .NET Core 項目模型,它支持構建能夠運行在 Windows、Mac和 Linux 上的跨平臺應用程式。當您構建一個 .Net Core 項目的時候,您可以選擇一種 .NET框架來構建您的應用程式,.NET Framework (CLR)、 .NET Core (CoreCLR) 或者 Mono ? 應該選擇哪一種 .NET框架,我們來看下每一種的優缺點吧。
.NET Framework
.NET Framework 是三個.NET框架中最知名和最成熟的。.NET Framework 是承載於Windows系統平臺的全功能成熟框架。.NET Framework 的生態系統已經非常成熟,並且已經被使用超過了10年。.NET Framework 如今已經大量用於生產環境併為您創建的應用程式和類庫提供最高級別的相容性。
.NET Framework 只能運行在Windows系統上。它是一個擁有大量 API 並且發佈周期漫長的框架。雖然 .NET Framework 的代碼可供參考 ,但它不是一個活躍的開源項目。
.NET Core
.NET Core是一個模塊化的運行時和類庫實現,包括.NET Framework的一個子集。 .NET Core支持Windows、Mac以及Linux系統。.NET Core是由一組被稱為 “CoreFX” 的庫,和一個被稱為 “CoreCLR” 的小的並被優化過的運行時。 .NET Core是開源的,所以你可以跟蹤它的項目進度,併在 GitHub 上貢獻代碼。
CoreCLR 運行時 (Microsoft.CoreCLR) 和 CoreFX 庫通過 NuGet 進行分發。.NET Core 被構建成組件化的庫集合,因此,您可以在您的應用程式中根據需要,僅使用需要的 API 。您也可以在更受限的環境中運行基於.NET Core 的應用(如 ASP.NET Core on Nano Server)。
API 進行了更新,使其更好地組件化。這意味著現有的在 .NET Framework 中創建的庫通常需要重新編譯來使其運行在 .NET Core 中。.NET Core 的生態系統相對來說比較新,但是在流行的 .Net 組件包的支持下發展迅速,如 JSON.NET,AutoFac,xUnit.net 等等。
基於 .NET Core 的開發,可以使你在單一平臺上開發的程式運行在多個平臺上。