WPF and Silverlight are unlike any other user interface (UI) technologies. They have been built to a new paradigm that—if harnessed correctly—can yield unprecedented power and performance. This book shows you how to control that power to produce clean, testable, maintainable code.
It is now recognized that any non-trivial WPF or Silverlight application needs be designed around the Model-View-ViewModel (MVVM) design pattern in order to unlock the technology's full data-binding potential.
However, the knowledge of how to do this is missing from a large part of the development community—even amongst those who work with WPF and Silverlight on a daily basis. Too often there is a reliance on programmatic interaction between controls and not enough trust in the technologies' data-binding capabilities. This leads to a clouding of design values and an inevitable loss of performance, scalability, and maintainability throughout the application.
Pro WPF and Silverlight MVVM will show you how to arrange your application so that it can grow as much as required in any direction without danger of collapse.
What you’ll learn Understand why the separation of an application’s View and its Model is paramount, including the history of Model-View-Presenter and Model-View-Controller. Apply WPF and Silverlight’s powerful data-binding model correctly. Examine how to organize an application targeting WPF or Silverlight, including unit-testing, source-control, separation of concerns, data serialization, and how to tie everything together with MVVM. Develop a full game development application using MVVM by example. How to serialize the Model without being invasive, how to implement a plug-in architecture that extends both the View and the Model, and how to handle Exceptions gracefully. Who this book is for
Developers that wish to learn how to architect WPF or Silverlight applications to ensure maintainability, testability, and separation of concerns.
Table of Contents Overview of WPF and Silverlight DataBinding Model-View Separation The ViewModel Events and Commands Validation Unit Testing Data Access Layer Application Support Sample Application