.NET Standard, .NET Core, PCL
Asked 07 September, 2021
Viewed 1.6K times
  • 50
Votes

.NET Standard has been a confusing concept. The idea of a standard .NET library format sounds great. But, it's not clear what it is exactly. There are now .NET Core, and .NET Standard Class Library project templates in Visual Studio, as well as the old PCL projects. I also found that if you go in to the settings for the project, you can switch an existing PCL library over to .NET Standard. It's not clear if .NET standard is a library? Or a DLL format.

The basic question I'm asking is which type of library should we be targeting? I'm mainly doing this for Xamarin projects, but it would be great if we could share these libraries with other platforms, especially .NET Core, and UWP. It's confusing as to why Microsoft brought out two seemingly identical Class Library types at the same time: .NET Core, and .NET Standard.

Definitions

NET Core - a .NET based runtime environment which conforms to the .NET Standard API definition.

PCL - a .NET based library format supported by several runtime environments including .NET, Mono, UWP, and so on

.NET Standard (Definition 1) - A set of standard API definitions for .NET based runtime environments

.NET Standard (Definition 2) - a .NET based library format supported by several runtime environments including .NET, Mono, UWP, and so on which is a continuation of the PCL format. In Visual Studio, a PCL library can be converted to a .NET Standard library by going in to the properties of the project and editing the target framework.

4 Answer