.Net Core 真能令微软的.Net 跨平台“蔓延”?

什么是.Net编程

.Net 自己就是基于公共语言基础架构(CLI)实现的平台独立的公共语言开发平台,只是自2006年成为规范以来的CLI,只有Windows本身支持罢了(mono除外)。微软的.Net Framework 就是CLI的实现,称之为CLR(公共语言运行时)。其核心部分就是对CLI的虚拟执行系统(VES)基于Windows的实现。CLR其实就至关于Java的虚拟机运行时JRE。本质上VES仅为编译成公共中间语言(CIL)指令码的应用提供虚拟执行环境。CIL以前被称之为MSIL,和原生汇编语言同样,是开发者不友好的。因此基于CIL,微软为开发者提供了开发.Net 应用程序的高级编程语言,如C#、F#及VB.Net等。架构

C#开发的.Net App为何不能跨平台app

公共语言基础架构(CLI)自己就是为跨平台设计的。但当初,微软应该是出于Windows的垄断考虑,根本就没打算基于其余的OS实现VES,因此C#的developer基本上都是Windows的developer了。C#的开发的应用系统基本上是基于Windows平台运行。框架

.Net Core 是什么,其如何实现跨平台编程语言

其实只要基于Linux实现CLI,主要是其VES,C#开发的app就能够在Linux上运行。 固然,因为过去的.Net Framework提供了不少特定于Windows上的UI框架 如WPF,Windows Forms,基于这些框架的APP只能是理论上能够在Linux上运行,但实际支持的代价会比较高,或许根本不现实。spa

因此, .Net Core诞生了。.Net Core就是对.Net Framework进行的裁剪 (把上述UI相关的framework去除),实现的一个相似于JRE同样的CLR,而后同时实现多个OS的VES,从而实现了跨平台。操作系统

微软为何须要.Net Core设计

微软之因此愿意这么作,在某种程度上说,是被逼的,或者说是顺应历史潮流而为之。在当下,风起”云“涌的大环境下,得益于Azure,微软顺利从业已衰弱的Windows业务顺利转型到云服务提供商。而做为其所提供的云服务模式之一PaaS,必须能提供客户须要的OS,不单单是Windows。那么它固然但愿Azure上的不一样的操做系统运行的都是使用本身提供的开发技术开发的应用咯。orm

.Net Core 前景会风光无限吗ci

但是,经过虚拟执行环境实现开发的应用跨平台运行,JAVA从其诞生之日起就是这么作的。而时至今日,不少语言新秀争奇斗艳,被Oracle收购的JAVA都容颜渐老了。。。 C#真能依靠才实现了跨平台的.Net Core焕发第二春?

参考

CLI Specification

http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf

相关文章
相关标签/搜索