框架是面向一個(gè)領(lǐng)域,提供一套解決方案,那么我們用.NET前端的MVVM能為我們帶來(lái)什么便利?
•關(guān)注點(diǎn)分離
•操作數(shù)據(jù)即操作DOM
•動(dòng)態(tài)模板
西安達(dá)內(nèi)培訓(xùn)(http://www.xatarena.cn/net/index.jhtml)講師表示,.net中的MVVM是更加通用的Presentation模式的一個(gè)具體實(shí)現(xiàn)。MVVM視圖模型包含概念模型而不是數(shù)據(jù)模型,所有業(yè)務(wù)邏輯和其它操作都是在模型和視圖模型里完成的。有很多框架可以做到這點(diǎn),其中一些是:
開源的
PRISM:由微軟提供,和MEF/Unity一起用于依賴注入,支持組合命令,可以擴(kuò)展。MSDN上有詳細(xì)的教程和演練。
MVVM Light Toolkit:有visual Studio和Expression Blend的項(xiàng)目和項(xiàng)的模板。更多信息請(qǐng)看這里,另外可以參考VS和Expression Blend的使用教程。
Caliburn Micro:支持視圖模型先行(ViewModel-First)和視圖先行(View-First)兩種開發(fā)方式,通過(guò)co-routine支持異步編程。
Simple MVVM Toolkit:提供VS項(xiàng)目和項(xiàng)的模板,依賴注入,支持深拷貝以及模型和視圖模型之間的屬性關(guān)聯(lián)。
Catel:包含項(xiàng)目和項(xiàng)的模板,用戶控件和企業(yè)類庫(kù)。支持動(dòng)態(tài)視圖模型注入,視圖模型的延遲加載和驗(yàn)證。還支持WP7專用的視圖模型服務(wù)。
閉源的
Intersoft ClientUI:付費(fèi)的,只支持WPF和Silverlight,但是,除了MVVM框架,它還提供其它一些特性。
Vidyano:免費(fèi)但不開源。帶有實(shí)體映射/虛擬持久化對(duì)象(數(shù)據(jù)容器),業(yè)務(wù)規(guī)則以及內(nèi)置基于ACL的安全特性。
使用MVVM的*大好處之一是分離關(guān)注點(diǎn),以便用戶體驗(yàn)設(shè)計(jì)師和應(yīng)用程序開發(fā)者可以并行工作。另一方面,相關(guān)的擔(dān)憂包括它對(duì)于UI操作比較簡(jiǎn)單的情況有點(diǎn)殺雞用牛刀的感覺(jué),數(shù)據(jù)綁定有點(diǎn)難以調(diào)試,以及大量使用數(shù)據(jù)綁定可能帶來(lái)性能問(wèn)題等等。 |
 |
|