一、.NET Standard类库
.NET Standard 是由 Microsoft 发布的类库规范。它为 .NET 平台上各个特定实现(如 .NET Framework、.NET Core、Mono 等)提供了一个共同的 API 规范,使得开发人员能够在多个应用程序模型中共享库。
通过 .NET Standard,开发人员可以重用他们以前为一个 SDK 编写的代码,而不用担心它能否在另一个 .NET 实现中使用。因为如果一个实现符合 .NET Standard,那么它就保证可以和其它符合 .NET Standard 的实现共享库。
从 .NET Standard 的角度来看,类库大体可分为三类:
- 从 .NET Framework、.NET Core 或 Mono 的特定类库中导入 .NET Standard 兼容的 API,称为 .NET Standard 类库。
- 仅在大多数 .NET Standard 实现中可用的 API,所以某些实现可能不支持,并且在多数情况下无法使用。这些 API 称为“便携式从属”,并且在 .NET Standard 中的 API 文档中列出。
- 仅在某些 .NET Standard 实现中可用的 API,如果没有特别说明,则不支持其他实现。这些 API 在 .NET Standard 中的 API 文档中列出,并且应将它们看作是“实现定义”。
二、.NET Standard 2.1
.NET Standard 2.1 是 .NET Standard 中的最新版本,它包含了最新的 API,如 Span
以下是 .NET Standard 2.1 演示代码:
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
三、.NET Standard 2.0安装
.NET Standard 2.0 是一个跨平台的类库规范,它支持 .NET Framework 4.6.1 和更高版本、.NET Core 2.0 和更高版本,还支持云、移动和游戏等平台。
.NET Standard 2.0 可以通过命令行或通过 Visual Studio 安装。以下是通过命令行安装 .NET Standard 2.0 的示例:
dotnet add package NETStandard.Library
四、.NET Standard 和 .NET Core
.NET Standard 和 .NET Core 都是 Microsoft 发布的一组技术,.NET Standard 是一个类库规范,而 .NET Core 是一个跨平台的开源框架。.NET Core 实现了 .NET Standard,而且会添加一些额外的 API,使得它更适合于构建跨平台应用程序。
在使用 .NET Standard 编写代码时,可以轻松地将代码迁移到 .NET Core 中,而且不需要大量的更改,因为这两者提供了相同的 API。以下是一个演示如何在 .NET Standard 中编写代码,以便能够使其在 .NET Core 中运行:
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
五、.NET Standard.dll
.NET Standard.dll 是一个包含多个 dll 的包,这些 dll 实现了 .NET Standard 规范,可以提供跨平台解决方案,帮助 .NET 开发人员消除在不同平台下编写代码的麻烦。.NET Standard.dll 被设计为平台无关的类库,因为它只包含那些在所有 .NET 平台上都可以获得的 API。
以下是一个使用 .NET Standard.dll 的简单演示程序:
using System;
using System.IO;
using System.Net;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.msdn.com");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
Console.WriteLine(reader.ReadToEnd());
}
}
}
六、.NET Standard 2.0引用
.NET Standard 2.0 引用指的是在 .NET Standard 2.0 中添加到代码库的引用包,使得 .NET Standard 2.0 可以使用其他平台的库(.NET Framework、.NET Core 等)。
使用 .NET Standard 2.0 引用需要使用 NuGet 包管理器进行安装,以下是演示如何使用 NuGet 进行安装的示例:
Install-Package Microsoft.NETCore.Platforms
七、.NET Standard 2.0下载
可以从 Microsoft 的官方网站或通过 NuGet 包管理器下载 .NET Standard 2.0。
以下是通过 NuGet 包管理器下载 .NET Standard 2.0 的示例:
Install-Package NETStandard.Library
八、.NET Standard.library
.NET Standard.Library 是一个包含多个 .NET Standard.dll 文件的包,它们实现了 .NET Standard 规范。.NET Standard.Library 使得开发人员可以在各种 .NET 实现平台上轻松共享代码。
从 .NET Standard.Library 中导入类库时,需要使用 NuGet 包管理器进行安装。以下是演示如何在 Visual Studio 中使用 NuGet 包管理器安装 .NET Standard.Library 的示例:
1.在资源管理器中右击项目文件夹,选择“管理 NuGet 包…”
2.在 NuGet 包管理器中搜索 "NETStandard.Library"
3.选择"NETStandard.Library"并单击“安装”按钮
九、结论
.NET Standard 包含了一组 API,这些 API 为 .NET 实现平台(.NET Framework、.NET Core、Mono 等)提供了一个共同的规范。通过 .NET Standard,开发人员可以编写跨平台的代码,而无需担心 API 是否可用。
.NET Standard 2.1 与 .NET Core 3.0 一起发布,包含了最新的 API,而 .NET Standard 2.0 则支持多个 .NET 实现平台,并且可以使用 NuGet 包管理器进行下载和安装。