I don't understand why they need so many different "cross-platform" standards. Why is the platform so fragmented when MS controls the whole thing?
I don't understand why they need so many different "cross-platform" standards. Why is the platform so fragmented when MS controls the whole thing?
.Net Core is one implementation of the standard. .Net 4.6 is another implementation of the standard. Mono, Xamarin, Universal Windows Platforms are other implementations.
The idea is that any code written for .Net standard, will work across the different implementations.
It's true that .NET Standard 1.0-1.6 had a lot of gaps but these should be rectified with 2.0 now so you shouldn't run into these problems anymore (otherwise there's usually a good reason why a method/API is missing from the standard).
Disclaimer: I'm working on Mono for Microsoft/Xamarin, primarily class libraries and tools.
Contrast to languages where there isn't a spec, or the spec is the interpreter, such as Perl 5 (Perl 6 actually has a specification and multiple implementations or various levels of conformance), or things in between, such as Python with the Python Language Reference. There are benefits and drawbacks to a standard/specification. One benefit is that it's easy for someone to start their own implementation and test for conformance and have a high degree of surety whether it will work with existing programs. One downside is that when there's a problem found in the spec, it often requires more work to fix, as the changes need to propagate out to the implementations, which will have their own timelines as to when they can implement it.
There is a nice talk about it, somewhere on YouTube.
Then there was the whole 8.0, 8.1 with UAP, and finally UWP transitions.
The two only good things from UWP for .NET devs were finally getting .NET Native, which should be there since 1.0 given the Delphi roots of Anders, and the COM Runtime model that was in the genesis of .NET (formerly known as Ext-VOS).
I think the talk you refer to, is one from OS research group at MSR.
UWP/UAP is a new UI stack from the Windows team BOUND to a CoreCLR. That is different with the existing .NET UI technology stacks.
Additional, the CoreCLR and its more modern Assembly packaging (System.Runtime vs mscorlib) made the code difficult to share (recompile or PCL). This is solved now by the .NET Standard.
Which is what I meant with "mess created by Sinofsky regarding .NET, UWP and C++/CX.". I do have UWP experience since WP 8.
Thanks for the link about the talk.
The standard is either CLR (Common Language Runtime) or CLI (Common Language Infrastructure), I'm not entirely sure.
Edit As far as I can tell, yes, even Miguel de Icaza is consistently misusing these terms.
Edit 2 - Nope, I'm wrong!
(Yes, there are also ECMA standards for the CLR/CLI, C# language, and a somewhat small subset of the BCL [Base Class Library]. .NET Standard subsumes those underlying standards and then specs out a much larger set of the BCL and even some libraries that aren't strictly BCL but may as well have been in the way they've become standards such as ADO.NET.)
https://docs.microsoft.com/en-us/dotnet/standard/net-standar...