.net 与.net core 与.net framework与.net standard之间的关系理解

最近在做C#程序的跨平台的东西,所有仔细研究了下这几个常常弄混的东西。

.net是一个用于开发的平台。官方的说法是:

免费的。跨平台的。开源的。一个开发者平台来构建你所有的应用程序。

.net core是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Application Framework)。

.net framework主要是基于windows平台开发的框架。

.NET Standard 是针对多个 .NET 实现推出的一套正式的 .NET API 规范。 推出 .NET Standard 的背后动机是要提高 .NET 生态系统中的一致性。 .NET 5 及更高版本采用不同的方法来建立一致性,这种方法在大多数情况下都不需要 .NET Standard。 但如果要在 .NET Framework 和其他任何 .NET 实现(例如 .NET Core)之间共享代码,则库必须面向 .NET Standard 2.0。 不会再发布新的stanard版本,但 .NET 5、.NET 6 以及所有将来的版本将继续支持 .NET Standard 2.1 及更早版本。

最后我的理解是这样的,由于.net framework不支持跨平台,但是有时候需要做一些跨平台的程序,这样使用framework的工程师就无法做到。必须转语言。所以微软开发了.net core,提供了跨平台的能力,但是并不能完全解决两者之间的冲突,并且移植难度和工作量不小。所以提供了一套标准库,就是.net standard,这一套API支持各个平台。这样对于使用framework的工程师来说,就可以将平台通用的业务抽离出来,做成.net standard标准库,这样不同的平台业务都可以调用一套通用的代码。降低移植工作量。

这里只是涉及到需要移植framework程序这样做比较合理。如果是新开发的跨平台程序,可以直接选择框架.net 5.0及以上,如果需要开发特定平台的业务,可以引入特定平台框架,比如 .net 50 -windows.10 这样来做。

.net framework支持的.net standard最高为2.0,也是推荐使用的版本。

.net core支持的.net standard最高版本为2.1

以下截图可供参考:

.net standard 2.0详细API解析地址:.NET API 浏览器 | Microsoft Docs

猜你喜欢

转载自blog.csdn.net/yunxiaobaobei/article/details/123770755