In fact the . NET Framework is an interesting platform that has its merit, but does not serve for everything. I believe that the advent of containers, microservices, Iot, internet Always on and the rise of mobile made Microsoft review the strategy and realized that . NET did not meet the new requirements.
In fact two products were created to meet the new demands, the .NET Native and the .NET Core. The first makes the executables completely independent, as if written in C/C++, for example, of course there are some limitations than the . NET can do but few. The second needs a Runtime, but it does not need to be a complete platform as is the . NET "full", is much more lean.
A lot has changed since the original text written here so read also The . NET Framework is dead?.
This makes it easier to work in these new models mentioned above. The . NET Framework is still the most suitable for desktop development. But almost always, the . NET Core is best suited to run on small devices for various purposes, servers, no matter the model, and some desktop-running applications, but not typical. Game development can also benefit.
Of course, Microsoft does not dominate the platforms of these new environments (it’s even trying in some new ones). Much of the utility of . NET off the desktop is on platforms where it does not act and a new . NET that worked well on them was necessary, could not have existing Windows links in the original . NET.
One point I find very interesting is the competition from Node.js (in fact what made him famous was the libuv). It features an event-based server that is much better than traditional web applications (it already has newer versions all new that is much better, no wonder it gets so good at benchmarks like the Techempower). The old . NET model does not favor this, the . NET/ASP.NET Core is more prepared to meet this demand, and let Node.js eat performance dust (and obviously the old . NET). Today web takes place much by intensive exchange of small messages, the previous model did not work much more.
Of course this alone was not enough. They bought Xamarin to meet the mobile and I think the trend is the . NET Core is being incorporated into it more and more. Today has the MAUI.
They also realized that opening the code and the project was not only to meet the expectations of the developers, but also fundamental to achieve rapid improvements that only a community can give. He’s over at Github, everyone can participate.
Of course the . NET was a little Bloated also, was the opportunity to take care of this.
It didn’t stop there. It also started providing other tools to help development on other platforms, such as Visual Studio Code, Visual Studio for Mac and even the SQL Server for Linux to complement the stack.
The . NET Core project is widely funded by Microsoft, but is owned by .NET Foundation and the project is very open, not something that only Microsoft commands. Of course it has weight, as happens in every open project, except for the failures. But the amount of commits from third parties that the project is receiving. The project will be what the community wants, as long as it is coherent. And the license is MIT which is the real license that gives freedom.
Many features developed in . NET Core are being transposed into . NET Framework, but not all, some for not making sense, others because there is not so much interest there. The impression is that the . NET full has entered a finished product state and will continue to receive minor improvements, far from being an abandoned product, but the attention is on . NET Core. Now it is supported but not evolved anymore.
And it has been greatly improving compatibility with . NET Framework:
Starting from 3.0 you have "everything" you need to replace . NET Framework completely. And in . NET 5 you lose the Core name, it’s even better. What it doesn’t have is because it doesn’t make more sense or it was bad and it’s better not to use more.
To organize all these implementations there is the .NET Standard in the above versions. Which now doesn’t make much sense anymore.
In short, Microsoft is being opposed to everything that people who hate it think it always does. Of course it suits your interests, but this is normal, it occurs to everyone who does not live of poetry :) She did because there was this demand in the market, so the competitive market is always good.
On the link you posted there is a Q&A informed by @bigown that will probably answer your questions: https://blogs.msdn.microsoft.com/dorischen/2014/11/12/microsoft-takes-net-open-sourcand-cross-platform/
– perozzo