MVVM Light Toolkit

New release: MVVM Light Toolkit V3 SP1

Current version: V3.0.0 SP1, released 30th of March 2010

Includes support for Windows Phone 7 in Studio 2010, Studio Express and Blend 4

Includes support for WPF3.5, WPF4, SL3 and SL4 in Studio 2010, Studio Express and Blend 4

Includes support for WPF3.5 and SL3 in Studio 2008 and Blend 3

Introduction

The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in WPF, Silverlight and in the Windows Phone 7.

Like other MVVM implementations, the toolkit helps you to separate your View from your Model which creates applications that are cleaner and easier to maintain and extend. It also creates testable applications and allows you to have a much thinner user interface layer (which is more difficult to test automatically).

This toolkit puts a special emphasis on the "blendability" of the created application (i.e. the ability to open and edit the user interface into Expression Blend), including the creation of design-time data to enable the Blend users to "see something" when they work with data controls.

Much has been written about MVVM as a pattern. I recommend starting by watching my MIX 2010 presentation titled "Understanding the MVVM Pattern" (video and slides | source code). Also, read Josh Smith's article and Shawn Wildermuth's article about MVVM at MSDN. Dan Wahlin also has a very good Getting Started with MVVM article.

Installation and Creation

The MVVM Light Toolkit installation procedure is described here.

To create a new MVVM Light application, check this article (for Visual Studio) and this one (for Expression Blend).

Components

This toolkit gathers libraries and helper components for Windows Presentation Foundation, Silverlight and for Windows Phone 7.:

 

Source code and Codeplex

The source code for the libraries is available on the Codeplex site for the MVVM Light Toolkit. This is also a good place to post suggestions/remarks/questions/discussions about the toolkit.

 

Support

MVVM Light <3 StackOverflow

We encourage the use of StackOverflow for questions regarding MVVM Light Toolkit. StackOverflow is an awesome site for questions related to programming. There is a huge community of developers answering questions there. Please use the tag mvvm-light to tag your questions.

StackOverflow "mvvm-light" tag

 

Articles and tutorials about the MVVM "light" toolkit

By Laurent

New Versions:

Installation, Creation, Cleaning up

Videos:

Documentation about specific components:

By others

 

Donate

If you are so enclined, you can donate to MVVM Light Toolkit. Or, if you prefer, you can pay me a beer next time we're in the same vicinity. Really, it is OK too :)

Donate to MVVM Light Toolkit

 

Credits

The creation of this toolkit would not have been possible without the following people:

Josh Smith created the RelayCommand and gracefully allowed me to integrate it with very minor changes inside the toolkit and to distribute it. He is also my "go to guy" when I have issues (with my code, I mean).

Marlon Grech started mentioning using a mediator pattern to communicate between ViewModels. This discussion led me to create the Messenger class.

Jaime Rodriguez had numerous discussions with me regarding the creation of ViewModels and gave me food for thoughts...

Glenn Block helped me finalize some thoughts and sparked a lot of new ones. He also gave me great motivation to write this toolkit, and is an early tester and reviewer of the toolkit.

Corrado Cavalli gave me a lot of fantastic feedback and ideas for new features or improving existing features, and was one of the very active early testers.

Laurent Kempé was often here to keep me company in the wee morning hours, to talk about the direction and features of the toolkit, and gave me very valuable feeback. His team at Innoveo is using the MVVM Light Toolkit in their new WPF application, and very supportive when it comes to improving and testing the latest versions!

Brian Henderson and Rob Zelt helped test early versions and gave precious feedback and suggestions to improve the features.

Steven Robbins helped me with an issue and suggested I use a hack to solve it. "I think you can safely say the worse line of code in your toolkit is my one :-)"

All the WPF Disciples for the MANY discussions we had around the pattern and the best way to implement it in various situations. You guys all rock my world!

 

Praises about the MVVM light toolkit