.net框架基础

1.什么是CTS、CLS和CLR

答:公共语言运行库(CLR--Common Language Runtime):是一个CLI的实现,包含了.NET运行引擎和符合CLI的类库。

通用类型系统(CTS--Common Type System):包含在微软公司提交的CLI规范中,定义了一个可以在CLR上运行的类型规范。

公共语言规范(CLS):是CTS的一个子集,定义了所有面向.NET的程序需要符合的最小规范集。 

CLI:公共语言基础,是微软公司向ECMA提交的一份语言和数据格式规范。

一种语言编写的程序编译能够在CLR上运行,并不代表这种语言本身完全符合CTS的规范。例如C++语言,仍然保存了其不符合CTS规范的部分,并且在编译时把这部分不符合CTS的代码编译成原始代码而非中间代码。

 

2.开发和运行.NET程序需要的最基本环境是什么?

绝大多数程序员都在Visual Studio平台上开发过.NET程序,但需注意的是IDE环境并不是必需的,任何一个文本编辑器都可以来编写.NET代码。

答:开发.NET程序需要一个文字编译器和一个针对编码语言的编译器,对于C#来说,最常用的编译器是csc.exe。而运行.NET程序,需要的是安装.NET Framework组件。 

 

3.CLR技术和COM技术的比较

答:CLR和COM都定义了组件间交互的规范。COM并没有定义如何描述组件间的依赖性,并且由于其严格的物理约定,造成了许多组件版本升级和控制的问题。CLR运用元数据和逻辑类型定义等机制,有效地解决了COM遗留的一些问题。并且,相较于COM模型,CLR更容易理解和学习(个人观点)。

组件对象模型(COM--Common Object Mode):定义了所有组件之间的交互和组件接口的规范。可以理解为一种编程模型和平台技术。不同于传统的DLL,COM技术实现了接口分离。每个标准的COM组件都会包含一个接口定义文件:IDL文件。而COM中所有的接口都继承自IUnknown接口。对于类型,COM把其定义在一个类型库文件:TLB文件中。这样,一个最基础的接口协议就形成了。

 

4.什么是程序集和应用程序域?

答:程序集(Assembly)是一个由类型定义、数据文件和资源文件组成的逻辑集合。每个程序集都包含一个程序集清单,该清单通常被附加在某个文件头上,也可以设置单独建立一个文件来包含该清单。

应用程序域是CLR中提供代码运行范围、错误隔离和安全设置隔离的逻辑单元,功能类似于操作系统的进程。一个或多个应用程序域在一个操作系统的进程中运行。应用程序域的创建和销毁所需的开销,相对于操作系统进程较小。但和操作系统进程一样,应用程序域之间的数据共享相当困难。

 

5..NET程序被编译成什么形式的代码?

答:.NET程序在第一次编译后,形成CLR头、元数据和中间代码。在实施运行或部署时,将经过第二次编译,编译的结果是在CLR中可执行的机器代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值