.NETPlatform vs .NETStandard

帅比萌擦擦* 提交于 2021-02-07 02:52:12

问题


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.


回答1:


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.



来源:https://stackoverflow.com/questions/40442460/netplatform-vs-netstandard

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!