.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编译器)–>本机代码–>操作系统服务。

  注:程序集中的可执行代码只有在被调用时才会编译成本机代码,而且只被编译一次。