A few days ago I posted my experience about learning MVVM and why I like it. Since then I’ve had a few comments & emails about the fact there are a ton of different MVVM toolkits out there. I was remiss in mentioning the one that I found to be quite useful.
For me, the toolkit that I found and use is called MVVM Light. You can download it from CodePlex . It is by Laurent Bunion . You can read up about it on his blog ( go to the getting started page ). If you have questions, check out questions tagged on StackOverflow with mvvm-light .
So why does MVVM Light appeal to me? First, it’s very simple and not very intrusive. I don’t like buying into massive toolkits… I feel like I’m handcuffed to the way they do stuff. MVVM Light has a few things that make life a bit easier:
Messenger - This makes it easy to have one piece of the view model listen for messages from other view models.
RelayCommand - This was useful before the Silverlight 4 release added commanding support. However now, if you’re doing Silverlight 4 development, I am not finding much use with this.
DispatcherHelper - When talking from the background thread back to the UI thread, but from within the view model where you don’t have easy access to the Dispatcher object.
Blendability - It helps implement the practice of writing applications that can run in Expression Blend 4 while developing them as well as running in debug/release mode.