silverlight技術的出現也已經有很長一段時間了,但是卻感覺還沒有比較統一的框架模式(個人的技術水平有限)。
在研究它的架構模式過程中,剛開始是試想採用mvc模式來搭建系統架構,利用silverlight與webform相結合的形式,但是框架做好了之後感覺不太好使,webform與silverlight間的頁面展現總是感覺不能跟其相應的頁面邏輯**實現分離;相反,controller對於view的控制還增加了相應的工作量,所以放棄採用mvc模式。
後來嘗試採用mvp模式,雖然能夠實現頁面的邏輯分離,但是presenter卻感覺顯的比較臃腫,需要處理的關係較多,壓力較大,所以只能繼續尋找合適的框架模式。
終於找到了一種相對合適的框架模式:mvvm,即model-view-viewmodel。這種模式跟mvp模式相似,只是對它進行了相應改進。view這裡跟mvp中的view是一樣的,負責頁面展現;viewmodel是對應於view的頁面模型,包含與view想對應的屬性與行為;model可以分為業務模型與實體模型。通過這種方式,我們可以實現頁面與邏輯的分析,只有我們的viewmodel不變,那麼view既可以用wpf,也可以用silverlight等來展現。如下圖:
隨著.net 4.0的推出及silverlight技術與wcf的不斷完善,也使我們可以更靈活的搭建相應框架。如上圖,在service layer,我採用了domain service來處理client與service間的通訊,domain service也是一種wcf通訊方式,只不過是對它進行了封裝,使我們不用去關心具體的通訊問題;domain model採用了ado.net entity data來處理資料連線。下面是我做的乙個框架模型:
這裡分為client與server兩部分:client主要是負責頁面展現及相應的頁面模型;server則負責業務邏輯處理
1.client
mvvm.client:view,這裡是我們要實現的ui展現,可以用silverlight、wpf等;
mvvm.client.viewmodel: viewmodel,包含與view相對應的屬性與行為;
2.server
mvvm.server.data: entity model,實體模型,我們可以新增乙個ado.net entity data model來實現與資料庫的通訊;
mvvm.server.dataservice: data service,資料服務,通過它進行相對應的資料操作;
mvvm.server.web: web應用程式。
這就是我對於mvvm這種模式的理解,希望有興趣的朋友一起**、學習。
CI框架初探
2014年7月3日 17 39 35 簡易版 index.php codeigniter.php 找到控制器類檔案並include 建立例項 執行成員函式 詳細版本 瀏覽器請求 index.php 包含codeigniter.php 接下來的步驟都是在codeigniter.php中執行 包含sys...
AIML框架 初探
建立乙個 aiml main.py 檔案 aiml由richard wallace發明。他設計了乙個名為 a.l.i.c.e.artificial linguistics internet computer entity 人工語言網計算機實體 的機械人,並獲得了多項人工智慧大獎。aiml是一種為了匹...
go micro 框架初探
得益於go語言的編譯快效能高特點,在雲原生時代其作為服務端程式語言發展迅速,尤其是微服務領域,已逐漸形成乙個良好的生態,基於golang的微服務框架如今有很多,如go kit go micro kite gizmo等,每一種都自有其優點。今天就來探一探go micro框架。go micro是基於go...