摘要:微软.NET的开源,让很多开发者欣喜若狂。同一时候也有很多人好奇其背后的故事,过去视开源为癌症的微软为什么会突然有这一举措,是出于无奈,还是顺应潮流,而这当中的种种也许能够用文中的六个观点来说明。 

上周。微软宣布.NET开源,并把它扩展到Linux和Mac OS平台上面。此举受到那些以前常怀疑微软意图的IT团体的热烈欢迎(好吧。我的好朋友Adrian Bridgwater是个例外,他暗示微软开源的举动仅仅是为了巩固其统治世界的地位)。



 

依据ZDNet主编Mary Jo Foley的记录,微软从2014年4月開始的一系列举动中,.NET开源是最新的举动。那时微软宣布将开源数个开发技术,包含ASP.NET、Roslyn.NET编译器平台、.NET微框架、.NET Rx以及VB和C#程序语言。

这些技术都能够通过一种新的方式创建.NET基础。Mary Jo Foley记录上提到,在这一新的举措里,微软在MIT开源许可证以下添加了很多其它.NET开源的列表,包含.NET通用语言库(CLR)、即时编译器、垃圾收集器和基类库。 



可是.NET的开源对于世界而言意味着什么?外界对于微软.NET开源主要有六种看法。

    1、让Windows成为世界的操作系统。

    自从2002年Windows奠定了基础以来,.NET就是Webserver、服务导向架构以及云部署须要选择的框架。

    它是Java框架的主要竞争对手,随着它仅仅能在Windows机器上执行这个约束的消失。那么将意味着全世界的工作都可在Windows上执行。

    2、微软关于.NET的公告就像苹果关于Mac OS X的公告一样大。Mac OS X已经成为企业计算环境的基石,这是一个不可否认的事实,而几年前。Mac OS X倾向于被归纳为图像艺术部门。微软.NET开源的举措获得各界点赞,尤其是在程序猿聚集的论坛以及社区。同一时候,关于这一举措的讨论也是遍布整个网页,微软的这一公告无疑是一个重磅炸 弹。 

    3、这意味着开发者有很多其它的选择。

    作为一个开发者。Sinclair Schuller相信.NET开源公告对于开发者来讲是一个大的政策。公告发布之后,他在邮件里提出一个.NET跨平台的版本号,意味着开发者有很多其它的选择。.NET开发者能够建立很多其它的应用程序,它们能够执行在很多其它的平台上面。这意味着会有很多其它的关于执行时间、语言和堆栈的竞争,从而能够让开发者学习怎样更好的进行开发工作。.NET与Linux的融合对于开发者来讲无疑是一件值得高兴的事情。

    4、.NET仅仅是众多选择中的一个。

    微软的举动也许是在承认一个事实,即.NET已经不再像之前那样占领着顶端的位置。正如Jonathan Vanian在GigaOm指出的那样,现在的开发人员已经渐渐的远离了.NET。.NET开源并不能保证微软将获得大量涌入的开发人员。开发人员仍然能够选择Java、PHP、Node.js、Ruby on Rails等其它语言。

    在某种程度上,该公司是在玩火,该公司将.NET开源执行于其它平台上面也许会让开发人员认为这仅仅是由于微软技术的缺乏。

    5、让平台作为服务的前端。当企业选用PaaS(平台即服务)时,多平台基础的建立将会变得更加easy。Schuller说:“.NET的所有开源将意味着它会支持Windows、Linux以及Mac。假设PaaS真如它声称的那样全然适应.NET。那么我希望PaaS架构的复杂度能够添加。 Linux平台上的应用在使用.NET框架后将变得更加简单和易用。

    ” 

    6、有助于自主创新。

    开源的意思是底层的源码公开修正和改写。.NET的开源能够让我们看到.NET是怎样在一个新的功能类型上被改写的,我们可能会在一个我们曾经不能想象的地方看到.NET。

