原文: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 的开发,可以使你在单一平台上开发的程序运行在多个平台上。