Not so long ago, the post appeared Immo Landwerth, which talks about. NET Standard 2.0
In short, this is .NET unification for the following .NET Framework, .NET Core, and Xamarin branches. In clear words, this is a set of APIs that will be implemented by all platforms.
And immediately a significant change: .NET Standard will replace the PCL library. Although for developers the essence will remain the same, the implementation will be different. The car will ride, as before, but the name and contents under the hood will change (perhaps for the better).
In the .NET Standard, there will be APIs that must be implemented by all platforms, and there will be APIs, the implementation of which is optional — optional. Non-binding will be available as separate NuGet packages.
What cannot be implemented by all platforms can be divided into two groups: API specific for each runtime and API specific for each OS. How to deal with unrealizable APIs:
')
- Make API unavailable
- Make the API available, but throw a PlatformNotSupportedException on those platforms that have no implementation
- Simulate API (as Mono does, partially simulating the registry as .ini files)
.NET Standard uses all of these options and their combinations, depending on the situation. Technologies that will be available only on certain platforms will be implemented as NuGet packages. If it is impossible to make a standalone package, then there are options: throw an exception or simulate an API
There are many versions of .NET Standard that are compatible with various platforms:

As you can see, version 4.6.1 of the framework occurs twice (this is not a typo). It will be compatible with .NET Standard 2.0, as well as the next versions of Xamarin and .NET Core. There was a rollback of changes that were made in versions 1.5 and 1.6. Why was this done? To support backward compatibility. Newer versions of .NET Standard should contain previous, plus new features. During the analysis, NuGet.org found only 6 packages with the target platform .NET Standard 1.5 and higher, which was not created by Microsoft, so we decided to use 4.6.1 as the basis, and suggest that the authors of these 6 packages be updated.
Although .NET Standard replaces PCL, it still supports working with them. From the .NET Standard library you can link to another .NET Standard library or to the PCL library.

In addition, it is possible to link to a regular .NET library using compatibility shim.

But do not rush to particularly enjoy. It will only work if all the APIs in this .NET library are supported by .NET Standard. But it will be much easier to connect links to existing libraries.
The following image shows the main .NET Standard 2.0 APIs.

You can see which features are most likely to appear in .NET Core (now this branch has the least possibilities). As for Xamarin, many of these APIs have already been included in the stable release of Cycle 8 / Mono 4.6.0.
If you want to take a look at a set of specific APIs, you can take a look at the
.NET Standard repository
on GitHub .
Read more in the original article:
Introducing .NET Standard