受欢迎的博客标签

.NET Core 与 .NET Framework mono 三者之间的关系比较

Published

netcore并不是netframework的精简版本,在liunx上也不是借助mono实现的。

传统netframewrok ,netcore, mono是并列关系,算是net的三大平台。

asp .net core 网站可以运行在他们三者上边   .NET Core 与 .NET Framework 的比较结果

大部分人了解并喜爱的 .NET 被称作 .NET Framework。那么,.NET Core 与 .NET Framework 的比较结果如何呢? 首先请记住,您仍然使用相同的语言(C#、F#、Visual Basic)编写所有代码。从视觉和感觉上来说,您编写代码的体验应该非常相似。但是,.NET Core 是新的堆栈,而非 .NET Framework 的子集。最好将 .NET Core 和 .NET Framework 看作两个重合且共同进化的堆栈。 编写用于 Windows 7 到 Windows 10 的桌面应用程序时,现在和将来使用的都是 .NET Framework 堆栈。

事实上,您可以让 .NET Framework 和 .NET Core 代码在同一解决方案中和谐共存。例如,请考虑一个方案,其中,.NET Framework GUI(例如 Windows 窗体)使用的是在 .NET Core 上编写的服务。 我们可以从两个方面来看待 .NET Core 和 .NET Framework 之间的异同。 API 外围应用和运行时功能。

图 1 说明了两个平台之间的 API 重叠。  

 图 1:.NET Framework 和 .NET Core 共享一个 API 子集 .NET Core 和 .NET Framework 上均实现了 .NET API(虽然有时底层的实现不同)。同时,.NET Core 和 .NET Framework 均有对方不具备的 API 和功能。例如,.NET Framework 有多个 .NET Core 不具备的 GUI 框架和特定于 Windows 的 API。同样地,.NET Core 有 .NET Framework 缺少的跨平台功能和 API。 另外,.NET Framework 是通过 Windows 更新获得服务的 Windows 组件。而 .NET Core 的存在环境和服务获取方式则采用完全不同的模式。.NET Core 包括 NuGet 包,并带有安装了运行时的本地应用。这就意味着应用程序可以“携带”.NET Core,这让它们可以在计算机或设备上与其他 .NET Core 实例并行存在。这样,服务就可以通过程序包管理器应用于每个应用程序,而无需通过 OS 更新全局应用。  .