113
votes

There is a framework-level navigation element at Microsoft Docs called ".NET Platform Extensions". It contains docs on recently added APIs like System.IO.Pipelines and System.Threading.Channels for example, as well as a whole bunch of other APIs, including the not-so-recent ones.

Some APIs from this collection are available as nuget packages (for both .Net Core and .Net Framework), but others are not seemingly available. Also, as of now, there is no nuget package called ".NET Platform Extensions" or anything similar.

So, the question is what exactly does this collection of APIs represent? What is it's relationship to each of the following:

  • .Net Framework
  • .Net Core
  • .Net Standard

What about support in the .Net Framework / .Net Core?

Finally, some APIs seem to be already available as separate nuget packages, others are yet to be made available, so what is the story in that regard?

2
As .NET - Introducing the Windows Compatibility Pack for .NET Core puts it, the "Platform Extensions" are for APIs which aren't part of a platform (Core or Standard) but are available via Nuget. You wouldn't expect a single all-encompassing Nuget package for this.Damien_The_Unbeliever
does this mean that if I use the extension pack e.g DirectorySearcher API I will the possibility to use the same code on a Linux container while running .NET core 2.2. ThanksRishabh Jain

2 Answers

81
votes

It represents APIs that are shipped as NuGet packages instead of being part of the shared framework for .NET Core.

We don't have the ability right now to identify the different packages and which target frameworks they support on docs.microsoft.com, but it's something that is in our backlog to solve. So adding that as a new target enabled us to add docs for the new APIs.

8
votes

You can use Windows Compatibility Pack, if you want to target windows platform only as start of porting process and gradually use platform independent alternative from .NET core OR .NET Standard.

Refer for more detail: https://docs.microsoft.com/en-us/dotnet/core/porting/windows-compat-pack

The Windows Compatibility Pack is provided via the NuGet Package Microsoft.Windows.Compatibility and can be referenced from projects targeting .NET Core or .NET Standard.

Please refer NuGet link for more detail: https://www.nuget.org/packages/Microsoft.Windows.Compatibility and you can use it by executing below command:

Install-Package Microsoft.Windows.Compatibility -Version 3.1.0