- ASP.NET Core从入门到精通
- 明日科技编著
- 740字
- 2024-12-31 18:39:10
1.3 .NET Standard
在Visual Studio中新建项目时,除了.NET和.NET Framework选项,还有一个.NET Standard选项,如图1.4所示,那么什么是.NET Standard呢?它又有什么作用呢?本节将对.NET Standard进行介绍。
![](https://epubservercos.yuewen.com/935CF8/31397116103568406/epubprivate/OEBPS/Images/Figure-P22_38491.jpg?sign=1739017301-y9teOqAv7okLpXT9AM1JghejnDkJGfLz-0-3a4b7ef898a17f30038efd5502c84766)
图1.4 Visual Studio创建项目时的选项
1.3.1 什么是.NET Standard
通过前面的介绍,我们知道.NET中包含.NET Framework、.NET Core和Xamarin等,但是它们的基础实现并不是通用的,比如,.NET Framework中有访问Windows注册表的类,但.NET Core中并没有,遇到类似这样的情况时,如果我们想要开发一个供.NET Framework、.NET Core和Xamarin共同使用的代码库,实现起来会非常麻烦,因此,微软为了提高.NET生态系统的一致性,推出了.NET Standard。
.NET Standard是针对多个.NET实现推出的一套正式的.NET API规范,这里需要注意的是,.NET Standard只是一套规范,而不是一个框架,它本身只是规定了需要实现的规范,并不负责具体的实现。
1.3.2 .NET Standard的版本
.NET Standard随着.NET技术的升级而升级,不同版本的.NET Framework、.NET Core和Xamarin支持不同版本的.NET Standard,较高的版本会包含较低版本的所有API,但在.NET 5推出之后,.NET采用了不同的方法来建立一致性,这样在大多数情况下不再需要.NET Standard,但如果要在.NET Framework和其他任何.NET实现(如.NET Core、Xamarin)之间共享代码,则库必须面向.NET Standard 2.0。.NET Standard的最新版本为2.1,此后将不会再发布新版本,但.NET 5.0、.NET 6.0以及所有将来的版本将继续支持.NET Standard 2.1及更早版本。
关于每个.NET Standard版本支持的最低.NET实现平台版本如表1.3所示。
表1.3 每个.NET Standard版本支持的最低.NET实现平台版本
![](https://epubservercos.yuewen.com/935CF8/31397116103568406/epubprivate/OEBPS/Images/Figure-T23_72481.jpg?sign=1739017301-RQ93yxpQntRdSCYYtMbz2hXcYSWrnjJ1-0-f37e26bc19b2c0c18aa9a96319de2be6)
说明
Mono是一个诞生于开源社区的跨平台的.NET运行环境,它不仅可以运行于Windows系统上,还可以运行于Linux、FreeBSD、Unix、macOS X和Solaris等系统上。
1.3.3 如何选择.NET Standard版本
.NET Standard是一套规范,因此,只能创建.NET Standard类库项目,而不能创建.NET Standard控制台项目或者Web项目等,使用.NET Standard创建类库项目时,通常遵循以下原则:
使用.NET Standard 2.0在.NET Framework和.NET的所有其他实现之间共享代码;
使用.NET Standard 2.1在Mono、Xamarin和.NET Core 3.x之间共享代码;
如果需要使用库将应用程序分解为多个组件,建议以.NET 5.0或更高版本为目标。