标签:
什么是CTS、CLS和CLR
CTS是通用类型系统;CLS是公共语言规范;CLR是公共语言运行时。
CLR技术和COM技术的比较
CLR和COM都定义了组件间交互的规范。COM并没有定义如何描述组件间的依赖性,并且由于其严格的物理约定,造成了很多组件版本升级和控制的问题。CLR运用元数据和逻辑类型定义等机制,有效地解决了COM遗留的一些问题。并且,相较于COM模型,笔者认为CLR更容易理解和学习。
什么是程序集和应用程序域
程序集是一个由类型定义、数据文件和资源文件组成的逻辑集合。每个程序集都包含一个程序集清单,该清单通常被附加在某个文件头上,也可以设置单独建立一个文件来包含该清单。应用程序域是CLR中提供代码运行范围、错误隔离和安全设置隔离的逻辑单元,功能类似于操作系统的进程。一个或多个应用程序域在一个操作系统的进程中运行。应用程序域的创建和销毁所需的开销,相对于操作系统进程较小。和操作系统进程一样,应用程序域之间的数据共享相当困难。
.NET程序被编译成什么形式的代码
.NET程序在第一次编译后,形成CLR头、元数据和中间代码。在实施运行或部署时,将经过第二次编译,编译的结果是在CLR中可执行的机器代码。
JIT是如何工作的
JIT引擎在编译中间代码之前,会寻找方法的本机机器代码缓存并且判断其是否可用,如果可用则直接加载,如果不可用,JIT引擎会查找类型中的方法存根,找到该中间代码并且进行编译。
简述程序集的加载机制
CLR通过System.Reflection.Assembly.LoadFrom和System.Reflection.Assembly.Load来主动加载程序集。前者通过位置而后者通过唯一标识强命名程序集的4个元素来标识程序集。CLR的加载机制和Load方法一致,其内在策略是依次通过版本策略、CODEBASE位置、应用程序域位置和应用程序位置来查找程序集。
如何配置程序集的版本策略
CLR支持在3个级别上设定版本策略,依次是:应用程序策略、发行者策略和计算机策略。
如何生成强签名的程序集
生成强签名的程序集需要有公钥/私钥对。
如何把程序集放入GAC中
可以通过.NET Framework自带的assembly viewer来简单地拖动添加一个程序集到GAC中,也可以利用诸如gacutil.exe等工具使用命令行来添加。
延迟签名及其作用
延迟签名就是指把对强签名程序集的私钥加密和数字签名延迟到实际发布时进行。延迟签名提高了开发测试阶段的效率,也方便机构和项目组管理自己的私钥。
摘录-IT企业必读的200个.NET面试题-02 .NET框架基础
标签:
原文地址:http://www.cnblogs.com/laixiancai/p/4609288.html