`
netcome
  • 浏览: 482294 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

.NET开源核心运行时,且行且珍惜

阅读更多

背景

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新局面打开,千万不要虎头蛇尾,且行且珍惜,开发者是最聪明的。

1
0
分享到:
评论

相关推荐

    ASP.Net开源博客系统

    ASP.NET开源博客系统是一个基于微软的ASP.NET技术构建的、高度可定制的、免费的博客平台,用于个人或团队发布内容、分享见解和知识。它以其功能强大、易用性和可扩展性受到开发者和用户的欢迎,是学习ASP.NET开发的...

    .net 开源cms.zip

    .NET开源CMS,全称为“.NET开源内容管理系统”,是基于微软的.NET框架开发的,主要用于构建网站和应用程序的软件系统。这种CMS允许用户通过图形化的用户界面进行内容的创建、管理和发布,而无需深入理解底层的编程...

    ASP.NET开源OA代码.7z

    在实际使用这款开源OA系统时,开发者首先需要了解ASP.NET的MVC(Model-View-Controller)架构,它是Web应用开发的一种常用模式,通过分离关注点,使得代码更易于维护和测试。同时,还需要熟悉ASP.NET的身份验证、...

    .Net开源流程引擎RoadFlow最新版(全部源码)

    《.Net开源流程引擎RoadFlow深度解析》 .Net开源流程引擎RoadFlow是一款高效、灵活的流程管理工具,专为.NET开发者设计,提供了完整的源代码,方便开发者进行二次开发和定制。该引擎以其强大的功能和易用性,在企业...

    .net开源框架

    本文将深入探讨.NET开源框架的核心概念、功能特性以及如何利用它来加速开发进程。 首先,.NET框架是由微软开发的一种编程模型,用于创建Windows、Web和移动应用。而.NET开源框架则是这个模型的开放源代码版本,它...

    .net 开源项目 DotNetNuke

    DotNetNuke是建立在微软的.NET Framework之上,这是一个全面的开发平台,包括编译器、库和运行时环境。.NET Framework提供了丰富的类库,如ASP.NET、ADO.NET和Windows Communication Foundation(WCF),用于构建Web...

    Discuz开源论坛.NET版

    Discuz开源论坛.NET版是一款基于.NET技术构建的社区论坛软件,它为用户提供了丰富的功能和高度的可定制性。Discuz作为一个知名的社区平台,一直以来都以其稳定性和易用性受到广大用户的喜爱。将Discuz移植到.NET平台...

    asp.net 开源后台cms系统

    asp.net 开源后台cms系统 菜小鸟开源asp.net 后台

    ASP.NET开源论坛

    这个论坛系统的核心特点是完全开源,这意味着开发者可以查看、修改和分发其源代码,这对于学习ASP.NET编程、自定义功能或者进行二次开发具有极大的价值。 ASP.NET是微软公司推出的一种强大的Web应用程序框架,它...

    23个.NET开源项目

    - **xUnit.net**:作为测试驱动开发(TDD)的核心之一,xUnit.net为.NET平台提供了强大的单元测试支持,其设计简洁而高效,适用于各种.NET应用程序的测试需求。 - **RhinoMocks**:这是一个强大的模拟框架,通过模拟...

    CMS系统,ASP.NET开源

    在本案例中,我们讨论的是基于ASP.NET技术的开源CMS系统。 【ASP.NET】 ASP.NET是由微软公司开发的一种服务器端Web应用程序框架,它主要用于构建动态网站、Web应用和Web服务。ASP.NET是.NET Framework的一部分,...

    .Net开源CMS

    .NET开源CMS是一款基于微软的.NET框架构建的开源内容管理系统,专为各类网站设计,包括但不限于企业网站、电子商务平台、新闻资讯站点等。它的核心优势在于提供了丰富的功能模块和高度的可扩展性,允许开发者根据...

    .net BBS 开源项目

    .NET BBS 开源项目是一个专为中、小企业设计的强大论坛系统,其核心特性与功能丰富,旨在提供高效且易用的在线社区平台。作为开源软件,它允许用户自由地查看、修改和分发源代码,促进了技术共享与创新。 该项目...

    .NET开源代码

    .net基础类库开源代码让你对.net有更进步的了解

    基于.NET的SunnyUI.NET开源控件库设计源码

    本设计源码提供了一个基于.NET Framework 4.0+、.NET6、.NET7、.NET8 框架的 C# WinForm 开源控件库、工具类库、扩展类库、多页面开发框架。项目包含589个文件,主要使用C#编程语言。文件类型包括357个C#源代码文件...

    asp.net 开源

    asp.net 开源 asp.net 开源 asp.net 开源 asp.net 开源 asp.net 开源

    Answer3.0免费asp.net开源B2C网店系统

    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开源学习版 v2_socutnews.zip源码ASP.NET网站源码打包下载[新闻文章]SoCUT新闻系统.Net开源学习版 ...

    IMAP Mail System .Net 开源

    这个.net 的邮件系统挺全的。 只是我编译不成功,还有不少bug。 开发组没这么多问题。 估计是我的配置有什么问题。 他们的网站在这里 http://mailsystem.codeplex.com/workitem/list/basic

    eBlogasp.net开源轻量级博客系统v0.1

    eBlog是一个开源,轻量级的博客系统,基于.NET,这也是一个轻量级Web开发框架,可以很容易地建立自己的网页应用。eBlog框架的名称eBlog来自easyBlog,易于使用,易于扩展。以下技术用于在eBlog: ASP.NET ORM(DB...

Global site tag (gtag.js) - Google Analytics