Practical MVVM

Hi! My name is Joel Cochran, I'm an Expression Blend MVP and a full time WPF developer. While visiting numerous User Groups, Code Camps, Conferences, and forums like StackOverflow, I constantly find developers who are struggling to get a handle on MVVM. This site is my attempt to help alleviate some of those struggles. As the site grows I will share the ideas I've garnered from using MVVM on a daily basis for the last several years.

The Practical MVVM Manifesto

I was asked to give a presentation to my local user group at the January 2011 meeting. Around the same time I found myself explaining MVVM to several pretty smart developers: these are the kind of guys that make feel like I'm still punching holes in cards! I was surprised at the confusion and misconceptions some of these super stars had regarding MVVM. In my mind, it really highlighted the severity of the problem: if these guys are struggling with it, how are the rest of us mere humans supposed to make sense of it all?

I began to realize that I had some very specific ideas about how to make MVVM easier to understand, easier to implement, and easier to maintain. Over the course of several months and numerous presentations and discussions on the topic, those ideas solidified into The Practical MVVM Manifesto. While I do show a sample implementation during my presentations, I want to make it clear that the manifesto is not an implementation model or a framework: it is a set of principles that I feel should be followed when implementing MVVM for XAML platforms.


I do not claim to be an architecture guru or even an MVVM expert, I'm just a guy who uses MVVM day in and day out. The ideas here are certainly open to debate: my goal is to help fellow developers struggling with MVVM to get a handle on it and to develop habits they won't regret later.

I've discussed the ideas contained herein with several dozen experienced developers and presented it to several hundred, with resoundingly positive feedback. While not everyone agrees with my principles, I'm confident that they can help a large contingent of developers.

This is a work in progress. In the future I plan to expand this site and discuss the topic in more specific detail. In the meantime, I hope that you will find it helpful.

Joel Cochran

Joel Cochran is an Expression Blend MVP, INETA Community Champion, and author of Expression Blend in Action by Manning Publications.

All works and contents herein Copyright © 2011.