Synopses & Reviews
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
Synopsis
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.