在Asp.Net中实现类似DWR的功能

2016-02-19 19:21 13 1 收藏

下面是个在Asp.Net中实现类似DWR的功能教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - Web开发 】

熟悉Ajax的人应该都知道DWR这个开源框架,它让Ajax程序开发变得简单,但是目前好像只能支持Java,今天就来说一下我在Asp.Net项目中怎样模拟实现DWR的功能:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

创建一个接口(姑且叫做IWAjaxEngine),其作用定义对Ajax暴露的方法,我设计的是一个返回string类型的方法,还有一个是没有返回值的方法,两个方法的参数都是Dictionarystring, string类型。这样,Ajax在调用后台业务逻辑类时,都可以通过这个接口类型进行调用,而那些业务逻辑类只要是实现了这个接口,就可以通过类名反射进行初始化,反射部分下面详细再说。

在App_Data目录下新建一个XML文档作为配置文件,放在这个目录下的原因,大家应该都知道吧,是可以起到保护作用。这个配置文件中就是专门配置实现IWAjaxEngine接口的业务逻辑类的信息(类名、参数列表、参数类型等等),然后创建一个封装这个配置文件的类(WAjaxConfig),可以把这个类的实例设为static,这样就不用每次都读配置文件了。

接下来就说到重点部分了,也就是Ajax怎么直接调用后台业务逻辑类。我的想法是创建一个Web窗体,也就是.aspx和.aspx.cs文件,在page_load事件中根据Ajax传递过来的参数(包含能够找到配置文件中类信息的ID标识)在WAjaxConfig中找到要调用的类名(找不到的话就抛出异常),然后通过类名反射创建一个该类的实例(当然是以IWAjaxEngine接口作为该实例的类型),有了实例,我们就可以调用接口定义的两个方法,要么返回字符串要么什么都不返回。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

整个实现的思路就是这样,说起来与DWR还是有所不同的,不过已经满足了我的需求。当然这里说的有些简单,真正做起来并不是很容易,有很多需要细化的地方。另外,我还做了一些辅助的工具类,可以生成XML或JSON字符串;前台也实现了类似于DWR引擎脚本的engine.js和工具集脚本util.js(其实是把DWR的util.js搬过来了,谁让人家做的功能强大呢,不过也添改了一些代码,因为发现有些js代码不符合标准DOM操作,FireFox就不支持了,还有些方法不支持XML DOM 的NodeList。在此谢谢那位DWR的作者-_-),这样,我们就可以在前台像使用DWR一样进行编程了。

我想把这个项目开源,但是Blog里不能上传文件,所以有感兴趣的朋友可以给我发邮件wangwk1983@sohu.com或者加我QQ:25744705(身份验证请注明:WAjax,一般人我不加他-_-),大家一起研究!

来源:http://www.tulaoshi.com/n/20160219/1620778.html

延伸阅读
标签: Web开发
其实在ASP.Net编程中,不用调用md5.asp来加密数据。在DotNet中有自带的类:System.Web.Security.HashPasswordForStoringInConfigFile() public string md5(string str,int code) { if(code==16) //16位MD5加密(取32位加密的9~25字符) { return System.Web.Security.FormsAuthentication.HashPasswordForStorin...
标签: Web开发
Abs(number) 取得数值的绝对值。    Asc(String) 取得字符串表达式的第一个字符ASCII 码。    Atn(number) 取得一个角度的反正切值。    CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。 &nbs...
标签: Web开发
原文: http://www.microsoft.com/china/msdn/library/webservices/asp.net/us0501ASPNETPerformance.mspx?mfr=true 适用于: AJAX(异步 JavaScript 和 XML) Microsoft AJAX.NET Microsoft ASP.NET 摘要: 了解如何将 AJAX(异步 JavaScript 和 XML)用于您的 Microsoft ASP.NET 应用程序,使其互动性更强、响应更及时。 下载本文的代码...
今天我想实现利用javascript调用WebService我首先就想到了ASP.Net Ajax 因为微软的东西用着方便,我从网上看了看,这东西好多人都写了,我就从官方找了个Demo下了看看源代码,感觉没什么特殊的,于是动手开始写.先添加一个webservice.asmx然后在default.aspx中加入ScriptManager 并设置serviecs属性 <asp:ScriptManager runa...
标签: ASP
      在安全性要求不是很高的ASP.Net程序中,基于Forms的身份验证是经常使用的一种方式,而如果需要对WebService进行身份验证,最常用的可能是基于Soap 标头的自定义身份验证方式。如果对两者做一下比较的话,显然,基于Forms的验证方式更加方便易用,能否将Forms验证方式应用到WebService中去呢?     ...

经验教程

751

收藏

24
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部