.NET Standard overview

The .NET Standard is a formal specification of .NET APIs that are intended to be available on all .NET implementations.

The motivation behind the .NET Standard is establishing greater uniformity in the .NET ecosystem.

The .NET Standard enables the following key scenarios:

  • Defines uniform set of BCL APIs for all .NET implementations to implement, independent of workload.

  • Enables developers to produce portable libraries that are usable across .NET implementations, using this same set of APIs.

  • Reduces or even eliminates conditional compilation of shared source due to .NET APIs, only for OS APIs.

.NET implementation support

The following table lists the minimum platform versions that support each .NET Standard version.

.NET Standard

1.0

1.1

1.2

1.3

1.4

1.5

1.6

2.0

.NET Core

1.0

1.0

1.0

1.0

1.0

1.0

1.0

2.0

.NET Framework 1

4.5

4.5

4.5.1

4.6

4.6.1

4.6.1 2

4.6.1 2

4.6.1 2

Mono

4.6

4.6

4.6

4.6

4.6

4.6

4.6

5.4

Xamarin.iOS

10.0

10.0

10.0

10.0

10.0

10.0

10.0

10.14

Xamarin.Mac

3.0

3.0

3.0

3.0

3.0

3.0

3.0

3.8

Xamarin.Android

7.0

7.0

7.0

7.0

7.0

7.0

7.0

8.0

Universal Windows Platform

10.0

10.0

10.0

10.0

10.0

10.0.16299

10.0.16299

10.0.16299

Unity

2018.1

2018.1

2018.1

2018.1

2018.1

2018.1

2018.1

2018.1

.NET Standard versioning rules

There are two primary versioning rules:

  • Additive: .NET Standard versions are logically concentric circles: higher versions incorporate all APIs from previous versions. There are no breaking changes between versions.

  • Immutable: Once shipped, .NET Standard versions are frozen. New APIs first become available in specific .NET implementations, such as .NET Core. If the .NET Standard review board believes the new APIs should be available for all .NET implementations, they're added in a new .NET Standard version.

Package representation

The primary distribution vehicle for the .NET Standard reference assemblies is NuGet packages. Implementations are delivered in a variety of ways, appropriate for each .NET implementation.

The NETStandard.Library metapackage references the complete set of NuGet packages that define .NET Standard. The most common way to target netstandard is by referencing this metapackage. It describes and provides access to the ~40 .NET libraries and associated APIs that define .NET Standard. You can reference additional packages that target netstandard to get access to additional APIs.

Last updated