《C#从现象到本质》读书笔记(一)第1章 .NET基础知识

时间:2024-06-10 19:33:38

最近根据博客园大神的推荐,买了本《C#从现象到本质》。做一点读书笔记。

由于不懂IL和ildasm,winddg,太深奥,理解不了,就牛嚼草一样,先总结第一遍读书,自己总结的知识点了。不知道这样会不会侵权,如果侵权了,请告诉我,我撤销这些。

第一部分“基础知识”

第1章 .NET基础知识

CLR:公共语言运行时

CTS:公共语言系统

CLS:公共语言规范

FCL:框架类库

BCL:基础类库

CLI:公共语言基础设施

DLR:动态语言运行时

TPL:任务并行库

JIT:即时编译

COM:组件对象模型

GAC:全局程序集缓存

.NET框架其最主要的两个组成部分是公共语言运行时(CLR)和框架类库(FCL),基础类库(BCL)是框架类库的一个子集。运行于底层的是公共语言运行时CLR,它是公共语言基础设施(CLI)的一个实现。CLR最主要的两个组成部分是CTS(公共语言系统)和CLS(公共语言规范)。

.NET框架的主要结构

《C#从现象到本质》读书笔记(一)第1章 .NET基础知识

编程语言转化成机器码,转化的过程分为两种主要的形式,即编译和解释。

IL语言是一个基于栈的、面向对象的高级语言。

托管代码是必须在CLR下执行的代码,而非托管代码则不需要CLR的支持就可以运行。

FCL就是我们用到的所有外部参考,而BCL是其中不需要手动引用的那部分。

不同的程序集可以共享一个命名空间。

程序集是一个可以寄宿于CLR中的、拥有版本号的、自解释、可配置的二进制文件,程序集的扩展名为exe或dll。

CLR是和程序集一起工作的。

单模块程序集的结构就是它的托管模块加上清单和资源文件。在任何时候,IL代码和元数据都是存在于托管模块中的。

程序需要资源时才会加载对应的程序集。

IL中的关键字可以分为三类:指令、特性和操作码。

程序集的IL和元数据支撑着.NET的运作。IL为各种框架语言建立了一个共同的编译目标,也为接下来的JIT编译做准备。JIT是最终翻译为机器码的编译器,它会做更多的优化,并通过使用不同的编译方式来利用这些优化。