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

原创 2004年09月08日 15:37:00

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 )

自己用VC来做自己的专业安装程序

由于上次的巨大损失,关于本篇的几百字说明全部化为一片泡影。下次有时间我一定花时间来恢复,现在先只提供下载和预览。:~~~( 嘻嘻:)我这人太懒了,同样的事情最多只能做一遍,要我多做一遍,简直就是要偶的...
  • tlovexyj
  • tlovexyj
  • 2001-02-12 14:58:00
  • 1524

树和二叉树定义、基本术语和性质

树的定义和基本术语 •树:是一类重要的非线性数据结构,是以分支关系定义的层次结构。 •根:树(tree)是n(n>=0)个结点的有限集T,对于非空树,其中有且仅有一个特定的结点,称为树的根(roo...
  • u010418035
  • u010418035
  • 2015-01-25 22:24:00
  • 1897

开发人员应该了解的 Android 常用术语

Action是对Intent发送器意图的描述。一个活动是一个指派给Intent的字符串值。活动字符串可以由Android定义也可以由第三方开发者定义。例如, 在网页URL中使用的android.int...
  • lincyang
  • lincyang
  • 2010-09-16 15:16:00
  • 1618

常用电脑硬件技术术语集锦

主板篇    芯片组:芯片组是主板的灵魂,它决定了主板所能够支持的功能。目前市面上常见的芯片组有Intel、VIA、SiS、Ali、AMD等几家公司的产品。其中,Intel公司的主流产品有440BX、...
  • fallingstarNo1
  • fallingstarNo1
  • 2006-08-16 14:19:00
  • 3200

.NET 技术FAQ(二)

7. 代码访问安全性7.1 什么是代码访问安全性 (CAS)?CAS 是 .NET 安全性模型的一部分,它确定一段代码是否允许被运行,以及当它运行是可以使用什么资源。例如,CAS 可以防止一个 .NE...
  • yangmajituipo
  • yangmajituipo
  • 2001-10-23 14:14:00
  • 777

cass二调版数据数据处理流程

  • 2013年06月08日 17:08
  • 23KB
  • 下载

新版FAQ的设计

准备不变的地方:1、仍然是已经解帖的帖子才可以整理FAQ;2、仍然是任何人都可以提交、整理FAQ。3、只有审核通过的FAQ,才可以阅读。4、未审核通过的FAQ,FAQ管理者和提交者可以对FAQ进行修改...
  • ghj1976
  • ghj1976
  • 2005-09-26 16:53:00
  • 1986

Android 各种专业术语解释

前言接触了这么久的Android,发现有些术语的理解还是模模糊糊,所以今天就来理清一下这些概念。apk扩展名apk是Android包的扩展名,一个Android包包含了与某个Android应用程序相关...
  • u014532717
  • u014532717
  • 2016-01-06 22:36:23
  • 1565

php常见术语

什么是PHP?  php是Hypertext Preprocessor的缩写,php是一种内嵌 HTML的脚本语言。PHP的独特语法混合了c,java和perl及PHP式的新语法。这门语言的的目标是...
  • chengshaolei2012
  • chengshaolei2012
  • 2017-05-23 12:06:01
  • 841

.NET开源 FAQ

Microsoft于2014年11月12日(PST)宣布.NET开源,一个“闭关锁国”的商业帝国也迎来了“改革开放”。。。 Q1:为什么要开源? Ans:因为要将.NET这种与系统层紧密结合的框架移植...
  • ytx1991
  • ytx1991
  • 2014-11-14 02:02:15
  • 1391
收藏助手
不良信息举报
您举报文章:.NET 技术FAQ(二)-----基本术语
举报原因:
原因补充:

(最多只允许输入30个字)