Author: Matthew MacDonald
Publisher: Apress, 2012
Audience: C# Programmers
Reviewed by: Mike James
Although 150 pages shorter than the previous edition, this is still a brick of a book. Is it all you need to know about WPF?
There are no new chapters in this book compared to the 2010 edition.This mirrors the fact that there have been no significant introductions to WPF recently.
The first part of the book is an introduction to WPF and this hasn't changed much. It starts off with a look at why WPF is important and its basic principles of operation - XAML, Layout, Dependency Properties, and Routed events. This really is what you need to know to start to master WPF - it isn't an easy technology.
The second part of the book look in more detail at WPF. The first chapter looks at the standard controls one at a time with examples mostly in XAML. From here we move on to consider the application and some of the new frameworks introduced - binding, commands, resources and styles.
Part III is about drawing and animation. This is where you learn about the graphics elements of WPF - brushes, transformations, paths, effects and visuals. The section finishes off with two chapter on animation.
Part IV is about customizing controls using template and custom element.
Part V changes the topic completely to look at data - mostly data binding both to simple elements and to collections. It also considers using a database with the view object.
Part VI is on the topic of working with Windows i.e. the Window class, and how to add menus, toolbars etc, and how to build multiple page applications with web like navigation. This is also where we learn about sound and video and 3D graphics.
The penultimate part of the book is about documents and printing and the book finishes with some chapters that don't really fit anywhere else - multithreading, Add-ins and clickOnce deployment.
This is an encyclopedia of a book and if you read even 10% of it you will know quite a lot about WPF - the problem is which 10%. I can't imagine anyone sitting down and reading it cover-to-cover and yet,without a good overview, it is difficult to find your way to topics that are important. The order that topics are introduced is fairly logical, but you probably don't need to master each one in the depth that the book presents you with before moving on to the next.
The first two parts are probably the most important and form a "core" WPF course. After this you can dip into to topics as they become important in projects that you are working on - data binding, graphics and so on.
If you want a huge and fairly complete treatment of WPF then this is your best choice. As there is no obvious time scale for the release of WPF 5 - assuming that there will be a WPF 5 - it should also have a good shelf life.