您好,欢迎访问三七文档
1、概述.NET里对remoting和webservice两项技术的理解和实际中的应用。其实现的原理并没有本质的区别,在应用开发层面上有以下区别:1、Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与WebService就没有什么区别了,一般都喜欢定义为TCP,这样比WebService稍为高效一些2、Remoting不是标准,而WebService是标准;3、Remoting一般需要通过一个WinForm或是Windows服务进行启动,而WebService则需要IIS进行启动。4、在VS.net开发环境中,专门对WebService的调用进行了封装,用起来比Remoting方便我建议还是采用WebService好些,对于开发来说更容易控制Remoting一般用在C/S的系统中,WebService是用在B/S系统中后者还是各语言的通用接口相同之处就是都基于XML为了能清楚地描述WebService和Remoting之间得区别,我打算从他们的体系结构上来说起:WebService大体上分为5个层次:1.Http传输信道2.XML的数据格式3.SOAP封装格式4.WSDL的描述方式5.UDDI总体上来讲,.NET下的WebService结构比较简单,也比较容易理解和应用:一般来讲在.NET结构下的WebService应用都是基于.netframework以及IIS的架构之下,所以部署(Dispose)起来相对比较容易点.从实现的角度来讲,首先WebService必须把暴露给客户端的方法所在的类继承于:System.Web.Services.WebService这个基类其次所暴露的方法前面必须有[WebMethod]或者[WebMethodAttribute]WebService的运行机理首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(ProxyClass)这个代理类负责与WebService服务器进行Request和Response当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理结束以后再对这个计算结果进行SOAP包装,然后把这个包作为一个Response发送给客户端的代理类(ProxyClass),同样地,这个代理类也对这个SOAP包进行解析处理,继而进行后续操作。这就是WebService的一个运行过程。下面对.netRemoting进行概括的阐述:.netRemoting是在DCOM等基础上发展起来的一种技术,它的主要目的是实现跨平台、跨语言、穿透企业防火墙,这也是他的基本特点,与WebService有所不同的是,它支持HTTP以及TCP信道,而且它不仅能传输XML格式的SOAP包,也可以传输传统意义上的二进制流,这使得它变得效率更高也更加灵活。而且它不依赖于IIS,用户可以自己开发(Development)并部署(Dispose)自己喜欢的宿主服务器,所以从这些方面上来讲WebService其实上是.netRemoting的一种特例。ASP.NETWeb服务基础结构通过将SOAP消息映射到方法调用,为Web服务提供了简单的API。通过提供一种非常简单的编程模型(基于将SOAP消息交换映射到方法调用),它实现了此机制。ASP.NETWeb服务的客户端不需要了解用于创建它们的平台、对象模型或编程语言。而服务也不需要了解向它们发送消息的客户端。唯一的要求是:双方都要认可正在创建和使用的SOAP消息的格式,该格式是由使用WSDL和XML架构(XSD)表示的Web服务合约定义来定义的。.NETRemoting为分布式对象提供了一个基础结构。它使用既灵活又可扩展的管线向远程进程提供.NET的完全对象语义。ASP.NETWeb服务基于消息传递提供非常简单的编程模型,而.NETRemoting提供较为复杂的功能,包括支持通过值或引用传递对象、回调,以及多对象激活和生命周期管理策略等。要使用.NETRemoting,客户端需要了解所有这些详细信息,简而言之,需要使用.NET建立客户端。.NETRemoting管线还支持SOAP消息,但必须注意这并没有改变其对客户端的要求。如果Remoting端点提供.NET专用的对象语义,不管是否通过SOAP,客户端必须理解它们。2、详细讲解Webservices技术WebService是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得WebService能与其他兼容的组件进行互操作[21]。它可以使用标准的互联网协议,像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上。WebService平台是一套标准,它定义了应用程序如何在Web上实现互操作性。可以使用任何语言,在任何平台上写WebService。WebService平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,WebService平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。目前这些协议有:1.XML和XSD可扩展的标记语言XMLWebService平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。XML是由万维网协会(W3C)创建,W3C制定的XMLSchemaXSD给出了一种语言来扩展这套数据类型WebService平台是用XSD来作为数据类型系统的。当你用某种语言如VB.NET或C#来构造一个WebService时,为了符合WebService标准,所有你使用的数据类型都必须被转换为XSD类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议,如SOAP。2.SOAPSOAP即简单对象访问协议(SimpleObjectAccessProtocol),它是用于交换XML编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。WebService希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。3.WSDLWebService描述语言WSDLXML的语言,用于描述WebService及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。4.UDDIUDDI的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准。5.远程过程调用RPC与消息传递WebService本身其实是在实现应用程序间的通信。我们现在有两种应用程序通信的方法:RPC远程过程调RPC的时候,客户端的概念是调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方法和属性。RPC系统试图达到一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。微软的.NET技术应该算是时下最好的WebService开发技术。.NET平台不仅延续了微软一贯的编程风格,而且还增加了许多支持Web服务的关键性技术,使得.NET在操作的简单性和执行的稳定性,高效性上达到了一个非常好的结合。微软的VisualStudio.NET便是一个便于Web服务的开发工具。微软的目标是,将其新编程语言——C#作为WebService的首选语言。.NetRemoting.NetRemoting是.Net环境下的另外一种分布式处理方式。从某种意义上来说,Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下。Microsoft®.NETRemoting提供了一种允许对象通过应用程序域与另一对象进行交互的框架[22]。在Remoting中是通过通道(channel)来实现两个应用程序域之间对象的通信的。2、什么是code-behind技术对于每一个Aspx文件可以相对应一个CS文件类,aspx继承自对应的CodeBehind类,在编译时,CodeBhind类编译到webui工程对应的dll中,而aspx页面中的内含代码和aspx一起编译到temporary.dll中,被客户端浏览器访问。3、概述三层结构体系webUI层:封装基本的页面布局形式,即表示层DataAccess(DAO)层:数据访问层,利用各种相关的技术,与底层数据库进行交互Business层:业务逻辑层,封装整个程序的业务逻辑代码,主要与DAO层相关联Model层:封装程序领域对象,该层可以在上面的三层之间进行很好的交互这只是基本的三层架构设计,如果利用设计模式,则可以在此基础上进行灵活的变化4、asp.net如何实现MVC模式,举例说明!在Asp.net中实现MVC模式,相对于JAVA没有那么快捷,但是仍是可以实现的且由于代码隐藏和事件驱动得引入,意义不时很大,具体的实现,可以利用HttpHandler,如此,则应在Web.config文件中配置相关的节点//Author:renfuminghttpHandlersaddverb=*path=SendTopic.aspxtype=wyzBBS.Servers.SendRootHandler/addverb=*path=SelectTopic.aspxtype=wyzBBS.Servers.SelectTopicHandler/addverb=*path=Question.aspxtype=wyzBBS.Servers.QuestionHandler/addverb=POST,GETpath=ajaxpro/*.ashxtype=AjaxPro.AjaxHandlerFactory,AjaxPro//httpHandlers5、ViewState的作用和实现方式?设置是否要保存控件的状态,其功能的实质是利用隐藏表单域实现如果设为false且在Page_Load中没有重新绑定数据的话,只要页面一刷新,控件的内容就没了如果设为true,则页面会保存控件的内容在一些不需要保存状态的页面中最好把它设为false,为什设为true会增加服务器的负担隐藏域6、在ASP.net中可以利用哪些对象存储状态?几种维持状态的对象应用场合以及优缺点?主要用Application,session,viewstate,cookie,cache。Application:应用程序级别的共享变量,优点是应用程序一开启该站点都能访问此变量。缺点:所有对此进行写入操作要加锁,由此共享变量锁带来的内存开销只有此应用程序关闭才能结束。Session:维护用户个人的状态信息,优点:个人所从事活动,如登录信息,购物车信息等较安全而且又服务器维护较稳定。缺点:维持http连接的sessionID仍然有缺陷,同时为每个用户维护状态信息,服务器内存开销很大。Viewsate:如4所说,在一些场合能体现它的特点,但同时带来的缺点:影响整个页面的速度以及隐藏字段未加密。Cookie:优点是将状态信息维护在客户端的一个文本文件,不需要耗用服务器的内存,是目前各大网站主要采用的方式。缺点:由于其将状态信息存贮在客户端,很可能由别人破解此文件而获得此人的个人隐私和机密信息。其受限大小
本文标题:NET面试笔试题
链接地址:https://www.777doc.com/doc-2883911 .html