Last Wednesday Microsoft announced they are transitioning the server side of their .NET platform to open source. As stated on their website:

Microsoft is providing the full .NET server stack in open source, including ASP.NET, the .NET compiler, the .NET Core Runtime, Framework and Libraries, enabling developers to build with .NET across Windows, Mac or Linux.

What is .NET?

One can think of .NET as a technology platform similar to Java. It provides support for networking, web applications, and graphical user interfaces. Both .NET and Java provide a virtual machine where one can execute applications. Typically on .NET, these applications will be written in the C# programming language to run on top of the virtual machine. Until now, .NET has only run on the Microsoft Windows operating system.

Since 2004, the mono project has provided an open source re-implementation of the .NET platform, which is commonly used under Linux. Migel de Icaza, founder of the mono project and CTO of Xamarin, the company that provides commercial support for mono, joined Microsoft executives on the stage at the Connect(); event last week for the open source .NET announcement.

Xamarin celebrated the news on their blog, and Migel de Icaza elaborated further in a personl blog post:

With the Mono project, we have spent 14 years working on open source .NET. Having Microsoft release .NET and issue a patent covenant will ensure that we can all cooperate and build a more vibrant, richer, and larger .NET community.

See the patent covenant for yourself.

What was made open source?

Several layers of the server side stack of .NET were made available under open source licenses. More specifically, the C# compiler Roslyn, was made open source by Microsoft earlier this year, under the Apache 2.0 License. The source code of Roslyn can be downloaded from codeplex, and guidelines on how to participate and contribute were made available.

The .NET Core 5 is a modular development stack that is the foundation for all future .NET platforms. It was made available under the MIT license. The current partial release includes libraries providing support for: Immutable Containers, Metadata Reader, SIMD vector types, and XML management.

In addition to these announcements is a new version of Visual Studio 2015. It is a free (but not open source) version of Visual Studio Community 2013 that replaces Visual Studio Express, which has been for several years the free version of the Visual Studio IDE. Visual Studio Community 2013 is available at zero-cost to individual developers and to companies with teams of less than five developers.

At this point, the code that will allow .NET to run on Linux and iOS has not been built yet. It is expected that we will see this code in the next few months.

The importance of community

Microsoft has plans to work with developers in the community, including the mono community, to bring the .NET platform to both Linux and Mac OS. The importance of embracing community contributions was one of the key discussion points in Microsoft's preparations in going open source with the server side of .NET.

This somewhat surprising move by Microsoft is a win for all involved. It means that the communities of .NET and mono developers can now work together in a unified pool where more tools and resources become available to them. It simultaneously provides all these developers with a wider set of platforms on which to deploy their applications, including Mac OS, Linux, iOS, and Android. A clear win for Linux adopters is the upcoming influx of .NET applications that can now be ported and deployed there, along with a large number of .NET developers who can maintain these applications... and bring new ones to light.

In order to support the open source community around .NET, Microsoft spawned the .NET Foundation. They have an organization portal on GitHub, where the source code of the .NET core libraries is being published under the MIT License.

The .NET foundation goal is to foster open development and collaboration. It also...

...serves as a forum for commercial and community developers alike to strengthen the future of the .NET ecosystem by promoting openness, community participation and rapid innovation.

Along with these announcements, Soma Somasegar, the Corporate Vice President of the Developer Division at Microsoft, made statements of insight. In particular, he commented that the work for making .NET open source began about three years ago.

Another great comment about this news came from Jim Zemlin, the executive director of the Linux Foundation, on his blog: