ASP.NET网站制作之用ASP.NET开辟Web服务的五则技能仓酷云
我有个同学,他是搞net网页编程的,他给我说“net网页编程不是效率低,而是速度慢。”,我不是搞net网页编程的,我实在想不透这句话的含义,难道执行速度不就是效率低吗?难道执行速度慢还成效率高了?用ASP.NET开辟Web服务的五则技能:1、禁用HTTPPOST/GET协定
除非别的指定,不然,.NET将试图把Web服务绑定到三种协定:HTTP/POST、HTTP/GET和SOAP。之以是说“试图”,是由于依附于服务的参数和前往范例,HTTP/GET协定大概不成用。.NET天生的WSDL文件将主动包括绑定这三种协定的指令,客户程序能够自在选择利用哪一种协定与服务通讯。
只需在Web.config文件中到场以下内容,就能够便利地删除对HTTP/POST和HTTP/GET协定的绑定:
<webservices>
<protocols>
<removename="HttpPost"/>
<removename="HttpGet"/>
</protocols>
</webservices>
为何要制止经由过程HTTP/POST和HTTP/GET协定引出Web服务呢?次要的两个缘故原由是平安和互操纵性。HTTP/GET的平安性不如SOAP,并且因为HTTP/GET罕见于Web链接,怀有歹意的人大概使用它实行棍骗,使他人在不知不觉顶用本人的平安标识挪用Web服务,却还觉得本人在点击Web链接。
就互操纵性而言,SOAP是普遍使用的Web服务通讯尺度,而HTTP/GET和HTTP/POST不是。因而,关于.NET天生的WSDL文档中默许包括的HTTP/GET和HTTP/POST绑定,很多主动天生代办署理服务器的工具不会了解。因而,假如你的Web服务不长短绑定到HTTP/GET和HTTP/POST协定不成,最好作废这两种绑定。
2、用tcpTrace检察SOAP哀求/应对动静
关于开辟Web服务使用的人来讲,调试多是件与众不同的难事,由于不管是.NETSDK仍是VS.NET,都没有供应工具来检察客户端和服务器之间的SOAP动静。
假如.NET和非.NET的客户端、服务器真个交互历程呈现了成绩,要想找出成绩的本源,具有检察SOAP动静的才能就尤其主要,由于这类成绩常常与SOAP动静的格局有关(比方,“动静中包括了SOAPAction吗?”)。
tcpTrace(www.pocketsoap.com/tcptrace)是一个检察这类动静互换历程的优异工具,它经由过程设置一个客户端和服务器端之间的地道事情。启动tcpTrace时,它会请求输出方针URL和端标语,和tcpTrace监听的当地端标语。如许,你就能够经由过程设置代办署理stub的Url属性,把stub指向这个当地端口(比方,localhost:8080)。tcpTrace可以纪录一切的哀求和应对HTTP动静。
tcpTrace的一个范围是,它在动静流程中所处的地位决意了它不克不及用来检察经由过程SSL发送的动静。假如你要检察经由过程SSL发送的SOAP动静,只能编写一个定制的ISAPI过滤器。
3、简化接口计划
在浩瀚有关n-层使用计划的叙述中,简化接口计划这一计划要诀能够说是到处可见。可是,关于Web服务如许的散布式盘算情况,简化接口计划的主要性加倍凸起。
在计划散布式使用时,出于功能和可伸缩性的思索,应该包管客户端和服务器端之间的挪用尽量地少。削减收集挪用不但有益于削减通讯开支(假如只用一个SOAP动静能够到达方针,就相对不要发三个动静),下降收集流量,并且进步了使用的功能。明显,这统统都是开辟者朝思暮想的方针。那末简化的接口究竟有何特性呢?
起首来看一个庞大接口的例子:
namespaceChattyService{
publicclassChattyService:WebService{
privatestringusername;
privatestringpassword;
publicstringUsername{
set{
username=Username;
}}
publicstringPassword{
set{
password=Password;
}}
publicboolLogon(){
//考证身份
returntrue;
}
}
}
在这个例子中,username和password是两个属性,挪用logon()办法之前起首必需设置这两个属性。有一个成绩光看这段代码不太简单注重到,这就是username和password都作为Web办法引出。这就是说,每次对属性的get/set操纵城市招致一个对服务的挪用。
依照简化接口计划的请求,改善后的代码以下:
namespaceChattyService{
publicclassChattyService:WebService{
publicboolLogon(stringUsername,stringPassword){
//考证身份
returntrue;
}
}
}
在,username和password成了logon()办法的参数。修正以后的代码的长处在于,它把登录操纵对服务器的三次挪用下降到了一次。另外一方面,假如参数的个数太多,这个办法大概看起来很不像样。这时候,大概要把办法的参数收拾成几个庞大范例,比方,把username和password两个参数封装到一个credential(证书)对象内里。
4、在Web.Config中保留使用公有的数据
用ASP.NET开辟的Web服务可以发扬出.aspx使用的一切专长,包含用web.config文件保留使用公有数据的才能(比方,数据库毗连字符串、文件路径等)。用Web.config而不是global.asax文件的优点在于修正设置以后不用从头机关使用。
5、制止利用ASP.NET会话形态
.NET完成的会话形态办理功效办理了它的先辈ASP3.0存在的很多成绩,比方哀求串行化等,但仍存在一些范围。应该熟悉到,.NET的会话形态办理功效不是专门为Web服务情况中的会话形态而计划,而是为了在局限更普遍的ASP.NET使用中办理会话形态而计划,它依附于HTTPCookie(有一种经由过程改写URL完成的不必要Cookie的形式,但不合用于Web服务)。
Cookie是HTTP独占的。在Web上,一切的扫瞄器都撑持HTTP,以是Cookie十分合适在Web使用中利用。可是,在Web服务中使用Cookie却把服务限制到了HTTP协定上。另外一方面,SOAP协定的运转是自力于传输协定的,因而假如把Web服务使用限定到HTTP协定上,使用的天真性也遭到了限定,一旦要经由过程非HTTP的传输协定(比方SMTP)供应服务,事变会变得很贫苦。
net网页编程的设计机制:首先产生一个中间码,第二部编译为本地(机器)码。这个机制有很大的缺点。 asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦! 现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。 能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。 ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。 通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。 主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
页:
[1]