简单谈谈.NET Standard与Shared Project的区别
1..NET Standard:
概念:
百度百科给出的解释是这样的:
.NET标准(英语:.NET Standard),原称为.NET平台标准(英语:.NET Platform Standard)是微软为跨平台所规划的.NET Framework相关平台于系统之间的相依性标准,在此标准之下,能确保标准的应用程序接口与对象能够跨平台使用。.NET平台标准是以引用组件的方式存在,其本身并没有任何实现,真正的实现是由平台拥有者所进行,而客户端使用简单的NuGet版本戳记即可获得正确的平台版本。
按照我的理解:.Net Standard是提供给各大平台(.Net 5.0,.Net Framework,.Net Core,Xamarin等)调用的API接口,这写的接口虽然在.Net Standard里有具体的实现方式,但是最终的实现在各大平台(.Net 5.0,.Net Framework,.Net Core,Xamarin等)进行实现.
.NET Standard是技术更新迭代上的产物,那么开发人员该如何选择?微软建议如下:
● 使用 netstandard2.0 在 .NET Framework 和所有其他平台之间共享代码。● 使用 netstandard2.1 在 Mono、Xamarin 和 .NET Core 3.x 之间共享代码。● 使用 net5.0 进行代码共享前进。
在博文中写道:
net5.0 是为那些可以在任意地方运行的代码服务的。它结合并取代了netcoreapp和netstandard的名称。我们还有针对平台的框架,比如net5.0-windows(后来还有net6.0-android,net6.0-ios)。由于标准和它的实现之间没有区别,你将能够比使用.NET标准更快地利用新功能。而且由于命名惯例,您将能够很容易地知道谁可以使用一个给定的库--而无需查阅.NET Standard版本表。虽然.NET Standard 2.1将是.NET Standard的最后一个版本,但.NET 5和所有未来的版本将继续支持.NET Standard 2.1和更早的版本。你应该将net5.0(以及未来的版本)视为未来共享代码的基础。
转载于:
https://baijiahao.baidu.com/s?id=1678134710430426275&wfr=spider&for=pc
2.Shared Project:
共享项目 (Shared Project) 作为新的一种项目类型被添加到项目模板列表中,它的主要目的是使多个不同类型的项目之间可以共享代码或资源。相比它的前任 PCL(Portable Class Library),它要灵活得多。因为 Shared Project 共享的是代码或资源,并且不会创建单独的程序集;而 PCL 则是共享程序集,需要单独编译,且会生成单独的程序集。
简而言之:.NET Standard是提供了接口的实现方式,具体利用哪个框架进行实现得看引用的框架是什么,而Shared Project共享项目是一个类库,两者从根本上还是有很大的区别的,只是两种项目都能够基于不同的平台进行编译