1、C#基础

MFC(Microsoft Foundation Class,微软基础类库)

COM(Component Object Model,对象组件模型)

CLR(Common Language Runtime ,公共语言运行库)

1、NET框架的组成

.NET框架由三部分组成,如下图所示。

图片.png

(1)编程工具:IDE、编译器、调试器、网站开发服务端技术(ASP.NET,WCF等);
(2)执行环境—CLR(公共语言运行库):内存管理、垃圾回收、即时编译等;
(3)BCL(基类库):在.NET框架中使用的一个大的类库,也可以在程序中使用;
大大的改进的编程环境
面向对象的开发环境、自动垃圾收集、互操作性、不需要COM等

2、编译过程

2.1、编译成CIL(公共中间语言)

  .NET语言的编译器接受源代码文件,并生成名为程序集(程序集要么是可执行的,要么是DLL)的输出文件。下图阐述了这个过程。

image

2.2、编译成本机代码

  程序的CIL直到它被调用执行时才会被编译成本机代码,在运行时,CLR执行如下图所示的步骤。

image

这里有两个名词需要理解:
  (1)托管代码:使用.NET框架编写的代码成为托管代码(Managed Code),需要CLR。
  (2)非托管代码:不在CLR控制下运行的代码,比如Win32 C/C++ DLL,称为非托管代码(Unmanaged Code)。

3、核心组件—CLR

   毫无疑问,.NET框架的核心组件是CLR(公共语言运行时),它在操作系统的顶层,负责管理程序的执行。


图片.png

4、基础结构—CLI

   过去,各种不同语言的类型特征(例如,组成整数的位数对于不同的语言和平台就有很大差别)不一致,缺乏统一性。为了使不同语言编写的程序和库能够一起有序协作,必须要有一组标准。
  CLI就是这样的一组标准,它把所有.NET框架的组件连接成一个内聚的、一致的系统。它展示了系统的概念和架构,并详细说明了所有软件都必须坚持的规则和约定。CLI的组成如下图所示:


图片.png

  在CLI的众多组成部分中,最重要的是CTS和CLS。CTS(公共类型系统)定义了那些在托管代码中一定会使用的类型的特征,而CLS(公共语言规范)详细说明了一个.NET兼容语言的规则、属性和行为。

5、编译和执行的整个过程

图片.png

(注:从https://www.cnblogs.com/wyh19941210/p/7050882.html转载整理)

你可能感兴趣的:(1、C#基础)