【发布时间】:2017-10-20 11:47:50
【问题描述】:
我读过.NET Standard和.NET Core的区别,但是我真的不知道有什么区别,也不知道什么时候选择.NET Standard库项目,什么时候选择.NET Core库项目.
我读到 .NET Standard 是为了确保一组 API 始终可用,无论使用何种平台(只要该平台与我选择的 .NET Standard 版本兼容)。如果我没记错的话,这意味着我可以创建一个 .NET Standard 的类库,然后在任何与我选择的 .NET Standard 版本兼容的平台上使用它。
对于 .NET Core,我已经读到它也适用于跨平台使用,所以如果我选择一个 .NET Core 库,我似乎也可以在许多平台上使用它,就像 .NET Standard 一样。
所以最后,我看不出有什么不同。我什么时候应该使用哪个?它们有什么区别?
【问题讨论】:
-
用代码术语来说:.net 标准 = 接口,.net 核心 = 类;如果您针对该类进行编码,则不会获得更多方法(等),但是您仅限于该具体类型(和后代);如果您使用接口,您可能会获得更小的表面,但它可以针对任意实现...只要这些实现符合预期:) 是的,.net 核心针对多个平台,但是还有其他 .net 标准的实现
-
.NETStandard 是 PCL 的替代品。可移植类库帮助您编写可以在多个平台(手机、桌面、商店、浏览器、xbox 等)上运行的库。它没有很好地扩展,从 n!问题,所以他们放弃了。 .NETCore 只是他们完成的第一个框架,它是最简单的,其余的必须赶上。请记住,这是非常正在进行中的工作,.NETStandard v2.0 将发生重大变化。统治他们的标准,现在:)
-
请不要在现有问题上添加额外的问题。您在编辑中的问题与此无关。
-
@JonSkeet 那么我应该提出一个新问题吗?感谢您的建议。因为起初我提出了一个关于 .net Core 多目标的新问题,但我被否决了,因为他们说这是一个重复的问题。
-
@ÁlvaroGarcía:是的,但要说清楚——你当前的单句问题对我来说根本不清楚。
标签: .net .net-core .net-standard