News for hackers. Stuff that matters.
Re:.NET Standard 2.0 is final by smitherfield on Wednesday August 09, 2017 @01:24PM (#14971476)
So just so I'm clear,

.NET ECMA Spec ⊆ .NET Standard ⊆ (.NET Core ∩ Mono ∩ Xamarin ∩ Unity) ⊆ .NET Core ⊆ .NET Framework

Correct?

Re:.NET Standard 2.0 is final by vyrotek on Wednesday August 09, 2017 @01:26PM (#14971500)
Here's an analogy using classes and interfaces to explain it

https://gist.github.com/davidfowl/8939f305567e1755412d6dc0b8...

Re:.NET Standard 2.0 is final by cjsuk on Wednesday August 09, 2017 @01:25PM (#14971488)
I think we need some calculus in there too as it'll be different next week.
Re:.NET Standard 2.0 is final by jasallen on Wednesday August 09, 2017 @01:41PM (#14971672)
ECMA spec is for the CLI, essentially the specification for runtime like type system and GC and all the other things that make an environment work at all

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.

Re:.NET Standard 2.0 is final by smitherfield on Wednesday August 09, 2017 @02:00PM (#14971872)
To be more clear, I wasn’t actually confused, just commenting on how confusing the various meanings of “.NET” are getting, and maybe helping clear up some of the confusion for people who think visually and remember their discrete math (set theory).

Of course it’s still helpful to plenty of people reading this thread to define all those terms. :)

Re:.NET Standard 2.0 is final by terrajobst on Wednesday August 09, 2017 @01:53PM (#14971818)
Not quite. See this comment for the relationships of the specs: https://news.ycombinator.com/item?id=14971769

.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.

Re:.NET Standard 2.0 is final by smitherfield on Wednesday August 09, 2017 @02:01PM (#14971891)
Hence the intersection symbols.
Re:.NET Standard 2.0 is final by MarkSweep on Wednesday August 09, 2017 @03:28PM (#14972717)
I don't think .NET Framework is a supper set of all other implementions of .NET. For example, Mono's SIMD types are not in .NET Framework. It is even possible for types to exist in .NET Core that don't exist in .NET Framework.

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 Framework
Re:.NET Standard 2.0 is final by smitherfield on Wednesday August 09, 2017 @03:45PM (#14972863)
You're confusing intersection and union.
Re:.NET Standard 2.0 is final by MarkSweep on Wednesday August 09, 2017 @04:00PM (#14973020)
Oh, derp, you're right.
Re:.NET Standard 2.0 is final by terrajobst on Wednesday August 09, 2017 @04:03PM (#14973049)
Still, .NET Framework isn't the superset of everything. As I said, I find your description not useful because it simply doesn't capture how the .NET stacks are designed.
Re:.NET Standard 2.0 is final by zastrowm on Wednesday August 09, 2017 @03:21PM (#14972655)
I believe that .NET Core is not a subset of the .NET Framework; e.g. .NET Core might have things that are not yet in .NET framework.

I 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)