标签:微软 开源 .net
我对微软.NET开源的理解
上周,微软宣布.NET开源,并把它扩展到Linux和Mac OS平台上面。
届时,微软已经宣布开源的数个开发技术,有ASP.NET Roslyn.NET编译器平台、.NET微框架、.NET Rx以及VB和C#程序语言。
那么,.NET开源的原因和目的何在呢?究竟是被其他开源社区攻占市场的无奈之举,还是突然看好开源,顺应潮流呢?
.NET开源让其只能在Windows系统上运行的不足消失了,它可以在更多更广的平台上发挥它的作用,无疑拓宽了微软的市场,让更多的Web服务器、服务导向架构以及云部署通过使用.NET构建框架,更加激烈地和Java框架竞争。
这样,开发人员开始拥有更多的选择,不会再因为系统平台的原因,仅仅学习某一特定的语言或框架。.NET和Linux、Mac OS的碰撞或许能给他们带来更多的灵感,无疑是一件值得高兴的事情。
但是,.NET的开源并不一定保证会让微软吸引大量的开发人员,因为.NET也只是众多语言中的一个而已,还有Java、PHP、Node.js、Ruby等其他语言。.NET的开源似乎让人觉得,越来越多的人远离.NET,如果依然固步自封,占据顶端位置的优势将不复存在,微软最后不得不做出这一选择,试图挽留开发人员。
无论如何,.NET开源都让人能够深入理解其底层的源代码,开发人员可以进行公开的修正与改写,这样有利于创新。
虽然服务器端的.NET技术得到了开源,但是客户端VS仍然太贵,对于小人物来说只能使用D版或者Express版的Community了。
微软慢慢增加开源的技术,看来以后不能讲微软和开源对立了,但是对于即将毕业的我,很多公司还是只招Java的有点小小郁闷。
PS:这里附带一篇文章《Microsoft Takes .NET Open Source And Cross-Platform》,原文链接 http://www.tuicool.com/articles/goto?id=3QnaUvB。下面是我的翻译~
到现在超过12年了,.NET框架一直是想为Windows开发Apps的开发人员使用的编程模型。但是在它让许多开发人员工具跨平台的努力中,微软今天宣布,从下一个版本开始,计划很快将.NET带到Mac和Linux,这样完全服务器端.NET变得开源(不是客户端.NET)。
微软公司开发部门副总裁S告诉我,大约600万开发人员在此框架基础上构建应用程序。“我们已经取得了广泛的成功”,他说。但是现在问题就来了,你如何带领.NET向前发展?今年早些时候,微软已经开源了.NET编译器,所以这次并不新鲜(尽管很多权威人士可能在同一句中看到“微软”和“开源”两个词时,仍然会再三考虑真实性)。
然而,查看微软近些年的历史,今天的宣布(开源.NET)并不完全算是重磅炸弹。例如,在今年的开发人员大会上,微软宣布.NET Foundation和组织也会接管这个项目。
不出所料,这个公司计划和支持Xamarin的Mono社区合作,其中Mono社区已经创建了基于C#的跨平台开源.NET框架。“我们将宣布这件事,并在接下来几个月里和Mono社区合作,”S告诉我,“我们在这方面和Xamarin朋友合作非常紧密”。
关于带领.NET跨平台和这个开源通告,S说,“我认为这对于.NET是一大步”。微软想要给.NET更广泛的平台,以及如何更好地这样做,如果不将它带到新平台的话。
微软云和企业组执行副总裁Scott在我几天前和他聊天时,也这样想。他还说,开发人员经常对微软说,虽然他们很爱.NET,但是因为它闭源而且只支持Windows,所以很多人都不用它。他告诉我,“星期三以后,所以不用.NET的原因都消失了~”。
S也说,他相信这将为微软伙伴提供许多新机遇。例如,今天Docker的业务发展与技术联盟领导Nick说,他认为“Docker开放平台的核心价值是应用程序可通过Docker 容器移植到任何基础架构。横跨所有主要操作系统平台的开源的.NET运行时意味着微软正逐步拓宽应用程序平台可移植性的概念。
微软计划使用.NET代码创建一个GitHub智囊团,以宣传造势。到底最终版本什么样子仍然有待观察,但是S希望,很快你就可以在微软Azure上Linux中的Docker容器运行一个.NET App。
为了保护开发人员,微软今天也宣布一项包含Mono项目和所有使用它的人的专利合同。
无论何时一个公司开源了某个项目,用户常常担心这意味着公司放弃它了。S和Scott都强调,这里情况是完全不同的。
Scott告诉我,“这完全不是终结,而是.NET充满希望地重生,以获得更多的开发人员”。
我对微软.NET开源的理解
标签:微软 开源 .net
原文地址:http://blog.csdn.net/crazygolf/article/details/41282737