.Net Core、便携式、标准、紧凑、UWP 和 PCL 之间的区别?

2024-03-06

我听说过

  • .Net核心
  • .Net 便携式
  • .Net标准
  • .Net 紧凑型
  • 通用Windows平台
  • 便携式类库

所有这些都向我解释为“完整 .Net 的子集,允许您针对多个平台”。所以我的问题是

  1. 有什么不同!?
  2. 如果我想编写一个可供尽可能多的受众使用的库,哪一个(或多于一个)我需要使用这些吗?

(我的具体情况:我有图书馆 https://github.com/BlueRaja/High-Speed-Priority-Queue-for-C-Sharp针对 .Net 2.0、.Net 4.5 和 UWP。针对 UWP 需要创建一个新的 VS 项目并链接所有现有文件,这是一个巨大的痛苦。现在有人告诉我它不适用于 PCL,并且从它的声音来看我必须再次为 .Net Standard 执行此操作!?)


我先回答你的第二个问题:

我有一个针对 .Net 2.0、.Net 4.5 和 UWP 的库。针对 UWP 需要创建一个新的 VS 项目并链接所有现有文件,这是一个巨大的痛苦。现在有人告诉我它不适用于 PCL,并且从它的声音来看我必须再次为 .Net Standard 执行此操作!?)

如果我想编写一个可供尽可能多的受众使用的库,我需要使用其中哪一个(或多个)?

简短的回答:你应该瞄准netstandard。使用最低版本 https://github.com/dotnet/standard/blob/master/docs/versions.md#net-standard-versions拥有您需要的所有 API。您可以使用类似的工具API Port https://github.com/Microsoft/dotnet-apiport to 检查您现有的项目与给定的兼容性netstandard version https://www.youtube.com/watch?v=rzs_FGPyAlY.

不幸的是,这种方法将留下旧平台,在您的例子中是.NET 2.0。如果需要维护 .NET 2.0 支持,那么您将需要一个单独的项目(带有链接文件)来构建单独的 .NET 2.0 程序集。

详细内容...

有什么不同!?

  • .Net标准 (netstandard) - 这是新的跨平台 BCL API。它是一个“标准”,因为它只是一个 API 定义而不是实现。这个想法是,您可以将您的库编译为该 API(的一个版本),并且它将在支持该版本的任何平台上运行。
  • .Net核心- 你可以将其视为参考实现netstandard(有一些额外的位)。它是一个跨平台的执行该 API 的。 UI 和其他框架可能会在其上构建,但目前它唯一确定的立足点是充当 ASP.NET Core 的首选平台。 [旁注:由于历史原因,“.NET Core”已被完全不同netcoreNuGet 目标;当您处于 NuGet 上下文中时,netcore意思是“Windows 8/8.1/10”] https://docs.nuget.org/ndocs/schema/target-frameworks#supported-frameworks.
  • .Net 便携式 and 便携式类库- 可移植类库 (PCL) 是提供跨平台 API 的最小公分母方法。他们涵盖了广泛的目标平台 http://portablelibraryprofiles.apps.stephencleary.com/,但它们并不完整且不能面向未来。它们基本上已被取代netstandard.
  • .Net 紧凑型- 这是一个完全不同的.NET 框架,拥有自己独特的API。它与任何其他框架、PCL 或netstandard版本;因此,它比任何其他平台都更难支持。但是,它仍然用于内存限制严格的设备。
  • 通用Windows平台- 这是 Win10 时代 Windows Phone 和桌面之间 API 的合并,允许为两个平台编写 Windows 应用商店应用程序/库。这基本上已被替换为netstandard.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.Net Core、便携式、标准、紧凑、UWP 和 PCL 之间的区别? 的相关文章

随机推荐