ASP.NET面试问题总结

上传人:痛*** 文档编号:42027341 上传时间:2021-11-24 格式:DOC 页数:35 大小:187.02KB
收藏 版权申诉 举报 下载
ASP.NET面试问题总结_第1页
第1页 / 共35页
ASP.NET面试问题总结_第2页
第2页 / 共35页
ASP.NET面试问题总结_第3页
第3页 / 共35页
资源描述:

《ASP.NET面试问题总结》由会员分享,可在线阅读,更多相关《ASP.NET面试问题总结(35页珍藏版)》请在装配图网上搜索。

1、ASP.NET面试问题总结1 抽象类与接口的区别?抽象类是一个不完全的类,类里面有抽象的方法、属性,也可以有具体的方法、属性,需要进一步专业化。但接口是一个行为规范,里面所有的东西都是抽象的!一个类只可以继承一个基类也就是父类,但可以实现多个接口。2 值类型与引用类型的区别?举个实例?C#中支持两种类型:值类型和引用类型。值类型(如char、int和float)枚举类型、和结构类型引用类型包括 类(class)类型、接口类型、委托类型和数组类型值类型和引用类型的区别在于 值类型的变量直接包含其数据,而引用类型的变量则存储对象引用。对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可

2、能影响另一个变量所引用的对象。对于值类型,每个变量都有自己的数据副本,对一个变量的操作不可能影响另一个变量。 例: StringBuilder a=new StringBuilder();/将StringBuilder的一个首地址传给a StringBuilder b=a;/将StringBuilder的一个首地址传给b b.Append(mxh); Console.WriteLine(a); a=null; Console.WriteLine(b); 输出结果:mxh mxh a=null的意思是:a的引用置为空但此时StringBuilder的堆空间并没有被释放,因此在此之后,输出b时,仍

3、然可以输出mxh 3 重载与重写的区别?1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系 2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。 3、覆盖要求参数列表相同;重载要求参数列表不同。 4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。4 CSS的作用?Css是Cascading Style Sheets(层叠样式表单)的简称。简单的说,他可以提供更多的网页样式,使网页的元素更丰富,比如他可以方便的设置文字的大小,间距,图片

4、的阴影,位置等等。5 绝对路径和相对路径的区别?相对路径:以引用文件之网页所在位置为参考基础,而建立出的目录路径。因此,当保存于不同目录的网页引用同一个文件时,所使用的路径将不相同,故称之为相对。绝对路径:以web站点根目录为参考基础的目录路径。之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的。其实绝对路径与相对路径的不同处,只在于描述目录路径时,所采用的参考点不同,由于对网站上所有文件而言,根目录这个参考点对所有文件都是一样的,因此,运用以根目录为参考点的路径描述方式才会被称之为绝对路径。6 冒泡排序?int array = new int * ;int temp =

5、0 ;for (int i = 0 ; i array.Length - 1 ; i+)for (int j = i + 1 ; j array.Length ; j+)if (arrayj arrayi)temp = arrayi ;arrayi = arrayj ;arrayj = temp ; 7 虚拟目录的作用是什么?虚拟目录就是将其他目录以映射到方式虚拟到该ftp服务器的主目录下,这样,一个ftp服务器的主目录实质上就可以包括很多不同盘符,不同路径的目录,而不会受到所在盘的空间的限制了,当用户登录到主目录下,还可以根据该帐户的权限对它进行相应的操作,就像操作主目录下的子目录一样。如果

6、用户被锁定在主目录下,这项功能将允许他们访问主目录之外的其他目录。8 高内聚,低耦合的含义是什么?高内聚:类与类之间的关系而定,高,意思是他们之间的关系要简单明了,不要有很强的关系,不然,运行起来就会出问题。一个类的运行影响到其他的类。低偶和:类内部的方法而言,把程序的功能尽量分散,别在一个类里只写一个或很好的方法,因为那样会给你的调试等带来很多问题。出了错你都不知道在什么地方。9 如何提高代码的可重用性?1、尽量把重复的程序写成函数,然后每次需要运行的时候调用函数2、继承性和多态性概念很好的支持了代码的重用性3、使用三层架构,提高代码的重用性等10 列举ADO.NET常用对象,用途? con

