2017-06-29 52 views
0

我将我的应用程序从VS2015移植到VS2017,并试图找出正确的移植路径。我还将我的Web服务迁移到.NET Core,以充分利用部署到Linux或Windows服务器的优势。我发现我可以选择在.NET Standard或.NET Core中创建基本库。 .NET Core库有没有优势,或者我应该默认在.NET Standard中创建基础库?.NET标准库的.NET Core库有没有优势?

回答

4

实际上,.NET Standard 2.0是.NET Framework 4.6.2(-ish)和.NET Core 2.0的交集。

如果您构建一个面向.NET标准2.0的库,那么您的库可以被.NET Framework库和应用程序以及.NET Core库和应用程序使用。这是Standard的优势。

但是有几种类型/成员已被添加到.NET Core中,其中不是 .NET标准的一部分。如果你想使用类似新的CertificateRequest类,你需要明确的目标.NET核心。因为一般的折衷将总是“.NET标准=>更多地方; .NET核心=>更新的东西”。因此,.NET核心允许新的东西比.NET框架更快地到达用户。

+0

我同意这一点。看起来有些软件包只能用于.NET Core,所以如果你的库需要使用这些软件包中的一个,那么你就有理由使用.NET Core。否则,它看起来像.NET标准是我们应该用于共享库的。 –

-2

.Net Standard只是封装接口与可用于提供跨.Net Framework.Net Coreothers

+0

谢谢,但我有一个大致的想法是什么。鉴于这一点,是否有任何**的优势**选择.NET标准的库类型的.NET核心?鉴于.NET标准的普遍性,在什么条件下你想选择基本库的.NET Core? –

+1

如果你知道它是什么,你应该知道什么是最适合你的。如果你选择'.Net Standard',那么你需要提供这个iterfaces的实现(例如'.Net Core'或'.Net Framework'),并且可以使用Nuget包作为'.Net Standard',但记住 - 只有'。 Net Core的实现是完全多平台的。因此,如果你想将你的应用程序部署到'Linux或Windows',那么只选择'.Net Core'或'.Net Standard',只需要'.Net Core' –

-2

我不会选择一个.NET核心库的兼容性。差异是在引用的库:

  • 的.NET标准库引用netstandardX.X的NuGet元包
  • 的.NET核心库引用netcoreappX.X的NuGet元包

netcoreapp软件包还包括一些.NET标准软件包,但也包括一堆.NET Core应用程序特定软件包(包括libuv。不知道库为什么需要libuv)。

因此,.NET标准库适用于跨平台和.NET核心库仅用于.NET Core

相关问题