1、.NET Framework层次结构
| FCL(Framework Class Library) |
| BCL(Basic Class Library) |
| CLR(Common Language Runtime) |
FCL:这是一个为开发人员提供的API类库,比如我们经常使用的框架:Windows Forms、ASP.NET、WPF、WCF等。这一层是直接面向开发人员的。
BCL:这是处于底层的类库,提供与操作系统层面交互的代码,如:IO、线程管理
CLR:它为程序提供一个托管的执行环境,是.NET Framework的执行引擎。CLR与.NET的关系等同于JVM与Java的关系,CLR本质上就是.NET的虚拟机。
2、CLI
要实现跨平台,必须解决两种类型的差异:编程语言的差异和运行时环境的差异。只有编程语言之间能够实现相互兼容,运行时环境能够得到统一,跨平台方可实现。CLI旨在解决这样一个问题:由不同高级编程语言开发的.NET应用能够在无须任何更改的情况下运行于不同的系统环境中。
CLI全称:Common Language Infrastructure。其中Common Language指的是通用语言,旨在解决各种高级开发语言的兼容性问题。Infrastructure指的是运行时环境,旨在弥补不同平台之间执行方式的差异。
编程语言分为编译型和解释型两类。前者需要通过编译器实施编译以生成可执行代码,CLI涉及的就是编译型语言。要实现真正的跨平台,最终需要解决的是可执行代码在不同平台之间的兼容和可移植问题。如果不同编程语言经过编译后生成的可执行代码是一样的,那么编程语言之间的差异就不再是一个问题了。
2.1、CIL
按照CLI的规

最低0.47元/天 解锁文章
2869

被折叠的 条评论
为什么被折叠?



