我一直在使用MVVM编写我的Windows 8应用程序和Windows手机应用程序。我即将接触到MVVM Light,我只是想知道它们之间的区别是什么?我想MVVM light是MVVM的沙盒版本,它带有WPF和WinRT / WP8开发。
有一个简单的答案吗?为什么选择MVVM Light而不是MVVM?
答案 0 :(得分:12)
没有“MVVM full”这样的东西。
MVVM是关于如何构建UI以及数据和业务逻辑的模式。
MVVM light是一个轻量级框架,可以帮助您实现模式。
BTW:将鼠标悬停在你问题中使用的标签上也会回答这个问题; - )
答案 1 :(得分:2)
MVVM Light旨在作为工具包(而不是框架;)提供一组组件,可在根据MVVM模式编写应用程序时帮助您。例如,MVVM Light有一些库类,它们封装了重复的代码,片段以加速和促进打字,项目和项目模板,以加快新应用程序的创建,并避免浪费时间与基本的“布线” app等。
答案 2 :(得分:1)
MVVM代表ModelViewViewModel。
MVVM Light是“Laurent Bugnion” - GalaSoft
的组成部分http://mvvmlight.codeplex.com/
MVVM是一种企业应用程序开发模式,是一种最佳实践。我们可以通过以下页面深入了解。
http://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx
如果您想做全业务专用。独立于用户界面元素,如silverlight TextBox,我们需要应用MVVM模式。 通过这种方式,我们重用其他客户端平台的业务部分。比如Windows Phone ..
如果您了解MVC,则可以将Controller重新采样为ViewModel,但此ViewModel不包含视图中对象的任何引用。您的VM可能会抽象您的视图。
我认为.NET的MVVM模式应用程序应该知道这些技术; 指挥, CollectionViewSource用于过滤排序操作, DataContext的, 捆绑, INotifyPropertyChanged的
答案 3 :(得分:1)
我一直在使用两种方式(明显地) - MVVM是一种设计模式,我根据模式简单地用来构建我的代码 - 所以本质上MainWindow.xaml位于View文件夹中,MainWindow_ViewModel.cs位于VM中文件夹,然后有Model.cs,它位于我的Model文件夹中。 View的DataContext使用ViewModel类进行连接。当然MVVM不仅仅是文件组织,而是确保代码按照模式编写(逻辑分离和应该根据模式实现的所有好东西)。这样做 - 并不一定需要我引用MVVM Light库来执行上述操作。
当我想使用Messenger.Default.Send(广播值)Messenger.Default.Register(以获取不同VM中的值)在多个ViewModel之间进行通信时,我专门使用MVVM Light
如有必要,可以共享示例代码。希望有所帮助。
答案 4 :(得分:0)
MVVM Light是Galasoft开发的MVVM模式的工具包。因此,MVVM是一种设计模式,MVVM Light可帮助您将其付诸实践。