Possibly a "Classic", 2008-10-20
Reviewer rating:
A quick background of my skills prior to reading the book so you know where I'm coming from:
- Strong: C++, Win32, 2D UI
- Learning: C#, .NET, WPF, XAML, XML
Being extremely anxious to dig in to WPF, I was seeking a book that would hold my hand through the process but by the end, leave no stones unturned. This book comes close.
My first attempt at learning was "Windows Presentation Foundation Unleashed" by Adam Nathan. I quickly became frustrated with the book because I was regularly feeling lost. You know, like when you are conversing with a really intelligent person who has a hard time helping you connect the dots. I do recommend Adam's book as a supplement as it's got good material and is in full color. After reading the reviews for "Programming WPF" by Sells & Griffiths I took the leap.
I read the book cover to cover minus 3 chapters: 3D, Interoperability and Async/Multithreaded -- about 700 of 800 pages. Usually books this fat have lots of useless pages. Not this book, no sir, which just goes to show how much there is to learn about WPF and XAML. In a word, the book is brilliant, written for experienced programmers who want to learn WPF and XAML.
It has the same feel as Petzold's Win 3.x books, i.e. Light-hearted, start easy and built to a powerful crescendo as the chapters progress. The latter chapters are no more difficult to digest than the previous chapters, but do build upon previous chapters. That said, I was extremely grateful that the book didn't have a grand project that was slowly built upon chapter by chapter; code examples mostly stood on their own and were plentiful (and they worked as printed!)
As noted above, I know very little about WinForms, and WPF is the obvious successor. Though parallels were duly noted, I was thrilled that there were not constant sidebars saying "Hey Mr. WinForms! Everything's OK! This is just new stuff and you can handle it. Rah! Rah! Rah!" As the authors make abundantly clear from page 1, WPF is light years ahead of WinForms.
As noted above, WPF and XAML are big topics so be prepared to get up and stretch your legs a lot, hold you head frequently and doubt the wisdom of learning new things.
On the down side, the book is weighted a bit too heavily towards XAML for my tastes. Since C# can do absolutely everything (and more) that XAML can do, I wish there were more dual examples that show how XAML does it and then how C# does it. There are examples like this but not enough. This would satisfy the curiousity of developers who wonder about how XAML "magically" achieves things.
Another gripe, now that I am attempting to apply what I have learned: I am frequently having to turn to a Google search to find details not present in the book. For example, the section about event bubbling covers good ground but I immediately had a problem when trying to use bubbling: I was attempting to use it with sibling elements and that does not work but (as far as I can tell) this was not noted in the book. It feels as though the book was not field tested.
And a final gripe: The index is sparse. I am regularly having to pencil in items.
Some brief notes:
- I really hope this book evolves along with WPF's evolution
- The material seemed fresh (as of Oct 2008) except the Silverlight appendix which has aged since Silverlight 2.0 has been released
- The corresponding errata website does not seem to be updated regularly (though I didn't encounter many editing problems)
- Even though the book only has a dozen pages of color plates, you won't feel deprived as the examples will light up your display in all sorts of fun ways.