ASP.NET MVC 4, ASP.NET Web API, ASP.NET Web Pages v2 (Razor)全部开源,并接受来自社区的贡献(contributions)
更新:看来微软的一小步引起了社区的大反响,看看来自Phil Haack的评论(前微软ASP.NET MVC Project Manager现已加入GitHub)。看来微软走出这一步还是不容易的,(不是指open souce,而是指accept external contributions)。
来自Scott Guthrie以及Scott Hanselman博客的消息,ASP.NET MVC 4, ASP.NET Web API, ASP.NET Web Pages v2 (Razor)全部开源,并接受来自社区的贡献(contributions)。
源码仍通过CodePlex发布,地址是http://aspnetwebstack.codeplex.com/。CodePlex目前也支持Git了。为什么没有选择流行的GitHub而仍然使用CodePlex,Scott Hanselman博客里也做了解释,似乎是CodePlex也将会有重大的升级,也会变得越来越好。
ASP.NET MVC 发布以来一直就是开源的,但这次开源不仅仅是新增了2个产品而已(web api,web pages)。之前微软对ASP.NET MVC的开源仅仅是公布了源码,社区开发人员并不能实际的直接参与到产品的开发。从这次开始,社区人员可以直接参与这些产品的开发了,贡献代码(code contribution),提交bugfix或单元测试,share idea等。这些产品也会集成越来越多的来自社区的技术或产品,如已经集成的jQuery, jQuery UI, jQuery Mobile, jQuery Validation, Modernizr.js, NuGet, Knockout.js and JSON.NET等。
开源的目的是为了更紧密地增强与社区的联系与互动(tighter feedback loop),但并不意味着以上产品将由社区主导进行发展(微软不是撒手不管了)。这些产品仍然作为微软完全支持的(fully supported)产品,独立或者作为Visual Studio的一部分(就像现在一样)发布,仍然由目前的开发团队进行开发和维护,微软对这一块的投入不会减少(其实一直是在增加)。
为什么ASP.NET Web Forms不开源?
Scott Hanselman在博客中解释说,目前开源的产品都是独立于.Net Framework之外的,也就是说没有与操作系统产生关联。Web Forms作为System.Web.dll的一部分,而后者与Windows Server平台有关联的部分。关联部分的代码不能被轻易的取代,除非更新.Net Framework或者操作系统。