.NET开源的背后:是无奈,还是顺应潮流?

摘要:微软.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就是Web服务器、服务导向架构以及云部署需要选择的框架。它是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(平台即服务)时,多平台基础的建立将会变得更加容易。Schuller说:“.NET的全部开源将意味着它会支持Windows、Linux以及Mac。如果PaaS真如它声称的那样完全适应.NET,那么我希望PaaS架构的复杂度可以增加。 Linux平台上的应用在使用.NET框架后将变得更加简单和易用。”
  6. 有助于自主创新。开源的意思是底层的源代码公开修正和改写。.NET的开源可以让我们看到.NET是如何在一个新的功能类型上被改写的,我们可能会在一个我们以前不能想象的地方看到.NET。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

r.java没有生成_R.java文件没有生成

01R.java是ADT工具产生的新创建Android工程R.java文件并没有产生,必须先运行Bulid或RUN(运行)程序,才会产生。02 R.java文件丢失,必要急,修复很简单方法:右击你的工程(项目)——>Android Tools——>Fix P…

什么是ASP.NET Boilerplate Project(ABP)框架

使用.NET技术进行开发已经多年,偶尔一次网络上搜索.NET开发框架,看到了ABP这个框架,引起了我极大的兴趣,于是决定对该框架进行深入学习和研究,并将过程全部记录如下,对自己也是一次学习和总结,同…

使用ABP打造SAAS系统(2)——前端框架选择

一、流行框架比较 作者用过的前端框架不少,曾经还在一个项目中同时使用两套框架控件(年少无知、效率特慢),所以可供选择的前端框架有不少: easyui: 优点:非常成熟的框架,基于iframe…

java中针对数字怎么判断_java如何对输入的数字进行判断

java如何对输入的数字进行判断发布时间:2020-06-19 13:19:58来源:亿速云阅读:99作者:鸽子java的Scanner类提供了nextInt、nexFloat、nextDouble等方法,可以像类似C语言的scanf那样读取指定类型的数字。首先定义一个Sca…

java tostring 库_java重寫toString()方法

toString()方法是Object類的方法,調用toString()會返回對象的描述信息。1)為什么重寫toString()方法呢?如果不重寫,直接調用Object類的toString()方法,打印的是該對象的內存地址(類名哈希碼值)。如下代碼所示:classPer…

java 一元线性回归_一元线性回归的java实现

我们有两组数据,比如连续5年的pv与uv。我们想预测一下,uv达到500k那么pv会是多少。当然更有意思可能是,如果销售额是500w的话,pv会是多少。机器学习里的一元线性回归方法是比较简单的方法,就是我们猜是满足ywxb的。那么&#xff0…

java大神请出来_求java大神,请分析以下代码,写出执行结果,并解释每行结果输出的原因。...

求java大神,请分析以下代码,写出执行结果,并解释每行结果输出的原因。classPlate{publicPlate(){System.out.println("inPlateconstructor");}}classDinnerPlateextendsPlate{publi...求java大神,请分析以下代码&#x…

【转】ELK是什么能做什么怎么做

作者:蛙课网 链接:https://www.zhihu.com/question/338932215/answer/777380560 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 为什么用到ELK: 一般我们需要进行日志分析场景&…

java中的并发类_java中并发常用工具类

前言:在你无聊的时候,想想比你优秀还努力的人,也许就不觉的无聊了今天下午没事干把买的java并发编程艺术这本书拿出来看了看,看了下也记不住,还是好记性不如烂笔头,今天讲四个并发中可能会用到的工具类,分别是:CountDownLatchCyclicBarrierSemaphoreExchangerCountD…

github迁移到gitee相关问题

为什么要从github迁移到gitee(国内github版)? 1. github对于国人来讲,速度较慢。例如: 浏览个技术文档点击个链接半天跳不过去pull、push、clone个代码太慢个人版(免费版)没有私人仓库&#xf…

java s1=abc s2=abc s1==s2_经典问题:String s1 = abc 与 String s2 = new String(abc)的区别...

这是以前刚学Java那会经常被问到的问题,并且也会经常出现在面试中。这个问题不仅仅只局限于Java,可以适用于其他大部分语言,正好最近有个小朋友在学编程,特此整理一下。String s1 "abc" ;String s2 new String("…

NAS、CIFS、NFS之间的关系

经常会听到或看到有人将NAS和CIFS/NFS相提并论,其实是对存储的理解有误。 NAS,网络附加存储,中心词“存储”,是的,它是一个存储设备。比如我装个openfiler或freenas系统,再加几块硬盘,对外提供…

线程池简单实现java_简单实现java线程池

package com.ty.thread;importjava.util.HashSet;importjava.util.Set;importjava.util.concurrent.BlockingQueue;importjava.util.concurrent.LinkedBlockingQueue;/***authorTaoyong* date 2018年5月17日* 天下没有难敲的代码!*/public classThreadPoolExecutor …

【转】abp vNext微服务框架分析

abp vNext新框架的热度一直都很高,于是最近上手将vNext的微服务Demo做了一番研究。我的体验是,vNext的微服务架构确实比较成熟,但是十分难以上手,对于没有微服务开发经验的.net人员来说几乎是看不懂的,所以研究一番后再…

java线程的创建与执行_Java多线程的创建和运行

1.多线程的好处多线程是一个很有用的东西,它使的系统可以同时运行多个任务,提高程序的执行效率。大家平时可能没有注意到,其实我们电脑能同时执行多个程序的基本原理就是多线程。每一个程序都是一个进程,而线程则是进程下独立的执…

SQL SERVER data tier application 的作用及如何使用SSDT进行SQL数据库的自动化部署到生产环境和版本控制

这个是管理员用来发布数据库所有的脚本用的,自SQL2008以后,微软开始将数据库的开发整合到VS2010上,用户可以将数据所有的相关对象打包成一个DAC包,让管理通过extract data-tier application发布到服务器上。就好像你把代码变成dll…

bitcount java_Java.math.BigInteger.bitCount()方法实例

全屏Java.math.BigInteger.bitCount()方法实例java.math.BigInteger.bitCount()返回此BigInteger的二进制补码表示的位,从它的符号位不同的数字。实现位向量样式集上BigIntegers的时候,此方法很有用。声明以下是java.math.BigInteger.bitCount()方法的声…

java character是什么意思_Java Character 类

利用Character提取字符串中的大写字母和小写字母:public class UpperLowerCase {/** 利用Character类提取字符串中的大写字母和小写字母* auther Anthony-Z*/public static void main(String[] args) {String sr1 "I Like JAVA ! I learn Java everyday."…

php 和jsp,jsp和php哪个好?jsp和php的简单比较

jsp和php这两个Web开发技术哪个好?这个问题应该会有很多人问,但是每种开发技术都有各自的优缺点,所谓的哪个好,不过是看你更擅长使用哪一种技术,所以今天我们来对比一下jsp和php,介绍jsp和php之间有什么区别…