3 ms·
I don't get it. Why all the articles and tweets and presentations on what .NET Standard is? Why is it so confusing that it needs so much explaining? Genuinely
by bad_user 10y ago
I don't get it. Why all the articles and tweets and presentations on what .NET Standard is? Why is it so confusing that it needs so much explaining?
Genuinely asking this as an outsider that has an interest in .NET and that follows some .NET blogs and twitter accounts.
From what I understood .NET Standard is a specification for the set of APIs that are supported across .NET runtimes. Well, OK, it is a little confusing since I thought .NET itself was supposed to be that standard, but I guess it got fragmented with all those new platforms being supported and now they need some common API. But are people having so much trouble understand this?
- WorldMaker 10y agoI think some of the confusion comes from people trying to follow old standards (PCLs and PCL profiles) and the bouncing standards as they were being developed and settled on, all at roughly the same time. For instance, there was a brief point where .NET Core itself was expected to be the .NET "standard bearer" and specification versions might have been derived from it [1]. That idea didn't last because it didn't well account for the history/current states of the other runtimes (.NET Framework, Mono/Xamarin), but I think it did leave lasting and confusing scars amongst some of the vanguard bloggers. [1] And basically were; the 1.x sequence of .NET Standard do more directly correspond to a subset of the .NET Framework and .NET Core intersection as viewed from the lens of .NET Core, which is part of the compatibility break between 1.x and 2.0 in .NET Standard versions...
- cptskippy 10y agoIt's probably due for some rebranding. The problem is that the future isn't compatible with the past. It's akin to trying to find solutions to problems on MacOS but only finding articles on OS9. Right now most of what's out there is for legacy .NET frameworks and there's no easy term to add to your query that will magically filter them out all. That being said, the old material isn't necessarily outdated or wrong but some of it very very much is.
- jsingleton 10y agoIt's not that complex but I think it's just that .NET naming and versions are currently quite confusing. I did a lot of reading on this for the book I wrote and I still find I need to double-check things. I guess this is what you get when you try and munge three platforms together. Package support is very important for uptake and many library authors were waiting for some stability. I found this out when researching the support matrix at https://anclafs.com https://anclafs.com. If you look at the volume of MS docs on this you would be forgiven for thinking it's complicated: https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/ https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introduci... https://github.com/dotnet/standard/blob/master/docs/faq.md https://github.com/dotnet/standard/blob/master/docs/faq.md https://docs.microsoft.com/en-us/dotnet/articles/standard/library https://docs.microsoft.com/en-us/dotnet/articles/standard/li... https://blog.xamarin.com/net-standard-library-support-for-xamarin/ https://blog.xamarin.com/net-standard-library-support-for-xa...
- tonyedgecombe 10y agoIt is a little more than just a standard, my understanding is there are assemblies you can reference that do some magic redirection in the background. There is also a shim that gives you access to the whole BCL, I'm not sure how that works. I've ready a few articles and watched half a dozen videos and I still don't have a clear picture in my head.
- paxcoder 10y agoThe first problem is that .NET Standard is not a specification in a traditional sense: "The official spec is a set of .cs files that define the APIs that are part of the standard." [0] If you're new to the .NET ecosystem and you try to dig deeper, you find yourself having to understand more and more things: .NET Core, project.json (dependencies, frameworks, imports), vNext, portable class library, PCL profiles, CLI implementations etc, all the while battling misinformation, confusion and terrible proprietary tools, should you chose (or be forced to!) use them. It took me about two weeks to finally wrap my head around the ecosystem in an effort to build a ".NET Standard library"(not a standard library) with a few dependencies and use it in a non-trivial Xamarin project. Let me know if you'd like me to share. [0] https://docs.microsoft.com/en-us/dotnet/articles/standard/library#specification https://docs.microsoft.com/en-us/dotnet/articles/standard/li...
- paxcoder 10y agoNobody showed an interest, but I've found an article which covers all of what I wanted to cover and since it costs me very little to post it, here's the link: http://www.hanselman.com/blog/WhatNETDevelopersOughtToKnowToStartIn2017.aspx http://www.hanselman.com/blog/WhatNETDevelopersOughtToKnowTo...
- sean_patel 10y ago> Why is it so confusing that it needs so much explaining? There isn't really. It looks more like Microsoft is trying to get PR by trying out "viral social media marketing" techniques like AMAs, ELI5s (Explain like I am 5) etc. Think about it. You really think you can explain to any 5 year old any framework or language or standards?
- 6nf 10y agoI was having trouble understanding the difference between Core and Standard. I thought Core was supposed to be the new 'run everywhere' set of APIs? If that's the case then what is Standard? It's all very confusing and I've been in DotNet since version 1
- WorldMaker 10y agoMaybe this helps? .NET Core is a new "run everywhere" runtime like Silverlight was and Mono is (and the venerable .NET Framework on Windows is, minus the "run everywhere" part). .NET Standard is the new standard for what it means for something to be a .NET runtime. .NET Core meets certain versions of the .NET Standard and is in the process of meeting new ones. The venerable .NET Framework meets certain other versions of the .NET Standard. (Mono meets its own set of .NET Standard versions.) If you've built "portable class libraries" (PCL) in the past, .NET Standard standardizes and cleans up the whole mess with PCL "Profiles".