探讨ASP.NET AJAX客户端异步通信层编程技术(二)

探讨ASP.NET AJAX客户端异步通信层编程技术(二)

作者    朱先忠

在前文中,我们概括地介绍了ASP.NET AJAX异步通信层的主要特征。在本篇中,我们将从一个较高的层次上分析一下ASP.NET AJAX异步通信层的架构。

一、ASP.NET AJAX异步通信层的架构

Microsoft AJAX Library的客户端能够调用服务器端Web服务方法,其网络层把客户端描述层与服务器端业务逻辑层绑定到一起。这一方案所带来的优点是,实现了JavaScript客户端与ASP.NET服务器端的松耦合—仅为它们之间的通信提供了一个接口。


Microsoft AJAX Library网络层的工作原理还可以使用如图1所示的方式进行更为直观的描述。

bb

使用ASP.NET AJAX实现异步通讯


从物理实现上分析,这个异步通信层的一部分位于客户端,以可下载的JavaScript脚本形式存在;而另一部分则位于服务器端,以 HTTP处理器(handler)和Web 服务的形式存在。

二、客户端异步通信架构

    客户端异步通信层包含了若干JavaScript组件。图2描述了Microsoft AJAX Library提供的异步通信层中客户端的组成。

bb

2  ASP.NET AJAX框架客户端异步通信层的客户端组成

从更高层次上来看,客户端异步通信层(网络层)可划分为下列三个部分:

  • 核心通信层
  • 转换层
  • 代理层

其中,代理层包含了访问服务器端功能的所有代理:

  • Web服务代理能够使我们直接从客户端脚本中调用Web 服务方法。
  • 页面方法代理允许调用ASP.NET页面的方法,就像它们是普通的Web 服务方法一样。
  • 身份验证和用户个性化代理可以通过服务器端的身份验证和 用户个性化服务自动地产生,从而实现了从客户端访问ASP.NET所提供的身份验证和用户个性化服务。通过使用这些代理,可以实现认证用户身份,或者检索他(她)的个性化数据而无需要额外的到服务器的回寄。

    借助于各自相应的客户端代理,这些应用程序服务中所实现的方法都可以使用类似于普通Web服务方法的文式进行调用。这种调用方式可以用于调用Web 服务方法, 页面方法以及应用程序服务。

    转换层负责实现所有 .NET 类型数据的串行化与反串行化。默认情况下的串行化工作是由Sys.Serialization.JavaScriptSerializer类负责实现的。JSON 用于描述默认的串行化格式,但是也可以使用XML格式来实现串行化。

    核心通信层由一组发出HTTP请求的类组成。其中,Sys.Net.WebRequestExecutor相当于实现转换的“抽象”基类, 它提供了一个发出 Web请求的通用接口。Sys.Net.XmlHttpExecutor类继承了类Sys.Net.WebRequestExecutor,它使用XMLHttpRequest发出Web请求. 所有Web 请求的逻辑都是在Sys.Net.WebRequest类中实现的,该类使用一个WebRequestExecutor 对象(默认情况下是使用XmlHttpExecutor)实现这些逻辑。所有在浏览器端发起的Web 请求都在Sys.Net.WebRequestManager类的管理之下,它通过暴露一系列新的 属性、事件和方法对这些请求提供全面的控制,最终实现协调WebRequest组件和XmlHttpExecutor组件之间的关系并保证异步通信的畅通无阻。

             在下一篇中,我们将探讨ASP.NET AJAX框架客户端异步通信层的服务器端组成的问题。

fj.pngi1.JPG

fj.pngi2.JPG

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14518332/viewspace-433146/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14518332/viewspace-433146/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值