7、nection,command,dataReader,dataAdpter,dataset .其上对于各种对象,连接不同的数据库将会有不同的对象变体Connection: 数据库的连接需要此对象Command:执行数据表变化的命令dataAdpter: 数据的集合,用于填充dataReader和dataset主要是对数据库的表信息进行两种不同方式的读取11 System.String和System.StringBuilder的区别? 如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实

8、可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的12 如何在C#中实现继

9、承,C#支持多重继承吗?在类名后面加上一个冒号,在加上基类的名字不支持多重继承,但可以用接口实现13 什么是服务端控件?举例?与一段Html控件的区别?服务端控件只是对HTML控件以及JS脚本做了封装,方便程序员使用C等面向对象的语言进行编程而已。如果你对HTML以及JS熟悉的话,完全可以不用服务端控件来实现。采用服务端控件会牺牲一定程度的性能(虽然预编译以及禁用ViewState可以优化)。采用服务端控件的好处是:尽可能的隔离程序员与Js以及HTML控件,可以更好的加快开发速度。但是对于访问量很大的网站来说,性能的牺牲也是不可忽视的。所以规模较大的网站,多数采用的方式为使用开发逻辑代码,页面

10、级的展现还是尽量避免使用服务端控件,而是使用HTML控件以及JS脚本来提升性能,改善用户体验。1、控件是服务端控件 用于响应服务端事件 如:2、HTML控件是客户端控件 用于响应客户端事件如:与Html控件的区别在于服务器控件上面有标明 Runat=”server” 14 什么是Ajax技术,.Net2.0是提供哪些接口实现?Ajax是Asynchronous JavaScript And XML 的缩写,它不是一项技术,而是很多技术革新的集合,Ajax使用通信技术,发送和接收对服务器的异步请求/响应,然后利用显示技术处理响应.Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法

