.NET ECMA Spec ⊆ .NET Standard ⊆ (.NET Core ∩ Mono ∩ Xamarin ∩ Unity) ⊆ .NET Core ⊆ .NET Framework
Correct?
.NET ECMA Spec ⊆ .NET Standard ⊆ (.NET Core ∩ Mono ∩ Xamarin ∩ Unity) ⊆ .NET Core ⊆ .NET Framework
Correct?
https://gist.github.com/davidfowl/8939f305567e1755412d6dc0b8...
Net Standard is a specification of APIs. So in order to be compliant to the standard you must have a class named X with parameters string Y, int Z.
"Net Framework" is the name for the Windows "full .net framework" -- this doesn't have a descriptive name since it was before all the rest, but basically its an SDK that is a superset of the Net Standard (and therefore is .Net Standard compliant / interoperable)
Mono is a open source implementation of "Net Framework" that runs on multiple platforms (linux, etc). It attempts to treat full .NET Framework's surface area as a spec but re-implement it cross platform. It is _also_ a open source CLI implementation. So in common speech "mono" like ".net" can refer to either the "basic sdk" _or_ the runtime environment.
Xamarin is forks of mono for iOS, Android and Mac platforms plus libraries that include full support for interacting with those platforms Native SDKs
Unity is a fork of Mono plus gaming tooling and runtime tools. Microsoft does not maintain this, it's a separate company.
Of course it’s still helpful to plenty of people reading this thread to define all those terms. :)
.NET Framework, .NET Core, Mono, Xamarin, and Unity are all implementing all the .NET specs. They are share many aspects, but each also bring specific capabilities that the others don't have, so its not very useful to think of these having a superset/subset relationship.
I think you could say the following:
.NET ECMA Spec ⊆ .NET Standard
.NET Standard ⊆ .NET Core
.NET Standard ⊆ Mono
.NET Standard ⊆ Xamarin
.NET Standard ⊆ .NET FrameworkI believe that the things that go into .NET core eventually go into .NET Standard (and thus the framework), but at a slower pace.
Thus it would be:
.NET ECMA Spec ⊆ .NET Standard ⊆ (.NET Core ∩ Mono ∩ Xamarin ∩ Unity ∩ .NET Framework)