AngularJS利刃 MVVMLight 1:MVVMLight介绍以及在类型中的使用

一、MVVM 和 MVVMLight介绍

MVVM是Model-View-ViewModel的简写。类似于当下可比盛行的MVC、MVP设计格局,重要目标是为着分离视图(View)和模型(Model)的耦合。

它是一种相当优良的设计格局,但不要框架级此外事物,由MVP(Model-View-Presenter)形式与WPF结合的行使措施时进化衍变过来的一种新颖架构。

立足于原有MVP框架并且把WPF的新特点糅合进去,以应对PC端支出逐渐复杂的需要变化。

 

布局如图所示:

AngularJS 1

 

相对于事先把逻辑结构写在Code Behind
里面的章程,MVVM几乎完全解耦了视图和逻辑业务的涉嫌,通过数据绑定和下令来拍卖UI属性

及事件驱动。同理,ViewModel的视图交互业务逻辑处理导致的习性变更也会打招呼到View前端,让View前端实时更新。Model中存放数据模型和数据逻辑、业务逻辑。

实际自己个人认为,数据和作业交互这一层或者应该此外独立,Model中全然就是实体模型,这样更显明。

 

这连串型的双向绑定分外可观,View的更改,会自动感应到ViewModel上,反之亦然。近来JS前端框架AngularJS也是运用这种设计形式。

 

MVVM格局和MVC情势一样,紧要目标是分别视图(View)和模型(Model),有几大优点

1.
低耦合:
视图(View)可以单独于Model变化和修改,一个ViewModel能够绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。

2.
可重用性:
能够把有些视图逻辑放在一个ViewModel里面,让许多View重用这段视图逻辑。

3.
独自开发:
开发人士可以小心于业务逻辑和数码的开销(ViewModel),设计人士可以小心于页面设计,使用Expression
Blend可以很容易设计界面并生成xml代码。

4.
可测试:
界面平素是相比较难于测试的,而先天测试可以针对ViewModel来写。

 

但愿对MVVM有更进一步询问的同校可以看看这篇著作:https://www.codeproject.com/kb/wpf/wpfmvvmquickstart.aspx

笔者从MVVM的形式介绍到数量绑定、消息通告、命令等多少个重点方面都有详尽的印证。

 

即使您眼前正值开展微软的 WPF 、Windows Phone、Windows
8、SilverLight相关项目标付出,我先很有必不可少精通一下MVVM Light框架。

它轻量(绝对于Prism),专注(仅负责MVVM架构形式的落实,没有任何多余的机件),高效(使用简便,省时减力),可以帮助您更好的开支你的行使。

 

MVVMLight的作者劳伦特(Laurent) Bugnion
是个微软MVP,这么些是MVVMLight的官网:http://www.mvvmlight.net/,下边有详实的介绍和视频文档,

与此同时作者还将代码开源到Codeplex上边:http://mvvmlight.codeplex.com/,有趣味的同窗可以下载来了解下。

 

诙谐的是,MVVMLight的出品Logo是一根羽毛,寓意了大家地点提到的助益:轻量、专业、高效,不领悟作者是不是那个意思。

AngularJS 2

 

 

 

二、如何在你的WPF应用中动用MVMLight

第一行使办法有二种;

一种是去官网上下载MVVMLight
Toolkit,安装之后,VS模板中会出现MvvmLight项目模板,你可以间接选拔该品种模板来创建项目了。

里面会包含默认的ViewModelLocator和MainViewModel,MainViewModel就是你Main视图的ViewModel了,而ViewModelLocator是一个大局的ViewModel加载注册器,这么些第二篇会详细说到。

 

另一种办法就是去NuGet上安装,这确实是最便利的事了。在NuGet 工具箱上探寻
MVVM Light,可以看看六个体系,一个是MVVM Light , 一个是 MVVM Light
libraries only。

当前版本是5.3,表明MVVM Light的换代速度如故挺快的,Prerelease中还有 V5.4
的 ALAPHA 版本。

 

Nuget上这四个档次的界别就是MVVM Light除了不可或缺的GalaSoft
组件之外,还会附加添加相关分层文件目录形成简易的MVVMLight成型框架。

AngularJS 3

 

如图它会帮你生成ViewModel文件夹,里面包含MainViewModel和ViewModelLocator文件。

AngularJS 4

至今,一个依据MVVMLight的WPF项目框架基本搭建完成了,下边一篇大家详细说下框架的社团。

 

转载请标明出处,谢谢 

 

相关文章