.NET Framework
和字面上意思一样,就是框架。基于.Net开发的产品就是基于.Net Framework的产品。所以这里就会出现版本问题。比如说有的程序是基于.Net Framework 4.5 的,可是你电脑上只有.Net Framework 4.0,那就不能运行了。
CIL JIT CLR
C#或别的.Net语言写好以后,要先经过编译器编译,编译以后的语言就是通用中间语言(CIL: Common Intermediate Language).这些CIL代码存储在一个程序集中(.exe 或 .dll)。当程序集运行的时候,首先要通过JIT编译器(Just In Time)把CIL编译为本机代码,最后,这个本机代码会在CLR环境下执行,CLR就是(Common Language Runtime)公共语言运行时。CLR除了管理程序的执行,还负责垃圾回收。当然,用C#写的程序是必须在CLR托管中运行的,还有一些比如用C++的程序可以为非托管。