我一直在使用MVVM编写我的Windows 8应用程序和Windows手机应用程序。我即将接触到MVVM Light,我只是想知道它们之间的区别是什么?我想MVVM light是MVVM的沙盒版本,它带有WPF和WinRT / WP8开发。
有一个简单的答案吗?为什么选择MVVM Light而不是MVVM?
没有“MVVM full”这样的东西。
MVVM是关于如何构建UI以及数据和业务逻辑的模式。
MVVM light是一个轻量级框架,支持您实现模式。
顺便说一句:将鼠标悬停在你问题中使用的标签上也会回答这个问题;-)
MVVM Light旨在作为工具包(而不是框架;)提供一组组件,可在根据MVVM模式编写应用程序时帮助您。例如,MVVM Light有一些库类,它们封装了重复的代码,片段以加速和促进打字,项目和项目模板,以加快新应用程序的创建,并避免浪费时间与基本的“布线”应用程序等
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,Binding,INotifyPropertyChanged
我一直在使用两种方式(明显地) - 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
如有必要,可以共享示例代码。希望有所帮助。
MVVM Light是Galasoft开发的MVVM模式的工具包。因此MVVM是一种设计模式,MVVM Light可以帮助您将其付诸实践。