码迷,mamicode.com
首页 > Web开发 > 详细

.NET Core与.NET Framework、Mono之间的关系

时间:2015-02-17 14:04:52      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

随着微软的.NET开源的推进,现在在.NET的实现上有了三个.NET Framework,Mono和.NET Core。经常被问起Mono的稳定性怎么样,后续Mono的前景如何,要回答这个问题就需要搞清楚这三个.NET 实现之间的关系和将来如何演进。

到目前为止(2015.2.17),微软在Windows平台上的.NET Framework的实现最为完整,但是.NET Framework和windows操作系统有很深的绑定,难以跨平台。Xamarin主导的Mono项目在.NET 的基础类库实现上有一些不够完美。随着2014年 Xamarin和微软发起.NET基金会,微软在2014年11月份 开放.NET框架源代码。在.NET开源基金会的统一规划下诞生了.NET Core 。也就是说.NET Core Framework是参考.NET Framework重新开发的.NET实现,Mono是.NET Framework的一个开源的、跨平台的实现。经常有朋友对Mono和.NET Core 有疑问,微软主导开发了.NET Core,那么还有Mono什么事呢。回答这个问题就是要搞清楚我们有各式各样的操作系统,windows,linux,mac,bsd,unix,各种操作系统之间的差异是很大的,最明显的就是UI方面,了解这些差异就很容易搞清楚Mono将来还是很有事情做的了。

.NET Core是一个模块化的开发栈,它是未来的所有.NET平台的基础。.NET Core Framework团队的高级程序经理Immo Landwerth在博客中也提到.NET Core开源有两大原因:

作为跨平台的.NET的基础。

构建并受益于一个更为强大的生态系统。

比如.NET和Mono两者是完全独立的,很多代码是平台无关的,所以很多工作都是重复劳动。合作构建一个单一的软件栈是最理想的。根据文章 .NET Core Open Source Update,目前.NET Core 只完成了.NET Framework的25%的功能。

技术分享

.NET平台有三大件:

、C#语言,也就是ECMA-334,这是天生跨平台的,C#的附带内容,你应该彻底的明白公共运行时(CLR)。CLR以及公共语言基础(CLI)标准在ECMA-335中有定义,这也是CLR标准。

2、Visual Studio,这是天生不能跨平台的,Mono有Xamarin studio;

3、.NET Framework基础类库。如果.NET Framework基础类库不能跨平台,没人会关心.NET的跨平台。所以微软不得不投入大量精力去开发全新的.NET Core Framework(就是现在github上的https://github.com/dotnet/corefx ),一边将.NET Framework中有用的代码搬过来,一边根据跨平台的需求重新实现。

从上面的分析,.NET跨平台的最大障碍就是基础类库的跨平台,由此也可以看出.NET基础类库的重要性。Mono也是在基础类库的实现上存在瑕疵,比如对WPF,WCF等框架的支持上不完善。像WPF这样的用户界面开发技术,各个平台上都有自己的原生开发库,用户界面应用原生开发,iOS应用应该用iOS的用户界面库才会让人觉得在iOS上最合适,.NET应用应该用微软的Windows用户界面库。

随着.NET Core Framework的开发完成,.NET FrameworkMono将基于.NET Core重新构建。.NET Framework将成为.NET CoreWindows上的一个发行版,Mono将成为.NET Core的一个跨平台发行版。

.NET Core与.NET Framework、Mono之间的关系

标签:

原文地址:http://www.cnblogs.com/shanyou/p/4295163.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!