Author: Charles Petzold
Publisher: Microsoft Press, 2006
Aimed at: C# programmers
Pros: Detailed and logical
Cons: Perhaps too detailed for some
Reviewed by: Mike James
This book was published 5 years ago today. Is it still worth including on the .NET programmers bookshelf?
I first reviewed this book when .NET 3.0 and Windows Presentation Foundation were new and strange. It is now a classic - is it still worth including on the .NET programmers bookshelf?
Charles Petzold is a legendary author. When we were struggling to make sense of the early Windows API he produced a book, Programming Windows, that showed how it worked. At its publication this book was as up-to-date as you could wish for dealing, as it does, with Windows Presentation Foundation and .NET 3.0.
Petzold clearly has the programming experience and writing ability to do a good job but what you think of this book probably depends on which side of a very specific fence you are on.
The book’s title is a parody, or a homage depending on your point of view, of that of the well-regarded classic
“Algorithms + Data Structures = Programs”
by Wirth. Wirth’s classic book became a classic because his ‘equation’ was correct, but some people, me for one, don’t really think that a separation of concerns into markup and code is the right way to go.
And, perhaps surprisingly given the title, neither does Petzold.
This book will irritate anyone who believes that GUIs should be built using a designer and then code should be hung around it like decoration. Petzold is a programmer and despite his best efforts he codes his UIs and it is only very late on the book that actually tries to make use of XAML – even then with a strong programming flavor. There aren't even very many screen dumps showing how things turn out as if to prove what a code/word oriented book this is. The authors stated reason for omitting pictures is that you should try the examples out and see the UI in all its dynamic reality.
The book focuses on the details far too early for many and works its way exhaustively through single controls before daring to move on to anything resembling a full multi-control interface. Its approach can be best described as “bottom up”. As a result if you really are looking for a book that expresses the philosophy of the title then you need to find an alternative book. On the other hand if you think that "full disclosure" is the only way to approach a framework then you will appreciate the detailed and fairly complete tutorial. The only things that are missing are peripheral topics such as multimedia video/audio.
However, if you want an unreconstructed programmer’s take on the "new" order then Petzold’s is still an excellent, if rather drawn out, account of this landscape. Nice book – shame about the title because the approach is closer to code+code = applications.