The .NET Framework is not going away, but it is now apparent that the company's focus is on .NET Core as the future of its development platform. Microsoft's .NET Framework goes back a long way, first announced at the company's TechEd Europe in 2000.
At the time it was seen as a defensive move against Sun's Java, which threatened Windows thanks to its cross-platform capability combined with a programming language that was easier and more productive than C or C++.
Microsoft's C#, the primary .NET language, did not see off Java, but proved popular for developing business applications.
The company also evolved the language more rapidly than Sun was able to do with Java, showing what a capable internal team could achieve versus a more bureaucratic community-driven process.
ASP.NET, co-invented by Microsoft's Scott Guthrie, was a big advance on the old ASP (Active Server Pages) as a framework for web applications.
Why then did Microsoft decide to fork the .NET Framework, with all the risks and confusion that entails, and embrace open source and cross-platform? There are several reasons.
The first is that the .NET Framework was monolithic and its internal dependencies too convoluted for Microsoft to move forward with certain projects. In particular, the company wanted to compile .NET to true native code, without needing a runtime installed.
Benefits include faster start-up, faster performance in some scenarios, but above all cleaner and simpler deployment. If applications depend on an operating system runtime, then there is always a risk that updating the operating system could break the application.
The compatibility burden also tends to slow down development of the runtime.
Microsoft's solution was to refactor the .NET Framework into a new, more modular system, while still maintaining the existing version for compatibility. This new version is .NET Core.
It was first used for Windows 8 Store apps, which is why the .NET Native project initially targeted only Store apps, now evolved into Universal Windows Platform (UWP) apps for Windows 10.
Microsoft demos .NET Native on Linux
At the Connect event in New York this week, Microsoft showed the next stage for .NET Native: targeting .NET Core on Linux, Mac and Windows. There was a demonstration of .NET Core compiled to native code on Ubuntu, though this feature is not yet in the public release.