以下的说明基于利用Dorado的MVC框架的基本开发方式:
1. Request(请求): 当Client端(浏览器)发起请求时, 改请求将首先被Dorado的控制层(Mapping)接受.
2. Dispatch(分发): 控制层会跟据用户的配置决定激活哪一个Action.
3. Forward(转向): 商业逻辑执行完成后Action将根据商业逻辑的执行结果将Request转向给具体的视图(ViewModel). 具体的转向方式由Action的用户配置信息决定.
4. Extract(提取): 视图(ViewModel)被激活后会通过其中的Dataset对象到Module中提取业务数据. 同时视图也会根据配置信息自动创建各种可视化的控件用于展现提取到的业务数据.
5. Response(反馈): 视图的Server端准备工作完成后会自动将各种信息输出到Response对象中反馈给Client端.
注意 |
上图中以虚线标出了dorado的MVC架构与传统MVC的不同点. 这种不同主要是由dorado强大的Client带来的.
1. 由于dorado的Client不再以传统的HTML FORM作为与Server交互的途径, 而是以XML替代. XML所能构承载的信息量和复杂度远远高于HTML FORM. 所以在dorado的开发模式中往往不在Action中直接调用业务逻辑, 而是等到ViewModel和Module将这些XML解析成对象后再调用业务逻辑.
2. dorado的Client中除了有普通的类似FORM提交的操作之外, 还存在着一种数据请求操作. 例如在不刷新页面的情况下下载数据集的分页信息、远程方法调用等. 这种请求与普通的提交的操作的处理方式有着很大的不同, 也同样难以通过Action进行统一的处理. 而且利用dorado的MVC开发方式却可以很好解决这一问题.
以上变化, 经过锐道公司extra和dorado两代产品的数十家不同类型、层次的开发的实践证明是完全可行, 且对系统的扩展性、复用性、安全性完全无害的. |
上图解释了数据如何通过各个功能层从数据库中转换到可是化控件中的过程.
1. ViewMode用于定义一个视图的模型,包括数据模型(Dataset)和可视化组件(Control)的模型。Dataset是一种用于为Client服务的二维数据表。Control可以绑定到Dataset,用于展示和操作Dataset中管理的数据。
2. DatasetRefrence是一种对Module中Dataset的引用,用于使用ViewModel之外的其它的Dataset的数据。
3. Module一般用于描述一组相关的商业逻辑或作为后台的商业逻辑的前端(商业逻辑前端也称为:BusinessDelegate)。Module可通过Dataset的事件来将Client对Dataset中数据的操作翻译成真正的业务逻辑操作。
4. 在默认模式下,用户可通过SQL进行数据库操作,此时用户可利用Module中的Dataset对象直接对数据库进行操作。