Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.NETPlatform vs .NETStandard

I'm really confused about the terminology around the platforms in .NET these days - I used to understand it up until we had the PCLs.

I found the following documents:

  • .NET Platform Standard
  • .NET Standard Library

For starters, the first document refers to the conceptual platform with the moniker "netstandard" as ".NET Platform Standard". The latter calls it ".NET Standard" (at the same time it introduces a new ".NET Standard Library").

I don't really get why the first document has a disclaimer at the top that the second describes the successor concept: It seems that at least the table showing the version releationships is newer in the first document.

So what is the difference between the concepts ".NET Platform Standard" and ".NET Standard Library"? The table in the second document describing the allegedly new concept just show what is basically the old table, without a new row for this new ".NET Standard Library" - as if the concepts were the same after all. Is the disclaimer really just suggesting a renaming?

NuGet adds more mystery:

The Json.NET NuGet package has a target called ".NETStandard" (apparantly NuGet uses a third moniker for one of those things) and I presume this is supposed to be the same thing as "netstandard", right? Which is actually the ".NET Platform Standard", correct?

The RC of the Microsoft.AspNet.Mvc package has a target called ".NETPlatform 5.4". So what's that? It's called differently and has a version that's way too high to have anything to do with the .NET Platform Standard or the .NET Standard Library, whatever the relationship between the two might be. Hmmm.

Does anybody know what all of this really means?

EDIT:

I managed to figure out a bit more: As Lex Li said, the rc version of Microsoft.AspNet.Mvc is defunct. It uses the short moniker "dotnet5.4", which is indeed referenced in the first document as deprecated and called ".NET Platform" in long. The current newest version of the package is presumably the one called "Microsoft.AspNetCore.Mvc", which refers only to non-defunct target names.

So that solves the NuGet part of the question and my theory at this point is that the ".NET Standard Library" is just a rename of what was previously called the ".NET Platform Standard". That leaves the term ".NET Platform", which I suspect is an even older name for either of these things back when the version count wasn't reset to "1" for everything.

Maybe someone with knowledge of these things can confirm or correct this.

like image 912
John Avatar asked Nov 05 '16 19:11

John


People also ask

Is .netstandard .NET Core?

NET Core is an implementation of the . NET Standard that's optimized for building console applications, Web apps and cloud services using ASP.NET Core. Its SDK comes with a powerful tooling that in addition to Visual Studio development supports a full command line-based development workflow.

Which version of .NET Core should I use?

NET Core. In this case, the best . NET version to target for the migration is . NET 6, which is the most recent LTS version.

Should I use .NET standard or .NET 5?

NET Standard 2.0 gives you the most reach while supporting . NET 5 ensures that you can leverage the latest platform features for customers that are already on . NET 5. In a couple of years, the choice for reusable libraries will only involve the version number of netX.


1 Answers

You're about right, the concept of .NET Platform Standard has been replaced (basically renamed) with .NET Standard. .NET Standard and .NET Standard Library are essentially referring to the same concept as well.

The NuGet monikers you see here and there are just remains of the .NET Standard evolution. The current monikers are:

  • netstandard.x: refers to a specific version to the .NET Standard
  • netcoreapp1.x: refers to a .NET Core application targeting on a specific version of .NET Core

Check out the new .NET Standard GitHub repository and especially the docs to find out more about the latest .NET Standard developments.

like image 146
Henk Mollema Avatar answered Oct 05 '22 01:10

Henk Mollema