這是本人2011年8月為某團隊寫的 Silverlight MVVM 模式入門教程。
雖然Silverlight有被HTML5代替的趨勢,但是Silverlight無論在開發還是表現上所具有的“一致性”更為突出,再加上完善的平台功能,Silverlight仍然是目前最好的RIA業務應用開發平台(之一)
我是通過In-The-Box MVVM Training(http://visualstudiogallery.msdn.microsoft.com/3ab5f02f-0c54-453c-b437-8e8d57eb9942)了解MVVM的,所以這篇文檔的大部分表述性內容,以及文檔結構,都來自In-The-Box MVVM Training,個人主要在內容翻譯及示例代碼上有所發揮。
本來是想在第二部分介紹MVVM Light Toolkit 這一輕型MVVM框架的,主要是認為搞清MVVM原理后自然也就會用那玩意了,所以就沒寫那第二部分。
MVVM模式教程
1 目的
本文目的在於使開發人員理解並實現MVVM模式。
2 文檔結構
本文分為兩部分。
第一部分中首先對MVVM進行介紹,再以基本方式對MVVM進行實踐,目的在於掌握MVVM原理。
第二部分結合MVVM Light Toolkit這一MVVM框架進行實踐,目的在於高效運用。
3 MVVM
MVVM(Model-View-ViewModel)是一種應用於微軟XAML平台應用開發(WPF、Silverlight、WindowsPhone 7)的分層模式。
此模式描述UI組件(視圖、表單和數據模板)怎樣與相關應用代碼進行交互。
4 MVVM的優勢
4.1 松耦合
通過將UI邏輯(XAML Code-Behind中的代碼邏輯)轉移到ViewModel,從而實現UI組件與UI邏輯的松耦合。
被分割后的兩部分在MVVM中分別叫做View(UI)和ViewModel(UI邏輯)。
4.2 天然性
XAML平台具有功能強大的數據綁定框架,MVVM基於此而實現。MVVM與XAML是天然結合。
4.3 開發者-設計者工作流程
在MVVM模式下,開發者、設計者可分別獨立工作,互不干擾。
先由開發者開發ViewModel(應用邏輯),之后交由設計者進行View(UI)設計。
4.4 可測試
通過分割UI組件與UI邏輯,可以更容易進行單元測試。