图1.1 Offline Application Block
图1.1是Microsoft Offline Application Block的架构图,在此图中,主要有以下两个模块:
1. 连接状态管理:此部分消息注册机制,可以使程序调用者得到当前的网络状态是何种状态。一旦网络状态发生改变的时候,
可以及时的得到响应,并且依此调用相应的业务逻辑。这个模块帮助我们解决了第一个技术难题,即如何得到当前的网络状态。
2. 服务代理管理:此模块负责管理两种数据,即参考数据及消息数据(关于两种数据的定义,可以参考微软MSDN中文网站上
Smart Client开发设计指南一书)。它负责在脱机时缓存数据,而在联机时,将消息数据返回到服务器端,并且解决数据环境同步等
问题。此模块帮助我们解决了第二及第三个技术难题。
这样,在我们的应用当中,合理的调用Microsoft Offline Application Block,简单的编写几行代码,就可以把原来非常困难,需
要很多开发人员,花费非常多的时间才能解决的问题,非常顺利的加以解决。
下面,我们结合自己的代码,来讲解一下如何使用Microsoft Application Block来开发Smart Client应用的。:
基于Microsoft Offline Application Block 开发Smart Client应用的程序架构。
由 Microsoft Offline Application Block 的程序结构视图(如下)
其中应用程序、应用程序代理、和OnLine Proxy 是由用户实现的模块。
应用程序服务代理:提供队列消息的能力。它还提供了一个将结果返回应用程序的通道。
Online Proxy:负责与提供业务功能的远程服务进行通信。如果需要,“联机代理”还可以负责在缓存中存储参考数据。
ServiceAgent:提供由应用程序提供的所有服务代理所实现的基类。“服务代理”基类负责在服务代理注册表中注册服务代理。用户
自定义开发的服务代理都派生自该类
在人口和计划生育管理系统中设计如下类实现这些模块的功能:
Hrhy.FPMS.Xiang.KongZhi.clsXuQiuChaXunKongZhi 实现应用程序服务代理功能。在该类中封装以下功能:
获取MOAB的实例及注册业务代表实例、消息和事件,并且控制MOAB的启动,销毁、强制上、下线等。
业务数据交互的控制。
组件服务控制部分。
Hrhy.FPMS.Xiang.YeWu.clsWangLuoDaiLi 实现OnLine Proxy 网络代理功能。通过连接WebService,把网络服务中的数
据放入请求同时得到请求的返回数据。
Hrhy.FPMS.Xiang.YeWu.clsYeWuDaiBiao 继承ServiceAgent 并对其进行扩展。该类中调用
Hrhy.FPMS.Xiang.YeWu.clsWangLuoDaiLi接口,发送或接受数据。
基于Microsoft Offline Application Block(MOAB)如何实现Smart Client 应用。