3 ms·
For people confused about what .NET Standard is and how it relates to .NET Core: Here's an FAQ: https://github.com/dotnet/standard/blob/master/docs/faq.md http
by jongalloway2 9y ago
For people confused about what .NET Standard is and how it relates to .NET Core:
Here's an FAQ: https://github.com/dotnet/standard/blob/master/docs/faq.md https://github.com/dotnet/standard/blob/master/docs/faq.md
Here's a series of short videos from the product team explaining it: https://www.youtube.com/playlist?list=PLRAdsfhKI4OWx321A_pr-7HhRNk7wOLLY https://www.youtube.com/playlist?list=PLRAdsfhKI4OWx321A_pr-...
Short excerpt from the FAQ:
.NET Standard is a specification that represents a set of APIs that all .NET platforms have to implement. This unifies the .NET platforms and prevents future fragmentation. Think of .NET Standard as POSIX for .NET.
Having a standard solves the code sharing problem for .NET developers by bringing all the APIs that you expect and love across the environments that you need: desktop applications, mobile apps & games, and cloud services.
Conceptually, I think of it in terms of browsers and browser standards. The relationship between .NET Standard and the various .NET platforms (.NET Core, .NET Framework, Mono, Xamarin, UWP, etc.) is similar to HTML specifications (e.g. https://www.w3.org/TR/html5/ https://www.w3.org/TR/html5/) and individual browsers. Newer HTML features are available on newer browsers, and some browser feature implementation is contextualized (e.g. some web features don't make sense on a mobile phone browser). I know there are rabbit holes to #wellactually on that, so if it doesn't work for you don't worry about it, but as an analogy I've found it helpful.
Having a defined feature matrix makes it easier to see which APIs are available for a given platform and version.
(Microsoft employee, .NET team member, Nazgûl)
- dsp1234 9y agoAnother analogy for .NET developers: .NET Standard is like an interface .NET Core is like a class that implements the interface Desktop .NET framework is like a class that implements that interface Mono is like a class that implements that interface Like any other class/interface relationship, the class has to implement all interface members, but may add class specific features
- wfunction 9y agoWhat about the BCL, CLS, etc.?