.NET 技术FAQ(二)-----基本术语

2. 基本术语
2.1
什么是 CLR

CLR = Common Language Runtime—通用语言运行库。CLR 是一组标准资源集合,无论编程语言是什么,所有 (理论上) .NET 程序都能从中获益。Robert Schmidt (Microsoft) 在他的 MSDN PDC# 文章 中列出了以下 CLR 资源:
面向对象的编程模型 (继承、多态、异常处理、垃圾收集)
安全模型
类型系统
所有的 .NET 基础类
许多 .NET 框架类
开发、调试和测评工具
运行和代码管理
IL-
机器语言 转换器和优化器
这些的含义是,在 .NET 世界里,不同的编程语言将在能力上比过去任何时候都更平等,虽然显然不是所有语言都支持所有 CLR 服务。
 
2.2
什么是 CTS
CTS = Common Type System—
通用类型系统。它是指 .NET 运行库所理解、并且随后 .NET 应用程序可以使用的一系列类型。然而,注意不是所有的 .NET 语言都将支持 CTS 中的所有类型。CTS CLS 的超集。
 
2.3
什么是 CLS
CLS = Common Language Specification—
通用语言规范。它是预计所有 .NET 语言都支持的一个 CTS 的子集。这一思想是让使用 CLS-相容类型的任何程序和以任何语言编写的 .NET 程序可以互相操作。
理论上它能允许在不同的 .NET 语言之间有紧密的互操作性例如允许从一个 VB 类里继承一个 C# 类。
 
2.4
什么是 IL
IL = Intermediate Language—
中间语言。又称为 MSIL。所有 .NET 源代码 (使用任何语言) 被编译为 IL。然后在软件的安装点上或者运行时,IL 由即时 (JIT) 编译器转换为机器码。
 
2.5
什么是 C#
C#
是在 .NET 框架中运行的一种新语言。在他们的“C# 简介白皮书中,Microsoft 这样描述 C#
C#
是从 C C++ 派生出来的一种简单的、面向对象的、并且是类型安全的现代编程语言。C# (发音为‘C sharp’) 牢固地根植于在 C C++ 家族之树,将很快为 C C++ 程序员所熟悉。C# 帮助开发者将 Visual Basic 的高生产率和 C++ 的直接控制能力结合起来。
将以上引言中的“C#”换成“Java”,你会发现这句陈述依然很正确 :) 
 
2.6
.NET 范畴里,被管理是什么含义?
术语被管理导致了很多误解。在 .NET 里的不同地方都使用了它,分别指相互差别不大的不同东西。

被管理代码: .NET 框架为运行在其上的程序提供了几个核心的运行服务 例如异常处理和安全性。为使这些服务能工作,代码必须提供运行时的最低程度的一些信息。这样的代码被称为被管理代码。 默认情况下,所有 C# Visual Basic.NET JScript.NET 代码都是被管理代码。如不指明, VS7 C++ 代码不是被管理代码,但能通过一个命令行开关 (/com+) 使编译器产生被管理代码。
被管理数据:是指由 .NET 运行库的垃圾收集器分配和回收的数据。 C# VB.NET JScript.NET 数据总是被管理的。即使使用了 /com+ 开关,默认情况下 VS7 C++ 数据也不是被管理的,但可以使用 __gc 关键字将其指定为被管理数据。
被管理类:通常在 C++ Managed Extensions (ME) 范畴中涉及。使用 ME C++ 时,可以用 __gc 关键字将其指定为被管理的。名副其实,该类的实例所占用的内存由垃圾收集器管理,但还不止如此。该类还成为了完全的 .NET 团体的成员,同时带来了好处和限制。好处之一是获得了与其它语言编写的类之间的互操作性 例如,一个被管理 C++ 类可以继承 VB 类。限制之一是被管理类只能继承一个基类。
 
2.7
什么是映像?
所有的 .NET 编译器都产生关于它们所产生的模块中的类型定义的特殊数据。这些特殊数据同模块封装在一起 ( 随后模块被封装到元件中 ) ,可以通过称为映像 的机制来访问。 System.Reflection 命名空间中包含向模块或元件询问其类型的类。
使用映像来访问 .NET 的特殊数据同使用 ITypeLib/ITypeInfo 来访问 COM 中的类型库数据非常相似,而且使用的目的也很相似 例如确定数据类型大小,以便在上下文、进程、机器的边界间调度它们。
映像还可以被用来动态调用方法 ( 参见 System.Type.InvokeMember) ,甚至在运行时动态创建类型 ( 参见 System.Reflection.Emit.TypeBuilder )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值