I finally received my copy of Applications = Code + Markup by Charles Petzold. It is rare that I buy a computer book with so much anticipation and desire to just sit down and read it cover to cover. The last time I had this feeling was with Framework Design Guidelines by Brad Abrams and Krzysztof Cwalina. That book was awesome and I definitely read it from cover to cover.
Petzold's book is not the first book I have read on the Windows Presentation Foundation - I have also read Chris Sells' Programming Windows Presentation Foundation which I would say was OK but not great.
Since it will probably take me a couple of weeks to work my way through Petzold's book, I will just blog about my thoughts along the way.
First off, I love the idea of using just code and no XAML during the first half of the book. This really drives home the idea that you should understand what XAML eventually translates to in code. In order to truly understand a technology like WPF, you have to start from the very basics and work your way up. It is such a new programming paradigm in so many ways that somebody who has experience with Asp.Net or Windows Forms programming will not necessarily be able to transfer all of their UI knowledge to WPF that easily.
I do, however, have some immediate gripes with the book (albeit small ones). I definitely echo the sentiments found on some of the Amazon.com reviews regarding screenshots. I immediately noticed this books lack of any screenshots or diagrams. On one hand, this goes with the whole learning from scratch thing and I can see how the author may be using this as a way to encourage the readers to try out the examples for themselves. I just think that a book on a presentation technology could really benefit from pictures to really drive home the point.
Another very small gripe I have is also echoed on amazon.com: the fact that every code example in the book has 3 lines of code that are not necessary - The copyright notice.
// ProgramName.cs (c) 2006 by Charles Petzold
I could see including these in the downloaded example code, but to print them in the book is just redundant and really adds up as far as space. Hundreds of examples * 3 lines of code = many extra pages in the book.
I am sure I will have many more good to say about this book in the long run than bad as I really enjoy Petzold's writing style and he is definitely very knowledgeable.