I read a lot of programming books. For some reason I like to pick up books on topics that may never benefit me; sometimes it’s neat to get outside my comfort zone. I’ll use this page to detail the books I’ve read and include short reviews. Note this page is living and as of October 28, 2010 not even 10% complete. This version is just here to get the ball rolling.
I started learning WPF in 2008. It’s radically different than Windows Forms if you want to use it effectively. There’s likely enough content online to become dangerous today, but books bring a lot of value to the table by organizing the content and removing distractions. Most of the books are quite old and thus missing information about crucial application architecture topics like MVVM; this is a shame because one of WPF’s primary advantages is it supports separation of UI and logic better than WinForms did. Luckily, there’s no shortage of information about this topic on the internet.
Here’s the list of books I’ve read for WPF. with a 5-star rating system to indicate how strongly I recommend them. 5 stars is “must-have”, 3 stars is “worth the money but of questionable use”, and 1 star is “avoid”.
- Silverlight 4 in Action (*****) – Don’t be fooled by the 1st edition of SiA; it was written for Silverlight 2 and is woefully out of date. This rewrite by Pete Brown is the book I wish I had in 2008. I feel like it does the best job of explaining WPF from a viewpoint that doesn’t assume you know too much about WinForms programming. Silverlight’s “lack” of some of WPF’s advanced features serves only to give this book an excuse to avoid topics that clutter other books. I am also very happy that Brown spends time discussing application architecture and includes a chapter about MVVM.
- Pro WPF (****) – Very dated at this point; it looks like APress has put out newer versions of this targeted at specific languages that I’d recommend instead. If you cannot read C# because of a curse placed upon you by a wandering mystic you probably want the VB .NET 2010 flavor of this book. This is an in-depth reference and the author doesn’t make much of an effort to entertain. I like to read Programming WPF more than this book, but I have to admit that this book hands-down has the most information of any other WPF book. It covers data binding with databases in its oldest incarnation, and the new books cover MEF, something not mentioned in other books. It’s got information that’s relevant for both app developers and developers of custom controls; I’d be risking my integrity by ignoring that this (“this” being “the newer versions”) is probably one of the best choices you can make for a reference book. If only it had included chapters on MVVM!
- Programming WPF (****) – I like this book the best out of the original 4 books I read on WPF. Sells and Griffiths write in a tone that, while technical, isn’t usually dry enough to induce drowsiness. The book covers a broad list of WPF topics. It’s slightly out of date; the last publish date was 2007 and that would be against WPF 3.5; the new WPF 4.0 pulls in some new features that are very much worth a look. It also lacks chapters on application architecture and the only reference to working with databases is a kind of “Yeah, you can do that” discussion in one paragraph. I like it a lot but it doesn’t cover as much ground as Pro WPF.
- WPF Unleashed (****) – If you do better with shorter explanations backed by code examples, this might be a superior choice to PWPF. This book is notable for being the only one I’ve read printed in full color, which makes a big difference in the chapters that discuss WPF’s advanced graphics capabilities. It’s also nice to have syntax highlighted source code on the pages. This book is short compared to the others I’ve read. It doesn’t tend to go into excruciating detail about any particular topic. This could make it frustrating as a learning tool but makes it invaluable as a desktop reference; it’s the first I reach for when I need to look up something quickly. I have the same old gripes for this book: there’s no discussion of ADO .NET interoperating with WPF and no discussion of application architecture. A new edition was released in June 2010; I’d recommend buying that instead of the older one. The ToC doesn’t make it apparent that any architecture or data access topics were added; I feel like that’s a glaring omission.
- Applications = Code + Markup (***) – Charles Petzold is a legend in Windows development. He literally wrote the book for development against the Windows API in C. However, this entry really disappoints. His writing style has always been very technical, but he usually makes up for that with interesting diagrams and examples. Sadly, in this book about a brand-new graphical programming framework there are fewer diagrams than in single chapters of his original book. His approach is something I agree with: the first half of the book is concerned almost entirely with WPF from code. Petzold did this for WinForms, and I really appreciate how he teaches the framework like a good math teacher: first you learn the theory and ugly guts, then you learn the shortcut. (Why I like this is a topic for a blog post.) Read this book and you’ll learn tons of interesting stuff about the guts of features most people don’t discuss. Unfortunately, the book is very dated and no new edition is available or in the works. (Petzold has stated he has no interest in writing new programming books, I’ll try to dig up his post about it later for a source.) I recommend this book if you’re a Petzold fan and curious about how WPF works when you’re not using XAML. Experience is teaching me this is even less important than it was in WinForms.