微软开放.NET框架源代码和Mono

上个月Microsoft开源了Bond,二个跨平台的格局化数据处理框架。Bond援救跨语言的体系化/反体系化,协助有力的泛型机制能够对数据举行实用地拍卖。该框架在Microsoft公司之中的高扩充服务中获得了广大的行使。方今该类型早就依照宽松的MIT许可开源在了GitHub上,当前版本协理C++、C#和Python,可运维在Linux、OS-X和Windows平台上。Bond的编写翻译器一心是使用Haskell编写的。

微软一贯在通往越发开放的主旋律努力。例如,集团首席营业官萨特亚Nader拉(Satya
Nadella)在Windows
十预览发表会上注脚微软喜欢Linux,那并不意想不到,可是对于一家将Linux视作威吓的信用合作社来说,发表如此的注明依然需求一点都不小的胆略和气魄的。

Bond与其余种类化系统有着众多相似性,例如Google Protocol
Buffers
Thrift以及Avro

201四年七月1二十七日,ASP.NET之父、微软云总括与合营社级产品工程部推行副老董ScottGuthrie,在Connect全世界开拓者在线会议上宣布,微软将开源全部.NET大旨运维时,并将.NET
扩大为可在 Linux 和 Mac OS
平台上运营。.NET主题运维时将依照MIT开源许可商榷发表,当中校囊括施行.NET代码所需的满贯项目——CL福特Explorer、JIT编写翻译器、垃圾搜聚器(GC)和宗旨.NET基础类库。别的,微软还揭发了Visual
Studio Community 2013,这是Visual
Studio的2个新的无偿版本。.NET使用MIT协议开源,让它在Linux和OS
X系统上也能够运转。开辟商们将可以在全世界多个最大的操作系统上使用.NET框架了。具体内容能够参考http://www.hanselman.com/blog/AnnouncingNET2015NETAsOpenSourceNETOnMacAndLinuxAndVisualStudioCommunity.aspx,那里上图更直观:

  • Bond使用IDL风格的言语定义音信 
  • 它会将兼具的Bond数据类型映射到当地语言数据类型

图片 1

然而Bond的贯彻有贰个不小的不等:它并不曾硬编码类型映射。用户能够以插件的不二法门定制中央架构逻辑之外的内容——是从Bond形式只怕从自定义的门类种类化、有线格式是什么、是还是不是将自定义元数据放到有效载荷中等等。例如,在C++中暗许是std::vector那样的STL容器,可是用户能够很轻巧地映射自定义的档次——在3个变通的C++结构体中动用Python的boost::multi索引容器也许在二个变迁的C++类中校多个unit6四形式域映射为多个System.DateTime域。Bond生成的C++结构体仍可以使用自定义的分配器。

Visual Studio Community
20一3将免费提要求用户,同时还具有全部的可增加性。那包涵了5000五个Visual
Studio的扩张件。最后,与Windows 十预览版同样,微软还公布了Visual Studio
20一5预览版和.NET 201五预览版。安装Visual Studio社区版了。

Stack
Overflow上的贰个帖子对Bond和GoogleProtocol Buffers做了3个足够好的相比较:

http://blogs.msdn.com/b/onecode/archive/2014/11/12/free-visual-studio-community-edition-released-today.aspx 有了它,你还足以无需付费下载和平运动用四千四个Visual
Studio插件。当中包涵
示范代码浏览器Unity插件,等等。

优点:

  • Bond协助泛型 
  • Bond有两样的连串用于表示集合:vector, map, list 
  • Bond扶助项目安全的惰性反连串化(bonded) 
  • Bond扶助两种格式(火速二进制、紧密二进制、XML和JSON)以及封送与转码

缺点:

  • Bond不支持差别类型的固化、可变整数编码。在Bond中整数如何编码是由输出格式(快捷二进制照旧紧密2进制)决定的,但是在Protocol
    Buffers中整数类型始终有定位的尺寸:fixed32和fixed6四。
  • Bond不支持union类型 (Protocol Buffers支持)
  • Bond并没有Java实现

.NET Core Framework共青团和少先队的尖端程序老总Immo
Landwerth,也在.NET框架的合法博客上宣布.NET
Core
开源的音信。.NET
Core是3个模块化的开拓栈,它是前景的全数.NET平台的根基。

另外,在这个Reddit的公告中有不少与Bond的兑现和力量荣辱与共的答案。

Immo Landweth提到,之所以要开源.NET Core,有两大原因:

设想到明天正值有越多的人以微服务的样式利用SOA,数据编组/解组的难题变得尤为主要。对于已部分种类化系统来说,Bond能够成为2个不行实用的候选方案。

  1. 用作跨平台的.NET的基本功。
  2. 创设并收益于多少个更为强大的生态系统。

比如.NET和Mono两者是截然独立的,繁多代码是阳台无关的,所以重重办事都以重复劳动。同盟营造一个10足的软件栈是最精良的。

Mono 老大Miguel de Icaza 也在博客中针对这么些事件公布博文:Microsoft Open
Sources .NET and
Mono
,
0九年公开源代码应用的参阅协议与 Open Source Initiatives 定义的“开放源代码”系统是争辩的,所以 Mono 的人既无法看,也不可能用。当然今后这几个限制都未曾了。.NET基于MIT那10000分宽松的许可协议开源,其余微软还提供了一份专利承诺,都有助于.NET得到运用,同时防止开源、Unix和自由软件社区曾出现过的无休止数年的标题。他的团体能够采取微软的开源达成,来缓解Mono代码库不完整大概存在错误的地点。Mono团队的下一步安插是将.NET开源代码整合进来Mono。这些周末mono项目会更新任何布署,等着周末的好音讯。

微软开源.NET一事在社区引发了强烈反响,哈克News上有关的议论1度有800多条。许多重视C#言语的Unix/Linux用户对此充足欢迎。也有人认为,到了那一个时期,在设有代替选择的状态下,开荒者现已未有理由为操作系统付费。他们得以采取云服务。微软此举只是吸引越多开辟者使用其Azure服务。有意思的是,开垦者社区总少不了语言优劣的争辨,不少人感觉C#是最杰出的言语,大多少人就语言的三陆玖等张开了研讨。

 

绽开与封闭是伪命题,巨头能够变着把戏玩

微软发布.NET开采条件将开源 协助Mac OS
X和Linux

微软发表将开源.NET主题运转时,并将支撑Linux和Mac
OS

拥抱开源,走向跨平台:微软健全的端到端消除方案让开垦者如虎得翼

微软揭露新一款模拟器:用VS做Android开垦更易于

微软借力.NET开源跨平台支撑,布局物联网平台开垦

从.NET的开源到纳徳拉时期的「新微软」

.NET 開源3部曲(一): .NET 基金會及 Roslyn
編譯器

.NET 開源三部曲(贰): ASP.NET vNext 開源及 .NET
Core

.NET 開源三部曲(三):怎样迎接新的 .NET
時代

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图