Net Standard是标准,.Net Core是这个标准的一种实现(此外,还.Net Framework、Mono等实现方式)
所以应用方面只学一个方面即可,比如学习.Net core就没有必要去学习.Net Framework,因为.Net Core足够使用。因为.Net core是基于Net Standard。
.NET STANDARD LIBRARY是.net 标准库,.NET STANDARD是一套正式的.NET API规范,任何基于.NET STANDARD开发的类库,都能在上面提到的三个运行时中运行,也就是说上面的三类程序都可以引用.NET STANDARD LIBRARY。
转载自:https://www.cjavapy.com/article/94/
转载自:https://www.cjavapy.com/article/443/
https://docs.microsoft.com/zh-cn/dotnet/core/deploying/
1、.Net Core和.Net Standard区别
1)兼容性:.NET Standard的库可以在任何符合.NET标准的运行时上运行,例如.NET Core,.NET Framework,Mono/Xamarin。另一方面,.NET Core的库只能在.NET Core运行时上运行。
2)API作用区域:.Net Standard库所有内容都在NETStandard.Library中,而.Net Core库所有内容都在Microsoft.NETCore.App中。后者包括大约20个额外的库,其中一些我们可以手动添加到我们的.Net Standard库(例如System.Threading.Thread),其中一些与.Net Standard(例如Microsoft.NETCore.CoreCLR)不兼容。
2、两者都存在的原因
1).NET Standard存在的原因是可移植性; 它定义了.NET平台,同意实现的一组API。任何实现.Net Standard API的平台都与目标.Net Standard的库兼容。其中一个兼容的平台是.NET Core。
2).NET Standard库可以在多个运行时上运行(以API作用区域为代价)。相反,存在.NET Core库以访问更大API作用区域(以兼容性为代价),并指定用于构建可执行文件的平台。
3、.Net Core和.Net Standard的选择
1)决定是兼容性和API访问之间的权衡。
2)如果要增加兼容的应用程序数量,请使用.Net Standard库,并且可以减小库可以访问的.NET API作用区域。
3)如果要增加库可以访问的.NET API作用区域,请使用.NET Core库,并且只兼容.NET Core应用程序即可。
例如,.NET Standard 1.3的库将与.NET Framework 4.6,.NET Core 1.0,Universal Windows Platform 10.0,以及支持.NET Standard 1.3的任何其他平台的应用程序兼容。但是,该库无法访问.NET API的某些部分。例如,该 Microsoft.NETCore.CoreCLR软件包与.NET Core兼容,但与.NET Standard不兼容。