Review : Applications = Code + Markup by Charles Petzold

I was kind of hoping that they wouldn't have it in stock since if they did I would make myself poorer. But there it was on the shelf. Browns in Hull had a copy of "Applications = Code + Markup" by Charles Petzold.  If you have any kind of history in Windows programming you will have come across Charles before. He wrote pretty much the definitive guide to programming Windows 3.1 way back in 1992 (I have a copy) and he has been writing new books about Windows programming ever since.

And now he has come up to date with the release of his book which tells you how to create programs which use the Windows Presentation Foundation (WPF) which is the way that you create user interfaces for Vista. I've been following the development of the book via his blog (which, although not as good as mine of course, is still worth a read).

I had kind of told myself that I would buy a copy if I happened to come across one, and on Saturday I found that Browns Bookstore in Hull had one in stock. And so I bought it. For the same price I could have got Lego Star Wars II for the XBOX 360, although I think I'll probably have more fun with the book to be honest (but I am a sad programmer).

I've been ploughing through it, but I'm nowhere near the end of its 1,000 or so pages. Charles Petzold writes very well, and I find the material very interesting. Some people might find the level of detail given a bit pernickety and distracting, but I really like it. And the other thing I really like is the approach taken.

I've been trying to make sense of XAML, (the markup language which lets you describe how your forms will appear to the user) and not having much fun or luck. As a programmer I want to get hold of the objects and control them programmatically, not by means of lots and lots of text. And although XAML lets me set up animations of bits and bobs (and you can have a lot of useless fun with this) as a person writing a program intended to do something I don't find the ability useful. Add to that the fact that the MSDN documentation is pretty appalling, actually telling you less than the IntelliSense in Visual Studio, and you have a recipe for frustration.

What the Petzold book does is put all the XAML stuff in the second half, and spends the first half telling programmers how to use the new user interface classes at a very high, and useful, level of detail. I've not reached the markup pages yet and I don't care. I'm too busy finding out how easy it is to lay out user interfaces which automatically design themselves when they load.

One of the very few things that I missed from Java when I switched to C# some time ago was the "GridBagLayout" manager. This was a swine to master, but when you got your head around it you could write displays which pretty much laid themselves out for whatever orientation and size of display you were using. In fact I missed it so much that when I moved to C# the first thing I did was write a layout manager.

With WPF something very similar to GridBagLayout is now available. And the way you use it is way better too. The book makes this clear and uses loads of examples to help you along the way. There are no screenshots though, which I initially found rather surprising. However, the good news is that this means you are encouraged to "code along" with the book, pulling up the examples and modifying them along with the text. This is a very good way to learn, and leaving out pictures means that the book can contain more text, which adds to the value.

In short, I think that this book will become as indispensable to the programmer as the earlier ones have, and if you want to learn how to do this stuff you should bag a copy. Amazon have it on a healthy discount which I wish I'd seen before I bought mine from a shop.