The State of MVVM

local_offer
open book lot

Photo by Patrick Tomasso

Ok, so I've been meaning to (procrastinating actually) write a blog entry for a while now.

Over the past year or so I've been struggling to come up with a simple, easy, repeatable way to develop applications for WPF. And while the Model-View-ViewModel (MVVM) pattern gets us a long way there it's not without issues.

Other people have tried addressing the shortcomings of WPF by going for a Model-View-Controller (MVC) pattern, but this implies a navigation style user experience, which isn't always the case. Take multi-document interfaces for example, where there may be multiple Views open, all of which are active (documents, tool windows, etc.).

So instead I decided to tackle the issues as I saw them with using the MVVM pattern. The most major issues I had were:

Over the next few blog posts I hope to demonstrate a set of tools and utilities that will help with these issues, and generally make it easier to develop desktop applications using the MVVM pattern. So far I've only applied the solution to WPF applications but I don't see why it couldn't also work in Silverlight or WinRT when the MVVM pattern is implemented.