11、。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。15 页面传值的几种方式,区别?1. session(viewstate) 简单,但易丢失2. application 全局3. cookie 简单,但可能不支持,可能被伪造4. input type=”hidden” 简单,可能被伪造5. QueryString(response. Redirect() 参数简单,显示于地址栏,长度有限6. 数据库 稳定,安全,但性能相对弱16 DataReader和DataSet的区别? Daatare

12、ader和datatset都是通过从数据源取数据。不同点:datareader提供只进行流的方式读取数据。Dataset提供一种容器里面主要由表以及表关系,由适配器来提供从数据源取得数据填充到此容器的表中。DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库.任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的.因为DataReader的特殊性和高性能.所以DataReader是只进的.你读了第一条后就不能再去读取第一条了.

13、DataSet则是将数据一次性加载在内存中.抛弃数据库连接.读取完毕即放弃数据库连接.因为DataSet将数据全部加载在内存中.所以比较消耗内存.但是确比DataReader要灵活.可以动态的添加行,列,数据.对数据库进行回传更新操作17 静态类与实体类的区别?18 不通过第三方变量,互换两个变量的值? Int x=3,y=5; X=x+y; Y=x-y; X=x-y;19 在项目中你是怎么调试的?谈谈你的心得? 下断点 逐步调试(逐语句和逐过程)20. ASP.NET和ASP的区别? Asp是解释型 Aspx是编译型 性能提高,有利于保护源码ASP.Net和ASP的最大区别在于编程思维的转换

14、,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 1、代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 2、代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 3、弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于

15、它所造成的出错几率是远远得不偿失的。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 那么,ASP.Net有哪些改进呢? ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C+ , VB , JS等等,当然,最合适的编程语言还是MS为.Net Frmaework专门推出的C(读c sharp),它可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更

16、象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C+、Java一样提供了完善的调试/纠错体系。 ASP(Active Server Pages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语

17、言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。此外,它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 之后,微软又推出ASP.NET。这不

18、是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。 ASP与ASP.NET的区别: 1.开发语言不同 ASP仅局限于使用non-type脚本语言来开发,用户给WEB页中添加ASP代码的方法与客户端脚本中添加代码的方法相同,导致代码杂乱。 ASP.NET允许用户选择并使用功能完善的strongly-type编程语言,也允许使用潜加巨大的.NET Framework。 2.运行机制不同 ASP是解

19、释运行的编程框架,所以执行效率加较低。 ASP.NET是编译性的编程框架,运行是服务器上的编译好的公共语言运行时库代码,可以利用早期绑定,实施编译来提高效率。 3.开发方式 ASP把界面设计和程序设计混在一起,维护和重用困难。 ASP.NET把界面设计和程序设计以不同的文件分离开,复用性和维护性得到了提高。 ASP.NET更好些21.C#中Property与attribute的区别,它们各有什么用处,这种机制的好处在哪里?attribute:自定义属性的基类;property :类中的属性22.TCP连接与UDP连接的区别? TCP协议是面向连接的,每个数据包的传输过程是:先建立链路、数据传输

20、、然后清除链路。数据包不包含目的地址。受端和发端不但顺序一致,而且内容相同。它的可靠性高.UDP协议是面向无连接的,每个数据包都有完整的源、目的地址及分组编号,各自在网络中独立传输,传输中不管其顺序,数据到达收端后再进行排序组装,遇有丢失、差错和失序等情况,通过请求重发来解决。它的效率比较高。 TcpUdp面向连接面向非连接对系统资源的要求较多对系统资源的要求较少传输可靠传输不可靠传输大量数据传输少量数据速度慢速度快 23.有几种索引?普通索引:这是最基本的索引类型,而且它没有唯一性之类的限制。唯一性索引:这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须

21、唯一。主键:主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”。全文索引单列索引与多列索引24.SQL SERVER 2005的新特性?十大新特性1. 加强的T-SQL(事务处理SQL)2. CLR(Common Language Runtime,通用语言运行时)3. 服务代理(service Broker)4. 数据加密5. STMP邮件6. http终端7. 多活动结果集(Muiltiple Active Result Sets,简称 MARS)8. 专用管理员连接9. SQL Server 综合服务(ssis)10. 数据库镜像25.VSS全称?Visual Source S

22、afe(项目文件管理)26.100的阶乘和(用递归)? Public static int foo(int i) If(i1)Int n=i;Int rs=1;While(n1)Rs*=n-;Return rs+foo(i-1)Return 1;27.4个9写个算式等于100?99+9/9=10028.C#中的委托是什么?事件是不是委托?委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。 是,是一种特殊的委托29.聚集索引与非聚集索引的区别?聚集索引是对原数据表进行排序,因此只要符合索引条件,就能够直接连续的读取数据记录,几乎可以达到对数据表的零扫描;而非聚集索引仅

23、仅只是另外建了一张索引表,取数据的时候,从索引表取得结果后,还需要到指针所指的数据行读取相应数据,因此,在性能上,聚集索引会大大优于非聚集索引。30.项目开发流程?需求分析,架构设计,编码,测试,部署31.怎么处理几十万条数据并发?举个实例?用存储过程或事务。取得最大标识的时候同时更新.注意主键不是自增量方式这种方法并发的时候是不会有重复主键的.取得最大标识要有一个存储过程来获取.32.VS 2008新特性?图1主要是关注于LINQ我认为是VS 2008(.NET 3.5)中最令人兴奋的特性。LINQ使查询成为了.NET中头等的编程概念,被查询的数据可以是XML(LINQ to XML)、Da

24、tabases(LINQ to SQL、LINQ to Dataset、LINQ to Entities)和对象(LINQ to Objects)。LINQ也是可扩展的,允许你建立自定义的LINQ数据提供者(比如:LINQ to Amazon、LINQ to NHibernate、LINQ to LDAP)。 字串5 广州网站建设C#3.0中的一些新的语言特性和改进: 字串8 C#3.0新特性 字串7C#3.0中新引入的几个特性大多数都仅仅是“编译器技巧”或者“语法糖”,其实编译器生成的IL中间代码和原来的是一样的,这样他们就独立于 framework和CLR运行时。但是,他们确实需要某些fr

25、amework的支持,比如System.Core.dll程序集。这就是为什么扩展方法 仍然需要依靠于System.Core.dll里包含的 System.Runtime.CompilerServices.ExtensionAttribute。 字串4另一方面,查询表达式只是实现了到扩展方法的映射,它包含在System.Linq, System.Data.Linq和System.Xml.Linq命名空间中。 字串7 属性: 字串8public class Point 字串7 private int _x, _y; 字串2 public int X 字串9 get return _x; 字串4 s

26、et _x = value; public int Y 字串1 get return _y; 字串1 set _y = value; 字串2 字串3 字串3 可以写为: 字串8 public class Point public int X get; set; public int Y get; set; 字串4 局部变量类型: 字串3var num = 50;var str = simple string;var obj = new myType();var numbers = new int 1,2,3;var dic = new Dictionary(); 字串4 编译器会生成IL中间代

27、码,就如同我们编译了下面的代码: 字串9int num = 50;string str = simple string;myType obj = new myType();int numbers = new int 1,2,3;Dictionary dic = new Dictionary(); 字串5 字串4 对象初始化和集合初始化: 字串3Point p = new Point();p.X = 0;p.Y = 0; 字串1 现在,使用对象初始化,就可以像这样子来重写: 字串7Point p = new Point() X = 0, Y = 0 ; 字串7 这个特性也可以使用在集合上,看看下

28、面这段示例: 字串4 List points = new List new Point X = 2, Y = 5 ,new Point X = 1, Y = -10 ,new Point X = 3, Y = 0 ; 字串6 查询语法查询表达式提供了一个语言集成的语法来查询,它特别像关系和层次查询语言比如SQL和XQuery。使用LINQ操作符(也就是 from.where.select)写查询很方便,Visual Studio为它提供了很好的智能感知和编译时的检查支持。当C#编译器遇到了一个查询语法表达式时,实际上它会被转化为使用扩展方法和Lambda表达 式的方法调用。 字串2我们举一个例

29、子来解释这个: 字串8var result = from c in Customers where c.City.StartsWith(B)orderby c.LastNameselect new c.FirstName, c.LastName, c.Address ; 字串9 字串9 上面的代码等价于: var result = Customers.Where( c = c.City.StartsWith(B) ) 字串9 .OrderBy( c = c.LastName ) 字串4 .Select( c = new c.FirstName, c.LastName, c.Address );

30、 字串1 字串3 使用查询语法的好处还有它会使代码更简单更易读。同时注意,查询表达式以from开头,以select或者group结尾。 字串2 总结 字串8 C#3.0中新引入的几个特性大多数都仅仅是“编译器技巧”或者“语法糖”,其实编译器生成的IL中间代码和原来的是一样的,这样他们就独立于 framework和CLR运行时。但是,他们确实需要某些framework的支持,比如System.Core.dll程序集。这就是为什么扩展方法 仍然需要依靠于System.Core.dll里包含的 System.Runtime.CompilerServices.ExtensionAttribute。 另

31、一方面,查询表达式只是实现了到扩展方法的映射,它包含在System.Linq, System.Data.Linq和System.Xml.Linq命名空间中。 33.在父类中声明一个私有变量,子类能不能访问?不能34.构造方法是否能被声明为私有的?能35.平时用到了什么命名空间?用到了哪些包? System.Text;System.IO;System.Xml;System.Data;等最好谈谈自己对这些命名空间的运用和认识;36.什么是应用程序域?应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。37.一个静态类能否覆盖它的基类?不能38.对WebService的了解?目前Web

32、Service广泛采用Https来保障安全,但是该方法也有很多的缺点,尤其是应用于现在越来越复杂的Web Service安全需求。1.Https提供的是点对点安全保护,而Web Service的特点就是消息往往就要经过多个中介才能到达最终的服务提供方,每个中介还有可能对消息做出些处理,也就是说它需要的是端到端的保护。这显然是Https所不能提供的。2.Https是在传输层提供的安全,而不是在消息层面,也就是只有在传输的过程中才有消息才是安全的(加密的),而一旦到达了终点就是明文的了。比如可以从消息队列中将重要的信息窃取出来。3.在Https的建立完共享密钥后,传递消息的时候并没有使用数字签名技

33、术,所以也就无法得到抗否认性的能力。而这又是在电子商务中不可豁缺的。4.由于Https提供的是传输层的安全,当然也就不可能达到消息安全所需要的灵活性的要求。比如加密消息中的部分元素;用不同的密钥加密消息的不同部分,从而让不同的消息接受者查看与之对应的信息。因此,为了适应Web Service对安全的特殊要求,IBM和MS等公司共同制定了WS-Security规范。重新回顾安全问题的三个概念:Confidentiality(机密性), Integrity(完整性), Authentication(身份鉴别),在Web Service使用SOAP(XML 格式)作为消息传输协议的背景下,分别产生了

34、XML Digital Signature,XML Encryption和SAML(XML格式的Security Token), 而WS-Security则是如何将他们组合起来以满足Web Service安全需求的一套规范Web Services Enhancements 2.0 for Microsoft .NET (WSE)是一个用来建设Web服务的.NET类库,它支持最新的Web服务协议,包括WS-Security、WS-SecureConversation、WS-Trust、WS-Policy、WS-SecurityPolicy、WS-Addressing和 WS-Attachment

35、s。 WSE可使开发人员跨安全平台建设可升级的、安全的Web服务。它支持用传输的方式发送SOAP消息,而不是HTTP。另一个特点是具有建立SOAP路由器的功能,SOAP消息被发送给SOAP路由器,路由器再将工作交付给托管该服务的Web服务器。39.索引的优缺点?索引的作用就象书的目录,给出条件查找目录找出所需要的内容 主要分为:主键索引和聚合索引优点:1、创建索引可以大大提高系统的性能2、可以大大加快数据的检索速度,这也是创建索引的最主要原因3、可以加快表与表之间的连接,特别是在现实数据的参考完整性方面4、在使用分组和排序子句进行数据检索时,同样可以显著的减少查询中分组和排序的时间5、通过索引

36、可以在查询的过程中,使用优化隐藏器,提高系统性能6、创建唯一索引可以保证数据的唯一性缺点:1、创建索引和维护索引要耗费的时间,这种时间随着数据量的增加而增加2、索引需要占物理空间,除了数据表占数据空间之外,每个索引还要占一定的物理空间,如果要建立聚集索引那么需要的空间将会更大3、当对表中的数据进行增加,删除和修改的时候索引也要动态的维护,这样就降低了数据的维护速度经常使用索引的列:1、经常要搜索的列上,经常连接的列上,经常血药排序的列上,经常使用where子句中的列上 很少使用的列:1、查询中很少使用的列,对于那些只有很少数据的列也不应该增加索引,对于那些定义为:text,image 和bit

37、数据的列也一样40.怎么实现数据库优化?数据库优化主要涉及数据库的查询优化:查询速度慢的原因很多,常见如下几种:1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2、I/O吞吐量小,形成了瓶颈效应。3、没有创建计算列导致查询不优化。4、内存不足5、网络速度慢6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。9、返回了不必要的行和列10、查询语句不好,没有优化SQL语句的优化?1、关键字段简历索引。2、使用存储过程,它使SQL变得更

38、加灵活和高效。3、备份数据库和清理垃圾数据。4、清理删除日志。SQL 语句优化原则:1、 使用索引来更快便利表2、 Is null 和 is not null 任何在 where 字句中使用is null 或 is not null 的语句优化器是不允许使用索引的3、in 和 exists 的使用Exists 要远比 in 效率高 4、海量数据查询时尽量少用格式转换5、 Oracle by 和 group by 使用oracle by 和 group by 短句任何一种索引都有助于select 的性能提高6、 查询时尽量将操作移动到等号右边7、 In or 子句常会时用工作表;使索引失效拆开子

39、句(包含索引)8、 Set shouplan _allon 查看执行方案 DBLL检查数据库数据完整性,它是一组用于验证sql server 数据库完整性程序9、慎用游标 (将符合条件数据放入历史表,在临时表定义游标)41.XML用DataSet转换?(1)返回完整路径/ Xml的路径public static string GetXmlFullPath(string strPath)/如果路径中含有:符号,则认定为传入的是完整路径 if(strPath.IndexOf(:) 0) return strPath;else/返回完整路径 return System.Web.HttpContext

40、.Current.Server.MapPath(strPath);(2) 读取记录读取XML的数据到DataSet中的方法为:/ 读取xml直接返回DataSet/ xml文件相对路径public static DataSet GetDataSetByXml(string strXmlPath) try DataSet ds = new DataSet(); /读取XML到DataSet ds.ReadXml(GetXmlFullPath(strXmlPath); if(ds.Tables.Count 0) return ds;else return null;catch(Exception)

41、 return null;42.什么是MVC模式?M,V,C分别代表什么?有什么好处?MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。 视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理

42、。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的

43、设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。 控制(Contr

44、oller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 MVC的优点 大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,

45、但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。 首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。43.XML

46、与HTML的区别?1. XML是区分大小写字母的,HTML不区分。 2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略或者之类的结束 标记。在XML中,绝对不能省略掉结束标记。 3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了。 4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。 5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。44.堆和栈的区别?堆和栈的区别可以用如下的比喻来看出: 使用栈就象我们去饭馆里吃饭,只管点菜(发出

47、申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。 使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。堆和栈的区别主要分: 操作系统方面的堆和栈,如上面说的那些,不多说了。 还有就是数据结构方面的堆和栈,这些都是不同的概念。这里的堆实际上指的就是(满足堆性质的)优先队列的一种数据结构,第1个元素有最高的优先权;栈实际上就是满足先进后出的性质的数学或数据结构。45.WebService传输数据时,怎么保证它的安全性? 使用数据摘要或对数据进行加密46.用一个数组存储数据,用JavaScrip

48、t怎么实现?var arr = new Array(hello,world);47.委托与事件的区别?事件只是委托的一个特殊形式委托能实现的,事件也能实现同理把事件代码中的event去除掉,变成委托,代码也不会出现问题.当使用event关键字,标识一个事件时,事件成员不能使用赋值将委托链表中的其他代码注册的方法去除掉这样会破坏订阅的完整性,当用event标识后,使用事件时,只能使用或来添加和删除订阅保证一行代码访问事件时不会产生误操作同时在中,使用事件,框架会解析页面标签中的OnEventName属性,将属性值注册到事件链中去这些都是框架上做的一点代码转换48.谈谈设计模式,并说明?抽象工厂模

49、式、适配器模式、外观模式 command命令模式,桥接模式,组合模式,装饰模式,状态模式,备忘录模式等。软件设计模式太多,就我的理解简单说一下最常见的MVC模式。MVC模式是1996年由Buschmann提出的:模型(Model):就是封装数据和所有基于对这些数据的操作。视图(View):就是封装的是对数据显示,即用户界面。控制器(Control):就是封装外界作用于模型的操作和对数据流向的控制等。49.星际造农民搬矿代码?描述思路时在类的设计,多线程问题以及共享资源的同步问题。50.ASP.NET用户登陆代码?登录逻辑学员自己写。51.写出微软和第三方的三个框架?并用30字说明? Sprin

50、g.NET Spring.NET是一个应用程序框架,为.NET提供了AOP、依赖注入等功能 Nhibernate NHibernate是一个面向.NET环境的针对关系型数据库的对象持久化类库 Log4Net Log4Net 是一个可以帮助程序员把日志信息输出到各种不同目标的.net类库52.广告漂移的HTML和JS代码?var brOK=false; var mie=false; var aver=parseInt(navigator.appVersion.substring(0,1); var aname=navigator.appName; function checkbrOK() if(

51、aname.indexOf(Internet Explorer)!=-1) if(aver=4) brOK=navigator.javaEnabled(); mie=true; if(aname.indexOf(Netscape)!=-1) if(aver=4) brOK=navigator.javaEnabled(); var vmin=2; var vmax=5; var vr=2; var timer1; function Chip(chipname,width,height) this.named=chipname; this.vx=vmin+vmax*Math.random(); t

52、his.vy=vmin+vmax*Math.random(); this.w=width; this.h=height; this.xx=0; this.yy=0; this.timer1=null; function movechip(chipname) if(brOK) eval(chip=+chipname); if(!mie) pageX=window.pageXOffset; pageW=window.innerWidth; pageY=window.pageYOffset; pageH=window.innerHeight; else pageX=window.document.b

53、ody.scrollLeft; pageW=window.document.body.offsetWidth-8; pageY=window.document.body.scrollTop; pageH=window.document.body.offsetHeight; chip.xx=chip.xx+chip.vx; chip.yy=chip.yy+chip.vy; chip.vx+=vr*(Math.random()-0.5); chip.vy+=vr*(Math.random()-0.5); if(chip.vx(vmax+vmin) chip.vx=(vmax+vmin)*2-chi

54、p.vx; if(chip.vx(vmax+vmin) chip.vy=(vmax+vmin)*2-chip.vy; if(chip.vy(-vmax-vmin) chip.vy=(-vmax-vmin)*2-chip.vy; if(chip.xx=pageX+pageW-chip.w) chip.xx=pageX+pageW-chip.w; chip.vx=-vmin-vmax*Math.random(); if(chip.yy=pageY+pageH-chip.h) chip.yy=pageY+pageH-chip.h; chip.vy=-vmin-vmax*Math.random();

55、if(!mie) eval(document.+chip.named+.top =+chip.yy); eval(document.+chip.named+.left=+chip.xx); else eval(document.all.+chip.named+.style.pixelLeft=+chip.xx); eval(document.all.+chip.named+.style.pixelTop =+chip.yy); chip.timer1=setTimeout(movechip(+chip.named+),100); function stopme(chipname) if(brO

56、K) /alert(chipname) eval(chip=+chipname); if(chip.timer1!=null) clearTimeout(chip.timer1) var mm; function mm() checkbrOK(); mm=new Chip(mm,60,80); if(brOK) movechip(mm); 53. 7个人用7小时挖了7米的沟,以同样的速度在50小时挖50米的沟要多少人?7个人1小时1米 1个人1小时1/7米 1个人50小时50/7米 50米为350/7米 350除与50等于7 所以7个人50小时50米 或: 7个人1小时1米 7个人50小时50

57、米54. 比较application,session,cookie,viewstate四个对象区别?(Application用于保存所有用户共用的数据信息,如果被保存的数据在应用程序生存期内根本不会改变或很少改变,用它。但是在中有个web.config,可能更好点。如果要使用application,一个需要考虑的问题是任何写操作都有要在application_onstart事件中(Global.asax)中完成。尽管使用application.lock和application.unlock方法来避免操作的同步,但是它串行化了对application的请求,当网站访问量大时会造成性能瓶颈。因此最好不要用它存取大的数据集。 使用方法: /存放信息 Applicationtest = 100; /读取 String test = Applicationtest.ToString(); Session 用于保存每个用户的专用信息,它的生存期是用户持续请求时间再加上一段时间(可以在web.config中设置,默认是20分钟)。Session中的信息保存在服务器的内存中,当然你也可以设置它的保存方法(如存在SQL数据库中)。由于用户停止使用程序后它仍然在内

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!