Why .NET Core?
The .NET stack is finally catching up in the game of cross-platform development.
In my early years as a student and rookie developer, I viewed the .NET Framework as a monolithic beast of burden shackled by Microsoft's desire to maintain a closed ecosystem, an artifact of the open source programming world destined to be discarded by developers with no small amount of disdain.
Something changed.
The early 2000s bore witness to the meteoric rise of the MONO Project. Originally owned by Ximian, it was introduced as an open source alternative to Microsoft's .NET Framework. MONO was branded as a cross-language, .NET Framework compatible software framework that was used to develop applications on many popular operating systems, including Android and Linux distributions, Windows and even gaming consoles. What struck out as most appealing to developers was perhaps the promise that Windows based components (ADO.NET, ASP.NET, Windows Forms, etc.) could finally be ported over to Linux/GNU.
Such an attractive proposition did not come without complications. It was no secret that the Project implemented a number of patented .NET components wholly owned by Microsoft. The prevailing fear was that the software giant, by virtue of lawsuits, could utterly decimate the Project. In an interesting turn of events however, that point was since rendered moot with Microsoft's acquisition of the Project (after a series of takeovers by other firms) through its subsidiary Xamarin.
The strategic acquisition of MONO/Xamarin was a sign that heralded a change in Microsoft's traditional stance toward cross-platform programming. Microsoft was at long last lowering its self imposed barriers to the world of open source development. The excitement did not end here.
Enter .NET Core, the polished and shiny successor to both the .NET Framework and the MONO Project. The .NET Framework 4.8 will be the last known major variant release of the .NET Framework. At its current version of .NET Core 3, it stands out as Microsoft's true open-source framework for Windows, Linux and macOS operating systems. What used to be known as MONO is now Xamarin, and falls under the umbrella of mobile application development within this very framework. C# is primarily used as the main programming language.
Scott Hunter, Director of Program Management (.NET) at Microsoft, summarizes the future roadmap of .NET Core:
"New applications should be built on .NET Core. .NET Core is where future investments in .NET will happen. Existing applications are safe to remain on .NET Framework which will be supported. Existing applications that want to take advantage of the new features in .NET should consider moving to .NET Core. As we plan into the future, we will be bringing in even more capabilities to the platform. You can read about our plans here."
Linus Lim, August 2020.