C#点滴 – CLR, CTS…等等基本概念
2010-03-24 20:10
253 查看
1. CLR – Common Language Runtime
为.NET应用程序提供运行环境。定位、加载和管理.NET类型,同时也负责一些底层细节的工作,如内存管理、创建应用程序域、线程和对象上下文边界,安全检查等等。
2. CTS – Common Type System
完整描述了运行库所支持的所有可能的数据类型和编程结构,指定了这些实体之间如何交互,也规定了它们在.NET元数据格式中的表示。
CTS包括5种基本类型:class, interface, enum, delegate and struct
CTS可能的成员:构造器,终结器,静态构造函数,嵌套类型,运算符,方法,属性,索引器,字段,只读字段,常量,事件
3. CLS – Common Language Specification
定义了一个让所有.NET语言都支持的公共类型和编程结构的子集。这个可以说是所有语言特性的一个子集,而CTS是所有语言特性的一个合集。
CLS定义了一套规则,当程序完全遵守这套规则时,才能确保你的程序能被所有其它.NET语言正确调用。可以通过特性[assembly: System.CLSCompliant(true)]来进行CLS规则验证。
4. BCL - Basic Class Library
所有.NET语言都可以调用的一套公共类库,封装了很多最基本的类型和服务。
5. Managed/Unmanaged code
运行在CLR中的代码叫做managed code,反之称为unmanaged code。
6. C#的优点
不需要指针
自动管理内存 - 垃圾回收机制
面向对象语言
操作符重载
支持Attribute
泛型编程更安全
匿名函数的支持
简化的委托/事件模型
partial class
3.5支持的特性有:
LINQ
匿名类型的支持
扩展方法来扩展现有类型
Lambda语法
新的初始化对象语法
7. IL, CIL或者MSIL
中间语言,或者成为公共中间语言。所有的.NET语言代码编译后都转换为中间语言。目的是为了支持多语言。
8. 程序集内容
主要包含了编译过的IL指令集、类型metadata和manifest(程序集本身的metadata)。类型metadata的作用主要是反射、对象序列化、晚期绑定、wcf以及vs的智能感知等等。manifest除了记录本程序集的版本、模块号之外,它还记录了让程序集正常运转的外部程序集信息。
9. JIT - just in time
即时编译器。程序运行是尝试编译IL指令,生成机器可识别的机器码,并保存编译结果。下次调用相同代码时不需要重新编译。
10. namespace
简单说就是对.NET类型的分组机制。我们最常用到的系统namespace有System.Data, System.IO等等。除了System打头的命名空间,最有用的还有以Microsoft开头的命名空间,包含在其中的类型一般都和微软操作系统服务相关,不能运行在其他OS上,如MAC,Linux等等。
11. 查看IL,反编译
使用.NET自带工具ildasm可以查看程序集IL。使用reflector可以反编译程序集,你可以从http://www.red-gate.com/products/reflector/下载。
12. .NET的跨平台性
简单说就是.NET是跨语言的平台,同时也支持跨平台的语言。跨语言的平台是指它支持多种编程语言,支持跨平台的语言理论上是说.NET可以在非Windows之外的OS上运行。不过,对于后者,MS本身并没有做这个工作,仅仅有2个开源的架构在提供有限的支持:
http://www.mono-project.com - 支持各种版本的Linux、Win32以及Mac OS X
http://www.dotgnu.org/ - 支持Win32, AIX, BeOS, Mac OS X, Solaris and Linux
为.NET应用程序提供运行环境。定位、加载和管理.NET类型,同时也负责一些底层细节的工作,如内存管理、创建应用程序域、线程和对象上下文边界,安全检查等等。
2. CTS – Common Type System
完整描述了运行库所支持的所有可能的数据类型和编程结构,指定了这些实体之间如何交互,也规定了它们在.NET元数据格式中的表示。
CTS包括5种基本类型:class, interface, enum, delegate and struct
CTS可能的成员:构造器,终结器,静态构造函数,嵌套类型,运算符,方法,属性,索引器,字段,只读字段,常量,事件
3. CLS – Common Language Specification
定义了一个让所有.NET语言都支持的公共类型和编程结构的子集。这个可以说是所有语言特性的一个子集,而CTS是所有语言特性的一个合集。
CLS定义了一套规则,当程序完全遵守这套规则时,才能确保你的程序能被所有其它.NET语言正确调用。可以通过特性[assembly: System.CLSCompliant(true)]来进行CLS规则验证。
4. BCL - Basic Class Library
所有.NET语言都可以调用的一套公共类库,封装了很多最基本的类型和服务。
5. Managed/Unmanaged code
运行在CLR中的代码叫做managed code,反之称为unmanaged code。
6. C#的优点
不需要指针
自动管理内存 - 垃圾回收机制
面向对象语言
操作符重载
支持Attribute
泛型编程更安全
匿名函数的支持
简化的委托/事件模型
partial class
3.5支持的特性有:
LINQ
匿名类型的支持
扩展方法来扩展现有类型
Lambda语法
新的初始化对象语法
7. IL, CIL或者MSIL
中间语言,或者成为公共中间语言。所有的.NET语言代码编译后都转换为中间语言。目的是为了支持多语言。
8. 程序集内容
主要包含了编译过的IL指令集、类型metadata和manifest(程序集本身的metadata)。类型metadata的作用主要是反射、对象序列化、晚期绑定、wcf以及vs的智能感知等等。manifest除了记录本程序集的版本、模块号之外,它还记录了让程序集正常运转的外部程序集信息。
9. JIT - just in time
即时编译器。程序运行是尝试编译IL指令,生成机器可识别的机器码,并保存编译结果。下次调用相同代码时不需要重新编译。
10. namespace
简单说就是对.NET类型的分组机制。我们最常用到的系统namespace有System.Data, System.IO等等。除了System打头的命名空间,最有用的还有以Microsoft开头的命名空间,包含在其中的类型一般都和微软操作系统服务相关,不能运行在其他OS上,如MAC,Linux等等。
11. 查看IL,反编译
使用.NET自带工具ildasm可以查看程序集IL。使用reflector可以反编译程序集,你可以从http://www.red-gate.com/products/reflector/下载。
12. .NET的跨平台性
简单说就是.NET是跨语言的平台,同时也支持跨平台的语言。跨语言的平台是指它支持多种编程语言,支持跨平台的语言理论上是说.NET可以在非Windows之外的OS上运行。不过,对于后者,MS本身并没有做这个工作,仅仅有2个开源的架构在提供有限的支持:
http://www.mono-project.com - 支持各种版本的Linux、Win32以及Mac OS X
http://www.dotgnu.org/ - 支持Win32, AIX, BeOS, Mac OS X, Solaris and Linux
相关文章推荐
- C#点滴 – CLR, CTS…等等基本概念
- C# CLR, CTS…等等基本概念
- C#点滴--几个基本概念
- .NET几个常用的基本概念--CLR\受管制代码\MSIL\CTS\CLS\JIT\GC
- C#.NET中的CTS、CLS和CLR
- 黑马程序员_C#的一些基本的概念
- C#之CLR/CTS, CLS
- C#学习基本概念之结构与类
- C#学习基本概念之访问修饰符
- C#学习基本概念之属性与索引器之间的比较
- C#学习基本概念之迭代器(Iterator)
- C#学习基本概念之构造函数之五---编写复制构造函数
- C#学习基本概念之表达式树(二)--ParamterExpression
- C#点滴 – 内建基本类型
- 与类相关基本概念----Beginning Visual C#
- C#网络编程(基本概念和操作) - Part.1
- C#网络编程(基本概念和操作) - Part.1
- C# .NET 基本概念
- C#网络编程(基本概念和操作) - Part.1
- C#重要概念之公共语言运行时(CLR)