
以下的說明基于利用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對象直接對數據庫進行操作。