背景
2014年11月12日,ASP.NET之父、微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行。.NET核心运行时将基于MIT开源许可协议发布,其中将包括执行.NET代码所需的一切项目——CLR、JIT编译器、垃圾收集器(GC)和核心.NET基础类库。此外,微软还发布了Visual Studio Community 2013,这是Visual Studio的一个新的免费版本。
关于此次事件的报道和评论,已经有了很多版本。不过,最近经常有朋友问我的看法,索性就梳理了下思路,把想到的可能影响和启发都写了出来,博大家一看。
不是终点
记得.NET宣布开源的当天,编辑群里就一阵骚动,看得出大家还是很激动的。笔者最初也是吃了一惊,不过后来静心一想,这也是水到渠成的事情了。从时间轴看,近几年,.NET家族已经先后开源了多个成员,包括ASP.NET、C#编译器等,再加上这次的.NET核心运行时,至此,服务器端框架已经全部开源(或者很快开源)。所以,这次事件只是把微软的.NET开源战略推上了高潮,但肯定不是结束。
宣布开源是个新起点,如何把开源社区构建起来,生态系统培育起来,才是关键。开源需要精心的运营,每年的开源项目不断涌现,而在不断消失。.NET开源项目不需要考虑失败的问题,开发者关注的是跨平台支持何时落地、开源社区如何运转起来。
大势所趋
开源是大势所趋,就在5年前,各大公司和厂商还在讨论是否应该开源,但现在大家讨论的则是如何更好地开源。随着互联网时代的发展和成熟,开源已经成为标配。从Github的.NET Core开源项目来看,目前已经有将近6000个star,考虑到开源一个多月的时间,这样的成绩已经说明开发社区对微软开源的支持。
以前,开源是一种保障软件项目生存的方式,而现在很多开源项目已经成为企业的一种商业和运营策略,生存已经不是问题,如何活的更好才是关键。就像某I做Linux开源是为了卖服务和硬件,Google做Android开源是为了获取移动互联网入口一样,微软做.NET开源也是为了其“移动优先、云优先”战略利益服务的。看到网上有人说开源是微软的阴谋论,笔者不是很赞同。现在IT界玩的都是阳谋了,为了公司利益无可厚非,只要不损害社区的利益,更何况开源本身是件好事情。
曾经的两强争霸
在2005年以前,Java和.NET平分秋色,由于微软的强大支持,在社区等很多方面.NET甚至比Java更出色,毕竟Java在曾经的Sun的领导下并没有太多亮点,多亏了开源支持,才保持着鲜亮的生命力。当时,在企业级开发领域,Java EE和.NET都已经受到来自开发社区的诟病。但是随后而来的移动互联网浪潮给了Java另一次生命,谷歌开源安卓系统,借此掌控移动互联网入口,其开发语言Java也成为众多移动开发者的首选,要么iOS上的Object-C语言,要么安卓的Java,而且大部分是两者都要。微软则选择了一条相对封闭的策略,即使联合诺基亚,Windows Phone的市场占有率依然不高,这直接导致.NET的使用率也不高。
笔者还记得,在两强争霸的年代,国内少有的几个技术论坛中,.NET和Java两派吵得不可开交,立场鲜明,从工具支持吵到语言特性,又吵到函数库支持。现在想想,多个竞争者并存的年代对开发者是好事,有比较有选择,而且可以让竞争者倾听开发者的声音。
跨平台支持
此次.NET开源和对Linux、Mac OS的支持,为移动开发者提供了新的选择,未来可以不再依赖于Java,.NET支持的C#、C++等可以成为移动开发语言。作为后来者的C#语言的优势明显,Java一直在追赶,现在有了跨平台支持,开发者可以自由选择。
从.NET开源实现项目Mono的博客上可以看到,Mono计划与.NET团队合作,把.NET Core的代码融到Mono项目中,同时把Mono中的平台依赖代码贡献给.NET。
相比Java体系,目前.NET只开源了服务器端框架,而Java开源的是全部系统,包括客户端和开发工具。未来微软开源的路是否更加宽广,值得观察。
培养生态系统
生态系统的培养需要一段比较长的时间,Java开源将近10年了,才形成如此成熟的生态圈,.NET需要有耐心和执行力才能走得更远。既然是生态系统,那么一定要制定并维持好生态系统中的游戏规则。这个系统不单单是开发者,还需要包括他背后的就职公司、他开发的产品面向的客户、开发者的合作伙伴等等,当然还有微软。一个平台想要凝聚力,不外乎从物质和精神两个方面分析。物质方面,开发者能够从这个平台上获取利益,比如这个平台是支持开发者创业的、多语言跨平台的、具备快速部署优势的、适合迭代开发的,生态系统的成功案例多,具备这些特质,会让这个平台的开发者最终受益。从精神方面,要让开发者有参与感,他在开发方面的经验和知识能够通过生态系统分享出去,影响其他人和公司,并且他的意见能够得到及时的反馈,那么这种参与感会吸引开发者。关键点包括创业孵化器、制定和维护生存法则、塑造合作共赢的业务模式、让圈内的利益相关者受益。
最近几年,微软对于开源越来越支持,但是给开发社区的形象还没有转变过来。毕竟,微软已经做行业老大很多年,其在闭源方面的印象给开发者影响太深刻了,很难在短时间内扭转。需要持续的运营投入和影响。
其实微软过去在社区运营方面很有经验,包括各种线上线下的活动,还有MVP等奖励机制,在开源方面,微软可以继续从前的动作。有两点建议:一是重视本土化,关于微软开源项目的介绍、进展、分析和案例要及时告知中国开发者;二是培养成功案例,榜样的力量是无穷的,开源之后的赢家在哪里?甜头在哪里?树立这样的榜样,开发社区都会看到。
开源选择
开源的历史很久远了,以Java为例,开源快10年了,它的服务器端、客户端、开发工具都是开源的,虽然历经了Sun、Oracle等公司的发展,但一直保持旺盛的生命力。特别是在移动互联网崛起之后,Java获得了新生,发展迅猛。开发者在选择开源平台和项目中,最担心的不是这个项目能不能满足我的需求,是这个项目靠不靠谱,会不会一直做下去,这是最关键的。这就是为什么绝大多数成功的开源项目背后都是有大公司的支持,有很多人全职做开源项目,人员稳定,路线图清晰,开发者放心,敢用你的产品。其次才是满足需求,赢得信任感。
开源的好处是,吸收整个技术社区的力量促进开源项目的发展和竞争力,第二个好处是,提高开发者的参与感和信任度,有利于吸引开发者,构建良好的生态系统。劣势,对于一些没有厂商支持的开源项目,路线图不明确,有纷争,存在分裂或者失败的机会。对比.NET开源,开发者不必担心这个项目会半途而废,可以更关注项目本身的发展和特性。
云优先战略
今年,Azure成为首个在中国落地的全球公有云平台,其支持Linux和很多其他开源软件,这本身就说明微软目前的态度非常开放,从Windows到Azure,战略意图很明显。从全球来看,Azure占全球PaaS市场份额的64%,排第一。微软开源的态度,可以吸引更多开发者使用Azure平台,毕竟Azure不是一个微软专有技术的平台。
未来,且行且珍惜
笔者对.NET开源抱有比较高的期待,在云计算、大数据、移动互联网和物联网的时代,Java一家独大不利于社区的发展,微软已经不再是过去封闭的巨头,开始拥抱开源,翻看微软过去的历史,我从不怀疑微软的强大的执行力,时间是一个关键的因素,开发者需要看到微软在承诺开源之后的迅速行动,开源社区和生态快速搭建起来,跨平台官方支持版本快速发布出来,抓住移动互联网的契机,把整个.NET新局面打开,千万不要虎头蛇尾,且行且珍惜,开发者是最聪明的。
相关推荐
ASP.NET开源博客系统是一个基于微软的ASP.NET技术构建的、高度可定制的、免费的博客平台,用于个人或团队发布内容、分享见解和知识。它以其功能强大、易用性和可扩展性受到开发者和用户的欢迎,是学习ASP.NET开发的...
在实际使用这款开源OA系统时,开发者首先需要了解ASP.NET的MVC(Model-View-Controller)架构,它是Web应用开发的一种常用模式,通过分离关注点,使得代码更易于维护和测试。同时,还需要熟悉ASP.NET的身份验证、...
本文将深入探讨.NET开源框架的核心概念、功能特性以及如何利用它来加速开发进程。 首先,.NET框架是由微软开发的一种编程模型,用于创建Windows、Web和移动应用。而.NET开源框架则是这个模型的开放源代码版本,它...
DotNetNuke是建立在微软的.NET Framework之上,这是一个全面的开发平台,包括编译器、库和运行时环境。.NET Framework提供了丰富的类库,如ASP.NET、ADO.NET和Windows Communication Foundation(WCF),用于构建Web...
Discuz开源论坛.NET版是一款基于.NET技术构建的社区论坛软件,它为用户提供了丰富的功能和高度的可定制性。Discuz作为一个知名的社区平台,一直以来都以其稳定性和易用性受到广大用户的喜爱。将Discuz移植到.NET平台...
ASP.NET开源程序是微软开发的一款用于构建Web应用程序的框架,它基于.NET Framework或.NET Core,提供了丰富的功能和组件,使得开发者能够快速构建动态网站、Web服务以及复杂的Web应用程序。VB.NET(Visual Basic ...
- **xUnit.net**:作为测试驱动开发(TDD)的核心之一,xUnit.net为.NET平台提供了强大的单元测试支持,其设计简洁而高效,适用于各种.NET应用程序的测试需求。 - **RhinoMocks**:这是一个强大的模拟框架,通过模拟...
VS.NET 开源框架 在企业级开源软件大盘点中,VS.NET 开源框架是一个重要的组成...VS.NET 开源框架是一个功能强大且多样化的开源框架,它涵盖了从数据访问到Web 开发的多个方面,为企业级应用提供了一个强大的支持。
Brn Shop 1.9是一款基于ASP.NET框架的开源商店系统,其设计灵感来源于知名的京东商城,旨在为开发者提供一个免费且功能丰富的电商解决方案。这个系统利用了C#编程语言的强大特性和ASP.NET Framework 4.0以及MVC 3.0...
.NET开源CMS是一款基于微软的.NET框架构建的开源内容管理系统,专为各类网站设计,包括但不限于企业网站、电子商务平台、新闻资讯站点等。它的核心优势在于提供了丰富的功能模块和高度的可扩展性,允许开发者根据...
.net基础类库开源代码让你对.net有更进步的了解
asp.net 开源 asp.net 开源 asp.net 开源 asp.net 开源 asp.net 开源
Answer3.0免费asp.net开源B2C网店系统,基于ASP.net(C#) + MSSQL 2005,遵循W3C规范。业务功能抽象到组件,可按业务需求“堆砌”组件,实现在线销售平台(网店系统)的快速搭建。 组键丰富,业务功能强大,永久免费。 ...
[新闻文章]SoCUT新闻系统.Net开源学习版 v2_socutnews.zip源码ASP.NET网站源码打包下载[新闻文章]SoCUT新闻系统.Net开源学习版 v2_socutnews.zip源码ASP.NET网站源码打包下载[新闻文章]SoCUT新闻系统.Net开源学习版 ...
这个.net 的邮件系统挺全的。 只是我编译不成功,还有不少bug。 开发组没这么多问题。 估计是我的配置有什么问题。 他们的网站在这里 http://mailsystem.codeplex.com/workitem/list/basic
eBlog是一个开源,轻量级的博客系统,基于.NET,这也是一个轻量级Web开发框架,可以很容易地建立自己的网页应用。eBlog框架的名称eBlog来自easyBlog,易于使用,易于扩展。以下技术用于在eBlog: ASP.NET ORM(DB...
ASP.NET MVC(Model-View-Controller)是微软提供的一款用于构建Web应用程序的开源框架,它基于模式驱动的架构,允许开发者在模型、视图和控制器之间实现松散耦合。该框架提供了高度的可测试性、灵活的URL路由、以及...
在使用LumiSoft.Net时,由于它是开源的,开发者可以深入研究源代码,理解其工作原理,也可以根据需要对其进行定制和扩展。这为开发者提供了极大的灵活性和控制力。同时,开源社区通常会不断更新和完善组件,修复已知...
BugNet是一款基于.Net框架,用C#语言编写的开源缺陷跟踪系统。它的主要目标是提供一个灵活、可定制且用户友好的平台,用于管理和解决软件开发过程中的bug和问题。这款系统采用MVC架构,支持多种数据库,如MySQL、SQL...
总的来说,超博CMS ASP.NET开源项目融合了ASP.NET的强大功能和ACCESS的易用性,为Web内容管理提供了一个灵活且可扩展的平台。开源社区的参与和贡献,将不断推动该项目的进步和完善,使其能够适应更多样化的场景和...