The centerpiece of Microsoft’s Windows-based server application stack is going to become fully open source according to an announcement by the company today. The .NET Core stack will now be supported on Windows, Linux, and Mac OS X. This release of this software under an open source license joins the previously released .NET centric software: the ASP.NET stack and C# compiler (Roslyn).
The .NET Core project now has its source code available on GitHub, providing the key foundational libraries for the following components, all of which are licensed under the MIT open source license:
- Immutable Collections. A set of collection types that make it easy to keep mutable state under control without sacrificing performance or memory footprint. You can read more about them on MSDN.
- ECMA-335 Metadata Reader. This is a highly tuned low-level metadata reader that allows Roslyn to parse assemblies.
- SIMD enabled vector types. We've recently added a set of basic vector types that leverage single instruction, multiple data (SIMD) CPU instructions. See our recent announcement for more details.
- XML. This includes the DOM APIs such as the XDocument and XmlDocument types, XLinq as well the corresponding XPath extension methods.
Microsoft’s Immo Landwerth stated that the firm’s key motivations behind the move to opening up the code base for .NET is due to a desire to improve the cross-platform support, and to improve the overall quality of the software supporting .NET. Landwerth says that Microsoft thinks having one unified open source stack will do well to facilitate this (as opposed to the previous situation of a closed-source .NET and the independently developed Mono project).
Having an open and transparent development process means that Landwerth and his team can more easily communicate with developers as to Microsoft’s plans for the project and the reasoning behind its design decisions. A welcome change for this project is that Landwerth is committed to avoiding “code bombs”, the process by development happens on Microsoft’s internal servers and then is periodically released en masse to public Git servers. This obscures the development process and frequently leads to an opaque and incomplete change log.
Landwerth says that the GitHub repository will be his team’s primary code storage system. This transparency will also provide non-Microsoft developers with access to the project’s Code Review process for incorporating changes and the design documents used by the development team.
As part of this process, Microsoft has also released the class libraries for the .NET Framework that ships with Windows. Miguel de Icaza of Mono says his team will be using this code to address areas of the Mono codebase that is incomplete or containing errors. Mono’s implementation will continue to be developed independently as Microsoft must closely monitor the framework’s development for Windows to ensure that backwards compatibility is maintained.