这是本人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逻辑,可以更容易进行单元测试。