首页 > 代码库 > .NET Standard简介

.NET Standard简介

开门见山

  • .NET Standard是一组所有平台都必须实现的API。这将统一.NET平台并防止未来的碎片。
  • .NET Standard将又.NET Framework、.NET Core、Xamarin实现。
  • .NET Standard包含一个.NET Framework二进制文件的兼容层。
  • .NET Standard将取代便携式类库(PCL)。
  • .NET Standard的API定义在GitHub上

为什么我们需要一个标准

先放出一张图片,可以静静的看上一分钟

技术分享

 可以看出目前有三种主要的.NET类型,这意味着你必须掌握三个不同的基类库,以便编写适用于所有类库的代码。

对开发者来说,目前现有三个分支最主要的问题在于难以清楚地知道每个平台具体有哪些功能可用,这个问题会显得极为不便。.NET开发者GaProgMan认为,这会导致开发者过度使用条件编译(Conditional compilation),此外他还补充说Portable Class Library(PCL)已经不再那么易于移植了,因为开发者无法轻松确保自己需要的API在目标平台上依然可用。根据微软的介绍,使用.NET Standard取代PCL作为编写多平台.NET库的底层基础可以解决这一问题。

然而微软MVP Rick Strahl指出,.NET Standard应当被视作一种用于描述“至少在API接口方面需要选择哪一具体的实现,例如.NET Core、Mono、Xamarin或.NET 4.6”的规范。换句话说,.NET Standard本身并非一种实现,而是由.NET底层平台实现的。例如他认为,.NET Core实现了当前版本的.NET Standard 1.6版,而他认为.NET Core 1.2将非常接近.NET Standard 2.0,使其成为.NET Standard 1.6的超集。

 .NET Standard来了

技术分享

对于开发人员来说,这意味着他们只需要掌握一个基类库。针对.NET标准库将能够在所有.NET平台上运行。

.NET Standard中有什么

 这里是.NET Standard 2.0 API高级摘要

技术分享

请注意,.NET标准2.0是一个正在进行的工作,这意味着可能会添加一些API,有些可能会被删除。

总结

微软创建了.NET Standard,以便在多个.NET平台之间共享和重用代码变得更加容易。

使用.NET标准2.0,我们专注于兼容性。为了在.NET Core和UWP中支持.NET标准2.0,我们将扩展这些平台以包含更多现有的API。这还包括一个兼容性垫片,允许引用根据.NET Framework编译的二进制文件。

向前推进,我们建议您使用.NET标准库,而不是便携式类库。用于定位.NET标准2.0的工具将与即将发布的Visual Studio(代号为“Dev 15”)的发布时间相同。您将引用.NET Standard作为NuGet包。它将获得Visual Studio,VS代码以及Xamarin Studio的一流支持。

.NET Standard简介