Microsoft started using an open development style with the Windows Azure SDK last year. It’s worked and worked well, so now they’re expanding the style to include some of the popular frameworks like ASP.NET.
At first Microsoft made the source code for ASP.NET MVC available under an open-source license. Now, the company has open-sourced another hearty chunk of its ASP.NET technology to the delight of some open-source players.
While the source for ASP.NET MVC has had source available since its inception, and converted to the MS-PL license in April of 2009, the developers didn’t take contributions from the community. While Microsoft was open source it was not “open source with takebacks.” Now ASP.NET MVC, Web API, Web Pages take contributions from the community.
Microsoft is open sourcing more of its ASP.NET programming-framework technologies and it allows developers outside of Microsoft to submit patches and code contributions for potential inclusion in these products. ASP.NET MVC 4, ASP.NET Web API and ASP.NET Web Pages v2 also known as Razor now all open source with contributions under the Apache 2.0 license. You can find the source on CodePlex.
Over the last four years at Microsoft developers have worked closely with the community to get feedback and voices heard by the developers. The goal of open-sourcing these technologies is to increase the feedback loop on the products even more and allow to deliver even better products. For instance, when having found a bug you can send a unit test of fix. If coverage seems not to be sufficient a developer can send a test unit. If community developers come up with a feature, they can get involved more deeply and help write it.
Like every large open source project, every check-in (open source or otherwise) are evaluated against the existing standards used by the developers. Even better, community managers get to see Microsoft developers’ checkins to the product out in the open.
Still it’s really important to remember that ASP.NET MVC, Razor, and Web API are fully supported Microsoft products and will still be staffed by the same developers that are building them today. The products will be backed by the same Microsoft support policy and will continue to ship with Visual Studio. Also, to be clear, Microsoft is maintaining the same level of development resources as always and actually, there are more Microsoft developers working on ASP.NET today than ever before.
Quite often the question about ASP.NET Web Forms arises, as it is not open sourced. The thing is the components that are being open sourced at this time are all components that are shipped independently of the core .NET framework, which means no OS components take dependencies on them. Web Forms is a part of System.Web.dll which parts of the Windows Server platform take a dependency on. Because of this dependency this code can’t easily be replaced with newer versions expect when updates to the .NET framework or the OS ships.
So Microsoft has reached the final stage in embracing open source—not only by opening up the code, but also by taking contributions. Do you think moving to an open development model, will make Microsoft products stronger?