# Demystifying .NET Standard

> The release of .NET Standard 2.0 announces a great breath of fresh air for .NET developers. Let 's get back together on: What is standard .NET? Why is this going…

- Author: Jérôme Giacomini
- Language: en
- Canonical URL: [Demystifying .NET Standard](https://jeromegiacomini.net/articles/2017/09/02/demystifying-net-standard)
- Published: 2017-09-02
- Last modified: 2026-09-05
- Topics: .NET, Xamarin, Windows, Mobile

The release of .NET Standard 2.0 announces a great breath of fresh air for .NET developers.

Let 's get back together on:
- What is standard .NET?
- Why is this going to make life easier for us .NET developers?
- How is it different from PCL?
- But isn't it the same as .NET core?
- Why does .NET Standard 2.0 change the game?


## What is .NET Standard?

The **.NET standard** is a formal specification of .NET APIs that are intended to be available on all .NET implementations. **.NET standard** This is to establish greater uniformity in the .NET ecosystem.

## How is it different from PCL?

A PCL is a library that targets a set of platforms.

The .NET standard is the opposite: we only target a standard that is implemented by our **.NET frameworks**.

Sharing code becomes **simpler** It is more important to choose the right PCL profile than just the version of the standard supported by the targeted platforms.

## But isn't it the same as .NET core?

**.NET Core** is **another version** from **.NET Framework** (such as **Xamarin** It is a cross-platform version of .NET (Linux, Mac, Windows) and modular.  **.NET Core** respect also **.NET standard**.

## How does .NET Standard 2.0 change the game?

There were 13K shared APIs in **.NET standard** 1.6 with **.NET standard** 2.0 they go to 36K.

Microsoft tested all NuGet packages available on NuGet.org and found that 70% of the nugget packages are compatible with .NET Standard 2.0.

Thanks to .NET Standard we will be able to share our .NET code easily across all .NET frameworks: Xamarin, .NET core, UWP...

## Supported versions of .NET Standard:

| .NET Standard | [1.0](https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.0.md) | [1.1](https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.1.md) | [1.2](https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.2.md) | [1.3](https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.3.md) | [1.4](https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.4.md) | [1.5](https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.5.md) | [1.6](https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.6.md) | [2.0](https://github.com/dotnet/standard/blob/master/docs/versions/netstandard2.0.md) |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| .NET Core | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 |
| .NET Framework (with .NET Core 1.x SDK) | 4.5 | 4.5 | 4.5.1 | 4.6 | 4.6.1 | 4.6.2 |  |  |
| .NET Framework (with .NET Core 2.0 SDK) | 4.5 | 4.5 | 4.5.1 | 4.6 | 4.6.1 | 4.6.1 | 4.6.1 | 4.6.1 |
| 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 | 7.5 |
| Universal Windows Platform | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | vNext | vNext | vNext |
| Windows | 8.0 | 8.0 | 8.1 |  |  |  |  |  |
| Windows Phone | 8.1 | 8.1 | 8.1 |  |  |  |  |  |
| Windows Phone Silverlight | 8.0 |  |  |  |  |  |  |  |


## Conclusion:

The .NET ecosystem is rapidly evolving! Microsoft's two priorities are open source and cross-platform.

And .NET Standard is one of the answers to these priorities.

## To go further:

[.NET Standard – Official document](https://docs.microsoft.com/en-us/dotnet/standard/net-standard)

[Series of videos to discover .NET Standard](https://www.youtube.com/playlist?list=PLRAdsfhKI4OWx321A_pr-7HhRNk7wOLLY)
