微軟在2012年在開源社區有非常大的動作,明天要參加的#微軟MVP社區巡講# http://msdn.microsoft.com/zh-cn/msmvpevent.其中會介紹的一個主題就是VS2012中就有大量的開源技術,如果,再用傳統思維來看待開源和微軟,那就顯得有些不夠與時俱進了。想起有必要介紹下微軟和開源的故事,同時我在廣州會場在講述VS2012的時候會大量的介紹開源的技術,歡迎同學們到場交流哈,就在微軟廣州中信廣場6602-05會議室。
從2007年7月微軟開源技術先驅比爾·希爾夫(Bill Hilf)宣布微軟將大踏步的邁向開源那一時刻開始,微軟就開始以各種方式從不同層面逐漸滲透入開源社區。首先是在當年10月,微軟正式加入了Open Source Initiative(OSI)。在反復審視了微軟的公共許可(Ms-PL)和互惠許可之后(Ms-RL),開源組織還是向微軟張開了雙臂。由此,微軟邁開了進入開源社區的第一步。
不管開源還對微軟還存在哪些猜測和討論,微軟能夠摒棄以往的觀念開放地看待開源社區,並為此做出各種努力,這對於開源社區和微軟的長期發展都是雙贏的。正如,Red Hat的開源事務副主管兼OSI的主席Michael Tiemann所言:“微軟加入OSI,這不是結束的開始,僅僅是開始的結束而已。”
2012年4月13日,微軟宣布組建一個名為“微軟開放技術公司”(Microsoft Open Technologies)的子公司,其主要戰略重點是開發開源軟件和開放標准。
對此,“微軟開放技術公司”總裁吉恩·保利(Jean Paoli)聲稱,微軟開放技術公司的目標是推進微軟向開放領域的投資,包括互操作性、開放標准和開源軟件。
而這個子公司的核心團隊,據來自於一直與微軟內部的許多業務部門在各種標准計划方面密切合作的互操作性戰略團隊。這個團隊以前研究的問題包括萬維網聯盟(W3C)的HTML5、互聯網工程任務組(IETF)的HTTP 2.0、分布式管理任務組(DMTF)和結構化信息標准促進組織(OASIS)的雲標准。此外還研究許多開源軟件環境,如Node.js、MongoDB 和Phonegap/Cordova。
微軟從十多年前,就開始投入對開源的工作。所做的工作也是有目共睹,在開源社區可以實實在在的看到微軟是真心實意的在融入社區,我也一直在社區中推廣.NET開源技術。下面我們列出微軟這些年在開源社區的作為,以下十一條內容總結來自《微軟正在認真考慮開源化的10大證據》 ,同時進行必要的內容補充:
1.鼓勵開源的生態系統
Windows和.NET開發者社區里面充滿了開源的項目和提議,由Ninject,AutoFac,CastleWindsor和StructureMap等IoC/DI框架,到nUnit等測試工具,由RavenDB等NOSQL文檔數據庫,到Orchard和Umbracon那種強大的內容管理系統CMS,這些例子也只是.NET/Windows平台里眾多開源項目的冰山一角而已。
2.減少無謂的反復“創新”
微軟一直堅持自己開發完成別人在開源世界已經存在的技術的微軟版本,這點一直讓眾多開發者不爽。所以當ASP.NETMVC3.0發布的時候還是讓開發者們很驚喜的,因為這個微軟第一次發布一個包括開源代碼的主要項目,而ASP.NET4.0也增加了jQueryMobile&JSON.NET等更多的開源功能。
3.和NuGet數據包管理器合作
數據包管理器對於開源生態系統來說非常重要,有了它開發者們才能輕松共享自己的代碼,而在2010年十月發布的NuGet能很好的彌補Windows/.NET平台開源生態系統在這方面的不足,現在已經容納了包括jQuery,Modernizr,JSON.NET,ELMAH,log4net,Ninject等6000多個各大.NET開發者們需要數據包資料,雖然6000這個數字對比其他開源平台來說有點少,但是數據包的數量還在穩定增長中,現在有的包也都非常有用,相信以后一定會變得更好的。
4.把Windows系統優化成一個適合開源程序的平台
現在很多熱門開源項目都是通過基於Linux的平台進行開發的,Windows想要運行這些項目就需要通過Windows的虛擬機才可以,失分不方便,而微軟已經在這方面做出了努力,2011年11月,微軟就宣布通過新版的LibUV可以在Windows系統上穩定的運行nodeJs,同時,微軟發布了IISNode,讓開發者可以在IIS構建nodeJs。而在LibUV廣受歡迎之后,其他開源項目現在都在都在做Windows系統的本地化。
5.讓接口多元化、規范化
這也是微軟的開源社區已經走向成熟的標志,以去年十一月Antirez宣布微軟提供了Windows可以本地運行Redis的端口這事為例,Antirez並沒有接受在Redis的核心代碼中加入微軟補丁的做法,而鼓勵微軟創建自己的Redis分支接口。而通過開源社區的努力,也成為了今年開源社區第一個正式完成發布的項目。
6.Windows支持Apache,PHP和Ruby
從2008年開始,微軟已經開始了這方面的努力,而現在不但在Windows系統上可以構建Apache網絡服務器,而且IIS也已經可以搭載Wordpress,Drupal,Joomla等給予PHP技術的網頁和服務。
7.Azure支持眾多開源平台
在Mix09上,微軟已經正式宣布WindowsAzure會支持PHP,Java和Ruby這些開源平台。除了聲明本身包含的內容,微軟也在努力地提供各大開發環境的API,以求更多的開發者使用Azure服務。而在2011年11月微軟宣布Windows支持Node之后,微軟也接着宣布了WindowsAzure與平台也完全支持Node。也預示着Azure會不斷地向開源的方向前進。
8.支持Hadoop
去年,微軟聯合HortonWork宣布他們在努力地讓Hadoop接入Windows,這是一個很重要的消息,因為這代表這微軟寧願放棄本身有的大數據管理項目而接受Hadoop,也代表着微軟接受別人的產品的能力的提高,對所有人來說都是一個很好的消息。
9.微軟成為了Linuxkernel排名前20的資助者
十年河東十年河西,十年前微軟的CEO鮑爾默還把Linux稱為毒瘤,去年微軟就成為了Linux最大的20個資助方之一。微軟的資助主要圍繞着讓微軟的的操作系統虛擬技術Hyper-V能夠搭建Linux系統這一個目標。
10.ASP.NETMVC4.0,WebAPI和Razor引擎以及Entity Framework的基於Apache2.0開源
如果說到微軟和開源有關最重要的新聞,以下的聲明一定不能不提:
ASP.NETMVC4.0,WebAPI和Razor引擎會開源開發,ASP.NET開發小組會考慮開發者社區提交的修改建議,ASP.NET開發小組會公開地進行開發,將所有未來的更新代碼更新到一個對外的服務器上。
11.微軟同Mono的維護公司Xamarin的合作,Xamarin是微軟的合作伙伴,VS2012上提供直接開發Android的技術Mono for Android。微軟開源的ASP.NETMVC4.0,WebAPI和Razor引擎以及Entity Framework等等技術直接進入Mono平台,將發布的Mono3.0將包含所有的這些技術。
廣州活動的VS2012 PPT