更新:看來微軟的一小步引起了社區的大反響,看看來自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或者操作系統。