北京北大青鸟校区学术部资深技术老师在授课过程中发现,很多学员在学习ASP.NET技术的时候,依旧对一些基本的术语搞不明白。这会非常阻碍学习的进步。于是今天,北京北大青鸟校区老师就为同学们集中讲解一下ASP.NET必须知道的术语
1、什么是 CLS?
CLS = Common Language Specification—通用语言规范。它是预计所有 .NET 语言都支持的一个 CTS 的子集。这一思想是让使用 CLS-相容类型的任何程序和以任何语言编写的 .NET 程序可以互相操作。理论上它能允许在不同的 .NET 语言之间有紧密的互操作性—例如允许从一个 VB 类里继承一个 C# 类。
2、什么是 CTS?
CTS = Common Type System—通用类型系统。它是指 .NET 运行库所理解、并且随后 .NET 应用程序可以使用的一系列类型。然而,注意不是所有的 .NET 语言都将支持 CTS 中的所有类型。CTS 是 CLS 的超集。
3、什么是 CLR?
CLR = Common Language Runtime—通用语言运行库。CLR 是一组标准资源集合,无论编程语言是什么,所有 (理论上) .NET 程序都能从中获益。Robert Schmidt (Microsoft) 在他的 MSDN PDC# 文章 中列出了以下 CLR 资源:
面向对象的编程模型 (继承、多态、异常处理、垃圾收集)
安全模型
类型系统
所有的 .NET 基础类
许多 .NET 框架类
开发、调试和测评工具
运行和代码管理
IL-机器语言 转换器和优化器
这些的含义是,在 .NET 世界里,不同的编程语言将在能力上比过去任何时候都更平等,虽然显然不是所有语言都支持所有 CLR 服务。(北京北大青鸟校区)
4、什么是映像?
所有的 .NET 编译器都产生关于它们所产生的模块中的类型定义的特殊数据。这些特殊数据同模块封装在一起 (随后模块被封装到元件中),可以通过称为映像 的机制来访问。System.Reflection 命名空间中包含向模块或元件询问其类型的类。
使用映像来访问 .NET 的特殊数据同使用 ITypeLib/ITypeInfo 来访问 COM 中的类型库数据非常相似,而且使用的目的也很相似—例如确定数据类型大小,以便在上下文、进程、机器的边界间调度它们。
北京北大青鸟校区老师介绍,映像还可以被用来动态调用方法 (参见 System.Type.InvokeMember),甚至在运行时动态创建类型 。(未完)