The shift in the way enterprises want to do development explains a lot on the open sourcing of .NET as well as ASP.NET. In part, it is to get the community involved to take advantage of the expertise and ideas of developers who embrace open source projects. Software organizations such as Xamarin and Fog Creek that wrote their own. NET compilers already replaced those with open source Roslyn .NET compiler by Microsoft.
The .NET Core project is under the .NET Foundation’s stewardship. This is believed to be a critical part of promoting and advancing .NET Core stack. There are two huge reasons why .NET Core was made open source. One is to lay the foundation for cross platform .NET and build and leverage a more robust ecosystem.
THE IMPORTANCE OF COMMUNITY
Microsoft plans on working with developers in the community, which include Mono community to bring .NET to both Mac OS and Linux. The relevance of embracing community contributions was one of the major discussion points in the preparations of Microsoft to go open source with the .NET’s server side.
This is somewhat a surprising move by Microsoft that is a win for all who are involved. It means that the .NET communities and mono developers now could work together in a unified pool wherein more resources and tools become available to them. Simultaneously, it provides all developers with a bigger set of platforms on which to deploy their apps, such as Linux, Mac OS, Android and iOS. A clear win for Linux adopters is the upcoming .NET apps influx that now could be ported and deployed there, together with a big number of .NET developers who could maintain the applications and bring new ones to light.
To support the open source community around .NET, Microsoft spawned the .NET Foundation. They have an organization portal on GitHub wherein the source code of the core libraries of .NET is published under the MIT License. Moreover, Microsoft wants to bring the technologies to Linux, largely in part due to Azure. Running a cloud platform provides Microsoft an interest in Linux which goes far beyond the open source contributions that the Windows Server team has been doing to the Linux kernel so distributions would run on its Hyper-V hypervisor.
MOVING TO MICRO-SERVICES
In itself, NET is changing as the recent name change for the open source version, from .NET Core 5 to Core 1.0 underlines. Furthermore, .NET Core does not even cover as much as the full .NET 4.6 since it doesn’t have for instance the server-side graphics libraries. The same goes to ASP.NET 4.6 and 5 which has the Web API but not the VB or F# or Web API support. The newer versions do not completely replace the present versions, although they will get the missing pieces later on. Moreover, they are also built in a new method, with more emphasis on moving forward and faster releases than avoiding breaking changes. For the last decade, Microsoft’s building Azure has taught the company a lot with regards to advantages of micro-services for what otherwise would be huge, monolithic apps. The original front-end managed resources such as storage, compute, networking and the core infrastructure components for the entire worldwide serve in a single application. It was a big and complicated codebase that runs on a single data center and took up to a month to release an update after it was finished and tested, meaning that it was only updated once a quarter. Moreover, the management tools for all the various components were secured by one certificate.
WHAT WAS MADE OPEN SOURCE?
Numerous server side stack layers of .NET were made available on open source licenses. In particular, the C# compiler Roslyn was made open source earlier this year under the Apache 2.0 License. Roslyn’s source code could be downloaded from codeplex. Furthermore, guidelines on how to join and contribute were made available.
.NET Core is a modular development stack which is the foundation for all future platforms of .NET. It was made available under the MIT License. The present partial release includes libraries that provide support for Metadata Reader, Immutable Containers, XML management and SIMD vector types. In addition, there is a new Visual Studio 2015 version. It is a free but not an open source version of VS Community 2013 which replaces Visual Studio Express which has for several years the free version of VS IDE. At this point, the code allowing .NET to run on iOS and Linux has not been made yet. It’s expected to be released in the next few months.
The new .NET Core stack will be entirely open source on GitHub. Microsoft has made the necessary changes already.