Microsoft has announced that it is releasing the source code for ASP.NET Web API and ASP.NET Web Pages under an open source license. What does this mean for .NET developers?
The whole of the ASP.NET MVC technology stack has been open source since its first version and it currently ships with a lot of open source components - jQuery, jQuery UI, jQuery Mobile, jQuery Validation, Modernizr.js, NuGet, Knockout.js and JSON.NET. So it looks like a good attempt at adopting open source -but there are different degrees of openness that can be applied to any project.
Now Microsoft has announced that they are being even more open with their new approach to ASP.NET MVC. It is making ASP.NET MVC, Web API, Razor open source under an Apache 2 license.
The big difference is that previously you could look at the code and change it but if you did then it became your own private distribution. Microsoft was in full charge of the development and any bug fixes, modifications or additions you might make were mostly ignored. Now the development process is going more open and you can contribute to the code base. Microsoft will remain as the sole gatekeeper of what is added or modified but this does mean that development can be more of a team or community based effort. According to Scott Guthrie:
We will also for the first time allow developers outside of Microsoft to submit patches and code contributions that the Microsoft development team will review for potential inclusion in the products.
This still sounds a bit distant but it takes time to really embrace open source development. Included in the deal is ASP.NET MVC, Web API and the ASP Web Pages, aka "Razor" The code will be hosted on CodePlex using the new Git support and takes the form of the latest RC milestone including all source code and tests. You can compile and test out the latest version but if you do have anything to contribute:
You can also now contribute directly to the development of the products by reviewing and sending feedback on code checkins, submitting bugs and helping us verify fixes as they are checked in, suggesting and giving feedback on new features as they are implemented, as well as by submitting code fixes or code contributions of your own. Note that all code submissions will be rigorously reviewed and tested by the ASP.NET MVC Team, and only those that meet an extremely high bar for both quality and design/roadmap appropriateness will be merged into the source.
It clearly has to be a good thing that Microsoft is slowly easing itself into open source and it is a step in the right direction but it is still a small one.
You have to ask what exactly has Microsoft to loose by moving in this direction?
The way that they have things setup means that they are in 100% control of the project and simply stand to benefit from the unpaid efforts of enthusiastic programmers - so its win-win as far as they are concerned
There is the small problem that recently open source has been seen as a dumping ground for projects that companies no long see a commercial future for. So could it be that a move towards more open source for ASP.NET MVC is a sign of weakening support? Clearly Scott Guthrie, as Corporate Vice President in the Microsoft Server and Tools Business, is worried that it might be:
Very importantly - ASP.NET MVC, Web API and Razor will continue to be fully supported Microsoft products that ship both standalone as well as part of Visual Studio (the same as they do today). They will also continue to be staffed by the same Microsoft developers that build them today (in fact, we have more Microsoft developers working on the ASP.NET team now than ever before).
So at the moment it doesn't look as it the move to more openness is a sign of anything bad.
If they open sourced the original ASP.NET there might be more cause for concern. ASP.NET MVC is a good approach to building modern websites but it completely undermines the original ASP.NET and its attempts to make web programming look more like desktop programming.
It is interesting to take note that Microsoft is promoting ASP.NET MVC as the way forward and as, sort of, open source.