net面试题加答案.doc

上传人:cn****1 文档编号:544294539 上传时间:2023-02-28 格式:DOC 页数:35 大小:167.01KB
返回 下载 相关 举报
net面试题加答案.doc_第1页
第1页 / 共35页
net面试题加答案.doc_第2页
第2页 / 共35页
net面试题加答案.doc_第3页
第3页 / 共35页
net面试题加答案.doc_第4页
第4页 / 共35页
net面试题加答案.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《net面试题加答案.doc》由会员分享,可在线阅读,更多相关《net面试题加答案.doc(35页珍藏版)》请在金锄头文库上搜索。

1、用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答:从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层 数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问 业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关 表示层:是系统的UI部分,负责使用者与整个系统的交互。 优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本。 分层式结构究竟其优势何在? 1、开发人员可以只关注整个结构中的其中某一层; 2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准化;

2、5、利于各层逻辑的复用。 概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。 分层式结构也不可避免具有一些缺陷: 1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。 2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。 MVC模式 MVC(Model-View-Controller)把交互系统的组成分解成模型、视图、控制器三种部件 mvc的优点: 1.通过把

3、项目分成model view和controller,使得复杂项目更加容易维护。 2.没有使用view state和服务器表单控件,可以更方便的控制应用程序的行为 3.应用程序通过controller来控制程序请求,可以提供丰富的url重写。 4.对单元测试的支持更加出色 5.在团队开发模式下表现更出众 MVC的不足:(1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。 (2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反

4、之亦然,这样就妨碍了他们的独立重用。 (3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。 如何实现MVC模式,举例说明! web/business/dataaccess列举ASP.NET 页面之间传递值的几种方式。 1.使用QueryString, 如.?id=1; response. Redirect(). 2.使用Session变量 3.使用Server.Transfer 请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。 QueryString 传递一个或多个安全性要

5、求不高或是结构简单的数值。但是对于传递数组或对象的话,就不能用这个方法了 session(viewstate) 简单,但易丢失 作用于用户个人,过量的存储会导致服务器内存资源的耗尽。 application 对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock cookie 简单,但可能不支持,可能被伪造 Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用 input ttype=hidden 简单,可能被伪造 url参数简单,显示于地址栏,长度有限 Server.Tran

6、sfer 把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流 数据库稳定,安全,但性能相对弱 什么是Viewstate?它有什么作用?ViewState用来保存页面状态,就是说提交之后我们还可以看到文本框里面的内容就是ViewState保存的功劳。 ViewState只维护当前页面的状态,不同页面之间不能共享,Session可以。 ViewState你可以理解为一个隐藏控件。ASP.Net页面生命周期 每个页面的生命周期为用户的每一次访问,也就是说每一次客户端与服务器之间的一个往返过程.全局变量的生命周期在此之间.1. Page_Init(); 2. Load ViewStat

7、e and Postback data; 3. Page_Load(); 4. Handle control events; 5. Page_PreRender(); 6. Page_Render(); 7. Unload event; 8. Dispose method called; ADO.net中常用的对象有哪些?分别描述一下。 答: Connection 打开数据库连接 Command 执行数据库命令 DataAdapter 连接数据,执行数据库命令,填充DataSet DataSet 数据在内存中的缓存,数据结构 DataReader 只读向前的读取数据库 DataReader和D

8、ataSet的异同 DataReader使用时始终占用SqlConnection,在线操作数据库.任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的.因为DataReader的特殊性和高性能.所以DataReader是只进的.你读了第一条后就不能再去读取第一条了. DataSet则是将数据一次性加载在内存中.抛弃数据库连接.读取完毕即放弃数据库连接.因为DataSet将数据全部加载在内存中.所以比较消耗内存.但是确比DataReader要灵活.可以动态的添加行,列,数据.对数据库进行回传更新操作.

9、 存储过程和sql语句的优缺点 优点: 1.提高性能,减少网络传输,节约时间 。 2.减少网络流量 存储过程位于服务器上,调用的时候只须传递存储过程的名称以及参数,不用每次访问都传递很长的sql 语句。 4.安全性 减少sql 注入式攻击。 5.可维护性高 更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。 缺点: 1.交互性差 。 2.可移植性差 说出你所了解的数据库访问组件(例如ADO,至少4种) 答:ADO,ADO.Net,MDAC(Microsoft Data Access Components),Microsoft SQL Server OLE DB Provide

10、r, Microsoft Jet OLE DB Provider,Desktop Database Drivers ODBC Driver,Visual FoxPro ODBC Driver 什么是面向对象 万物都是对象,其主要特征:封装、继承、多态 怎样实现多态 1.通过对象直接调用成员函数时,始终默认使用该对象的类的成员函数(除非用:显示指定类名)。2.通过指向对象的指针或引用调用成员函数时:如果该函数是实函数,则调用该指针或引用的类的成员函数;如果该函 数是虚函数,则调用该指针或引用指向的对象的类的成员函数。 面向对象的思想主要包括什么? 答:任何事物都可以理解为对象,其主要特征: 继承

11、。封装。多态。特点:代码好维护,安全,隐藏信息 什么是装箱和拆箱? 答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。装箱(boxing)是将值类型的数据转化成引用类型,int i=3; object o = i ;便是装箱过程,而拆箱(unboxing)是将饮用类型数据转换值类型,比如int j = (int)o;属于拆箱 什么是Interface?它与Abstract Class有什么区别? 接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行为规范外,可以有部分实现,但一 个类能实现多个接口,但只能继承一个父类 什么时候使用抽象类,什么时候用接口

12、 接口用于规范,抽象类用于共性。接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实 现,也可以定义非静态的类变量。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。抽象类可以 提供某些方法的部分实现,接口不可以.抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。 再抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要 重新编写(这就是为什么说接口是一个类的规范了)。接口成员被定义为公共的,但抽象类的成员也可以是私有 的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。 此

13、外接口不能包含字段、构造函数、析构函数、静态成员或常量。 什么是抽象类(abstract class)? 一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽 象类的抽象方法后才能被实例化。 何时必须声明一个类为抽象类? 当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。 接口(interface)是什么? 只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。 为什么不能指定接口中方法的修饰符? 接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法

14、。 可以继承多个接口么? 当然。 那么如果这些接口中有重复的方法名称呢? 这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有问题的。 接口和抽象类的区别是什么? 接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指 定方法的访问修饰符。详述.NET里class和struct的异同! 类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用ab

15、stract和sealed,没有protected修饰符,可以不用new初始化。如何选择结构还是类 1 堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些 2 结构表示如点、矩形和颜色这样的轻量对象 例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。 在此情况下,结构的成本较低。 3 在表现抽象和多级别的对象层次时,类是最好的选择 4 大多数情况下该类型只是一些数据时,结构时最佳的选择 C#中的接口和类有什么异同。 异: 不能直接实例化接口。 接口不包含方法的实现。 接口、类和结构可从多个接口继承。但是C# 只支持单继承:类只能从一个基类继承实现。 类定义可在不同的源文件之间进行拆分。 同: 接口、类和结构可从多个接口继承。 接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。 接口可以包含事件、索引器、方法和

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号