.NET开源的背后:是无奈,还是顺应潮流?的更多相关文章

  1. 大数据小视角2:ORCFile与Parquet,开源圈背后的生意

    上一篇文章聊了聊基于PAX的混合存储结构的RCFile,其实这里笔者还了解一些八卦,RCfile的主力团队都是来自中科院的童鞋在Facebook完成的,算是一个由华人主导的编码项目.但是RCfile仍 ...

  2. 《转》.NET开源核心运行时,且行且珍惜

    转载自infoQ 背景 InfoQ中文站此前报道过,2014年11月12日,ASP.NET之父.微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣 ...

  3. 分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目

    分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经 ...

  4. 是时候给大家介绍 Spring Boot/Cloud 背后豪华的研发团队了。

    看了 Pivotal 公司的发展历史,这尼玛就是一场商业大片呀. 我们刚开始学习 Spring Boot 的时候肯定都会看到这么一句话: Spring Boot 是由 Pivotal 团队提供的全新框 ...

  5. 关于k8s这项大动作,预示着边缘计算迎来“开源”发展的新周期……

    在文章<最近在边缘计算领域,发生了一件足以载入物联网史册的大事…>我曾经提到Kubernetes(简称K8s)将从超大规模云计算环境,被带入到物联网边缘计算场景中. 事情有了新进展,从本周 ...

  6. 【转帖】是时候给大家介绍 Spring Boot/Cloud 背后豪华的研发团队了。

    是时候给大家介绍 Spring Boot/Cloud 背后豪华的研发团队了. 2019/01/03 http://www.ityouknow.com/springboot/2019/01/03/spr ...

  7. 万星开源项目强势回归「GitHub 热点速览 v.22.38」

    本周霸榜的 GitHub 项目多为老项目,比如:老面孔的 theatre 凭借极其优秀的动画功底连续三天霸榜 TypeScript 类目.借 Figma 被 Adobe 收购之风,又出现在 GitHu ...

  8. 【AllJoyn专题】基于AllJoyn和Yeelink的传感器数据上传与指令下行的研究

    接触高通物联网框架AllJoyn不太久,但确是被深深地吸引了.在我看来,促进我深入学习的原因有三点:一.AllJoyn开源,对开源的软硬件总会有种莫名的喜爱,虽然或许不会都深入下去:二.顺应潮流,物联 ...

  9. .net core快速上手

    2014年11月12日的Connect ();开发者活动上宣布将.NET堆栈基于MIT协议开源,并且提供开源保证,托管在Github上.当时的版本与最终目标相距甚远,然而有一点可以肯定的是,这是一个与 ...

随机推荐

  1. 09-JavaScript高级

    今日知识 1. Dom(文档对象模型) 2. Bom(浏览器对象模型) 3. 总结 Dom 1. 获取id为div1的元素对象. * var result=document.getElementByI ...

  2. .NET微服务架构及API网关

    一.MSA简介 1.1.MSA是什么 微服务架构MSA是Microservice Architecture的简称,它是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相通讯.互相配合, ...

  3. MessageDigest的功能及用法(加密解密)

    MessageDigest的功能及用法 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法.信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度 ...

  4. Android Fragment 初步解析

    Fragment经常在我们的开发中见到,但是自我感觉对Fragment的理解还是处于初级的阶段,接下来我将用几篇文章尽量深的解析Fragment 让我们开始吧!!! Fragment的生命周期 Fra ...

  5. Session和Cookie对比详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  6. C#读取EXCEL 并输出到文本框

    #region 加载数据到DataGraidView private void button1_Click(object sender, EventArgs e) { string excelPath ...

  7. MongoDB基本操作总结

    MongoDB语法总结:插入操作:单条插入语法 : insertOne()示例: db.getCollection('MY_TEST').insertOne({"日期" : &qu ...

  8. 前端开发—CSS 盒子、浮动、定位

    盒子模型 margin padding border content margin:            用于控制元素与元素之间的距离:body自带 8 像素的margin 需要手动去除.(快递盒之 ...

  9. 解决AttributeError: 'module' object has no attribute 'main' 安装第三方包报错

    1.找到pycharm 目录下的 \helper\packaging_tool.py 文件 2.用新版pycharm 的packaging_tool.py 替换 旧版 同名文件 文件代码如下: imp ...

  10. 《Exception》第八次团队作业:Alpha冲刺

    一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 1.掌握软件测试基础技术.2.学习迭代式增量软 ...