A few months back, I was approached by Packt publishing, asking me to write a WPF book, in their “cookbook” style, and I accepted. I haven’t written an entire book before, but I have written dozen of courses for Hi-Tech College, John Bryce Training and now for CodeValue, in a range of topics, from Windows Internals and device driver development, to advanced C++, to basic and advanced .NET topics, to WPF, and even some oddities such as the Windows Media Foundation.
Writing a book, however, is different than writing a course, and I was at least curious whether I could produce something useful, given that WPF is not new and has already several decent books out there. So, what’s special about this book? First, it doesn’t target the absolute beginner, although I do cover most of WPF fundamentals in the first two chapters, but is more oriented towards the intermediate WPF developer, and sometimes a bit higher than that (or so I hope). Second, I do expect this “cookbook” style, where recipes to common problems are presented, followed by explanations and expansions, to feel a somewhat different experience, where dependencies among recipes are almost non-existent (and we all know dependencies are bad ).
And third, I ‘m reminded by an interview I read a few years back with Dino Esposito, who told the following story about himself: He was to give a session in a conference about COM (Component Object Model). Before that session started, he noticed Don Box (then the ultimate guru of COM) sitting down in the first row to listen. Dino walked up to him and asked why is he here? Surely, there’s nothing new Dino can teach Don Box about COM. Don Box replied, “It’s all about perspective”. Well, this is my perspective on WPF.
According to the publisher, the book must be around 300 pages. This is pretty low for WPF, as WPF is huge, so I had to cut down some topics, to make sure I’m covering the major WPF pillars. Eventually, I expect to be at around 350 pages.
The book includes 11 chapters, 6 of which I’ve already written (without incorporating technical reviewers’ comments):