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.