Effective Application Development with
Model-View-ViewModel
Harness the power of WPF and Silverlight to
produce clean, testable, maintainable code
This book was conceived from a need to explain the MVVM pattern and how it helps structure WPF and
Silverlight applications. I had worked on a number of projects where these technologies were used but
general best practices were ignored because no one had formally explained the MVVM pattern and how
it compared to other patterns such MVP and MVC.
In Chapter 1, WPF and Silverlight will be explored in some detail and their respective features
highlighted.
Chapter 2 introduces the foundation of the MVVM pattern: the databinding model that eclipses the
equivalent functionality of Windows Forms or ASP.NET.
Chapter 3 explains why the model and the view must be separated in an application and provides
various tips and tricks that can help achieve a strict separation of concerns.
Chapter 4 introduces the ViewModel that sits between the model and view layers and mediates between
the two.
Chapter 5 discusses commands and events, weighing up the pros and cons of each.
Chapter 6 examines various options for implementing validation into an application.
Chapter 7 explores the best side effects of the separation of concerns achieved through MVVM:
testability and unit testing.
Chapter 8 outlines how to implement a Data Access Layer into a Silverlight or WPF application and how
the ViewModel can interact with this layer.
Chapter 9 explains how to serialize an object graph using WPF and MVVM, as well as exploring how WPF
and Silverlight applications can be extended.
Chapter 10 ends the book with a sample application that ties together many of the features covered
along the way.
1