Fork me on GitHub

微软和开源社区---开发者的福音

       微软在2012年在开源社区有非常大的动作,明天要参加的#微软MVP社区巡讲# http://msdn.microsoft.com/zh-cn/msmvpevent.其中会介绍的一个主题就是VS2012中就有大量的开源技术,如果,再用传统思维来看待开源和微软,那就显得有些不够与时俱进了。想起有必要介绍下微软和开源的故事,同时我在广州会场在讲述VS2012的时候会大量的介绍开源的技术,欢迎同学们到场交流哈,就在微软广州中信广场6602-05会议室。

mvp Bill Hilf

      从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

posted @ 2012-10-19 22:00 张善友 阅读(...) 评论(...) 编辑 收藏