admin 管理员组

文章数量: 1087709


2024年4月20日发(作者:html小动画代码)

.net 面试宝典复习笔记

什么是CTS,CLS,CLR?

答:CLR(commom Lauguage Runtime)公共语言运行库

CTS(common Type System)通用类型系统

CLS(common Lauguage System)公共语言系统 是CTS的一个子集。

CIL (common Intermediate Language)公共中间语言

标准答案:CLR 是CLI的实现,包含了.net运行引擎和符合CLI(公共语言基础)的类库。

CTS包含在MS提交的CLI规范中,定义了一个可以在CLR上运行的类型规范。

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

答:需要一个文字编辑器和针对编码语言的编译器。对c#来说,为。运行.net 程序,

需要安装.net framwork组件。

Net支持多种编程语言开发,但所有设计必须符合CLS规范以保证编程语言之间的特性差异

不会产生运行时的异常。

CLR技术与COM技术的比较

答:CLR和COM都定义了组件间交互的规范。COM并没有定义如何描述组件间的依赖性,

并且由于其严格的物理约定,造成了很多版本升级和控制的问题。CLR运用元数据和逻辑

类型定义等机制,有效地解决了COM遗留的一些问题。相对于COM模型,CLR更容易理

解和学习。

什么是程序集和应用程序域

答:程序集(Assembly)是一个由类型定义、数据文件和资源文件组成的逻辑集合。每个程

序集都包含一个程序集清单,该清单通常被附加在某个头文件上,也可以设置单独一个文件

来包含该清单。

应用程序域是CLR中提供代码运行范围、错误隔离和安全设置隔离的逻辑单元,功能类似

于操作系统的进程。一个或多个应用程序域在一个操作系统的进程中运行。应用程序域的创

建和销毁所需的开销,相当于操作系统的进程较小。但和操作系统进程一样,应用程序域之

间的数据共享相当困难。

Net程序被编译成什么形式的代码?

答:.net程序在第一次编译后,形成CLR头、元数据和中间代码。在实施运行或部署时,

将经过第二次编译,编译的结果是在CLR中可执行的机器代码。

JIT是如何工作的?

答:JIT(just in time)实时编译。JIT引擎在编译中间代码之前,会寻找方法的本机机器代

码缓存并且判断其是否可用,如果可用则直接加载,如果不可用,JIT引擎会查找类型中的

方法存根,找到该中间代码并且进行编译。

简述程序集的加载机制。

答:CLR通过om 和

来主动地加载程序集。前者通过位置而后者通过唯一标识强命令程序集的4个元素来标识程

序集。CLR的加载机制和Load方法一致,其内在的策略是依次通过版本策略、CODEBASE

位置、应用程序域和应用程序位置来查找程序集。

如何配置程序集的版本策略

答:CLR支持在3个级别上设定版本策略,依次是:应用程序策略、发行者策略和计算机

策略。所有策略的设置都是通过修改配置文件 ( )来实现。3个级别的策

略会依次被CLR执行,而上一个策略的执行结果将被作为下一个策略的输入。发行者策略

仅仅针对放入GAC(全集程序集缓存)的程序集,并且可以在应用程序策略中被指定忽略。

如何生成强签名的程序

答:生成强签名的程序集需要有公钥/私钥对。在得到了公钥/私钥对后,就可以控制编译器

的输入参数来得到一个强签名的程序集。对于c#的编译器csc 来说,可以用/keyfile 参数来

制定使用哪个公钥/私钥 文件。

如何把程序集放入GAC中

答:GAC全局程序集缓存(Global Assembly Cache)。GAC是一个具有特定目录结构的文件

夹,所有强签名的程序集都可以被放入GAC中。可以通过。Netfreamwork自带的assembly

viewer 来简单地拖动一个程序集到GAC中,也可以使用工具命令行来添加。总之,任何方

法归根到底,都是根据GAC的规范和程序集本身的特性,在GAC目录下建立相应的子目

录结构。

延迟签名及其作用

答:延迟签名就是把强签名程序集的私钥加密和数字签名延迟到实际发布时进行。延迟签名

提高了开发测试阶段的效率,也方便了机构和项目管组管理自己的私钥。

程序集的版本分哪几个部分

答:程序集的版本号分为四个部分:主版本号、次版本号、内部版本号和修订号。

面试真题:

1,使用c++语言能否编写可以在.net框架上运行的程序?

2.什么是受托管的代码?

3.什么是应用程序域?它和进程有什么区别?

4.做强签名的程序集与不做强签名的程序集有什么不同?

5.如何单独升级系统中的某一个程序集。

6.公钥和私钥的概念和作用是什么?

7.把程序集放入GAC中有什么好处?

用什么技术来解决dll hell问题。

9,编译时如何制定版本?

10.延迟签名有何作用?

.net中所有内建类型的基类是什么?

答:是.net中所有内建类型的基类。

Object中包含哪些方法?哪些是虚方法?

答:包括8个方法


本文标签: 程序 策略 签名 运行 私钥