您的位置:

.NET Standard:全能的类库规范

一、.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 、Memory 和 Pipelines。它仅支持 .NET Core 3.0 、Mono 6.4 和更高版本,并且不能在 .NET Framework 中使用。.NET Standard 2.1 与 .NET Core 3.0 一起发布,这是 .NET Core 平台的最新版本。它引入了许多新的功能,如全局使用的多个框架文件、应用程序启动优化、低延迟的 HTTP 堆栈等等。

以下是 .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 包管理器进行下载和安装。