.NET和c#:
.NET是一个框架,一般称.net Framework。
c#是一个.NET框架下的编程语言。
缩写:
程序集:
CIL(Common Intermediate Language,公共中间语言):程序集里的执行代码。其他术语:IL(Intermediate Language)和MSIL(Mircosoft Intermediate Language)。
注:程序集中包含CIL、类型信息、安全信息。
公用语言运行库:
CLR(Common Language Runtime,公用语言运行库):是.NET的执行环境。包括:内存管理、异常处理、垃圾收集、反射服务、JIT编译器、类加载器、安全服务。
GC(Garbage Collector,垃圾收集器):是CLR中的一个服务,它能自动管理内存。
a. GC自动从内存中删除程序不再访问的对象。
b.释放内存和检查内存泄漏。
JIT(Just-in-Time,即时编译器):把程序集中的可执行代码编译成本机代码。
BCL(Base Class Library,基类库):是.NET框架提供的一个基础库类。
公共语言基础结构:
CLI(Common Language Infrastructure,公共语言基础结构):是一组阐述了系统的架构,规则和约定的规范。
CTS(Common Type System,公共类型系统):定义了那些在托管代码中一定会使用的类型的特征。
注:所有类型都继承自公共的基类-object
CLS(Common Language Specification,公共语言规范):详细说明了一个.NET兼容编程语言的规则,属性和行为。
其他:
GAC(Global Assembly Cache,全局程序集缓存):作用是可以存放一些有很多程序都要用到的公共Assembly。
托管代码(managed code):为.NET框架编写的代码称为托管代码。
非托管代码:unsafe,不在CLR控制之下运行的代码。
.NET框架组成:
编程工具,CLR,BCL
程序编译和运行期过程:
编译:源文件-->编译器-->程序集
运行:程序集-->CLR(JIT编译器)-->本机代码-->操作系统服务。
注:程序集中的可执行代码只有在被调用时才会编译成本机代码,而且只被编译一次。