Microsoft stops the development of .NET Standard

Microsoft .Net

Back in 2016, Microsoft announced .NET Standard. .NET Standard is a set of APIs that all .NET platforms have to implement. It unifies the .NET platforms and prevents future fragmentation.

At Build 2019, Microsoft announced .NET 5, the next big release in the .NET family. It is a game-changer for .NET as it will be a unified platform using which developers can target various platforms including Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more.

Recently, Microsoft announced that it won’t be releasing a new version of .NET Standard in the future. .NET 5 will be a single product with a uniform set of capabilities and APIs that can be used for Windows desktop apps, cross-platform mobile apps, console apps, cloud services, and websites. .NET 5 and all future versions will continue to support .NET Standard 2.1 and earlier. You can think of .NET 5 as .NET Standard vNext. If you retarget from .NET Standard to .NET 5, you can gain access to more runtime features, language features, or APIs.

Which one should be the target for developers, .NET Standard or .NET 5? Microsoft recommends the following:
  • Use netstandard2.0 to share code between .NET Framework and all other platforms.
  • Use netstandard2.1 to share code between Mono, Xamarin, and .NET Core 3.x.
  • Use net5.0 for code sharing moving forward.

Here’s the summary mentioned by Microsoft in its blog post related to this announcement:

net5.0 is for code that runs everywhere. It combines and replaces the netcoreapp and netstandard names. We also have platform-specific frameworks, such as net5.0-windows (and later also net6.0-android, and net6.0-ios).

Since there is no difference between the standard and its implementation, you’ll be able to take advantage of new features much quicker than with .NET Standard. And due to the naming convention, you’ll be able to easily tell who can consume a given library — without having to consult the .NET Standard version table.

While .NET Standard 2.1 will be the last version of .NET Standard, .NET 5 and all future versions will continue to support .NET Standard 2.1 and earlier. You should think of net5.0 (and future versions) as the foundation for sharing code moving forward.

You can read about Microsoft’s detailed plan for .NET in the source link below.

Source: Microsoft