笔记选自《C#与.NET3.0高级程序设计》一书,补基础。
Tag:CLR、CTS、CLS、BCL
.NET可以理解为一个新的运行库环境和一个全面的基类库。
.NET平台的三个构造块:CLR CTS CLS
CLR:
运行底层的正式名称是CLR(Commom Language Runtime公共语言运行库),主要作用是为我们定位、加载和管理.NET类型,负责大量底层细节工作(内存管理GC、安全检查等)
-
CTS:
CTS(Common Type System公共类型系统)规范完整地描述了运行库所支持的所有可能的数据类型和编程结构,指定了这些实体间如何交互,也规定了它们在.NET元数据格式中的表示
MSDN上面的解释是:http://msdn.microsoft.com/en-us/library/zcx1eb1e(v=VS.100).aspx
CTS定义了类型在CLR中的声明、使用和管理,也是运行时跨语言集成支持重要的一部分,CTS的表现机制:
1、建立一个框架使跨语言集成、类型安全和高性能执行成为可能
2、提供一个面向对象模型
3、定义了语言必须遵守的规则,保证不同语言的对象可以交互
4、提供一个包含原始数据类型的库
CTS支持下面5中类型:
Class、Structures、Enumerations、Interfaces、Delegates
CLS(Common Language Specification公共语言规范):
一种特定的支持.NET的语言可能不支持CTS所定义的所有特性。CLS是一个相关的规范,定义了一个让所有.NET语言都支持的公共类型和编程结构的子集。
如果构造的.NET类型仅暴露与CLS兼容的特性,那么可以肯定其他所有支持.NET的语言都能使用它们。
BCL(Base Class Libraries基类库):
出了CLR、CTS\CLS规范之外,.NET平台提供了一个适用于全部.NET语言的基类库(BCL)。
这个类库不仅封装了各种基本类型,还支持在实际应用中用到的一些服务。
CLR、CTS、CLS和基类库之间的关系: