2009年5月1日星期五

CSLA.NET框架数据访问门户实现

(1)、通道适配器
适配器(Adapter)是设计模式的一种,运用这种设计模式能够支持灵活的配置。通道适配器其实只是对适配器模式的一种扩展,通过适配器提供移动对象在多层中的灵活访问。先看看上面提到的第一部分图:




图9:数据门户的通道适配器
上面的中间部分就是一条一条通道,如何选择访问的通道是通过修改配置文件来实现的,而不是通过修改代码,这样是非常方便的。需要注意的是:LocalProxy通道是直接与Csla.Server.DataPortal对象直接进行通信的,因为是本地的,所以绕开了网络,直接访问客户端内存对象,其他三个就需要通过网络来访问服务端的对象。
(2)、消息路由
以前的COM和COM+技术都暴露了太多的服务端的方法,这样使得客户端必须去识别所有的方法,然后才能进行操作,这样效率是非常差的,而且在网络环境差的情况下,往往很容易出错。
CSLA.NET框架的数据访问门户在服务端只暴露出极少的方法,而客户端调用设置为消息,这些消息由消息路由器发送给移动对象,通过移动对象实现真正的数据访问。
(3)、分布式事务处理支持
微软的.NET技术提供了System.Transations名称空间,专门用来实现分布式事务处理,CSLA.NET框架在数据访问门户中充分利用了这个名称空间。再看看开始提到的那张图的中间部分:
图10:数据门户的消息路由
Csla.Server.DataPortal对象使用TransationalAttribute来决定应该为客户端提供什么类型的事务方法,最终,所有调用都通过Csla.Server.SimpleDataPortal来处理,将调用发给相应的业务对象去处理。
(4)配置信息与运行环境的无关性
要成功地使得对象能够在其他进程或者电脑上运行,就必须为业务对象提供一个一致的环境。下面通过异常数据的调用来显示对象如何在不同进程间传递:
图11:移动对象在不同进程中调用
为了支持配置信息与运行环境的无关性,CSLA.NET框架的数据访问设计了下面几个重要的支持类:Csla.Server.DataPortalContext、Csla.Server.DataPortalResult、Csla.Server.DataPortalExeption、Csla.ApplicationContext。
有了这些类的支持,客户端的Csla.DataPortal负责将客户端的配置信息传递给服务器并且在服务器配置有变化的情况下对客户端进行更新,从而实现了一致的配置信息。

没有评论: