Author: Pavan Podila, Kevin Hoffman
Aimed at: Intermediate to advanced WPF programmers
Pros: Advanced examples for you to decode
Cons: Little real ability to explain code
Reviewed by: Mike James
This is a very frustrating book. It is advanced and it is about WPF and there aren't very many books that deal with this subject in this way. But t doesn't really deliver on its promises to make you a master of control creation. In fact it doesn't really give a complete example of how to create a control and it certainly doesn't tell you how to distribute it or incorporate it into Visual Studio or an existing project.
Quite correctly it goes out of its way to try to persuade you that creating a custom control is something that you can mostly avoid given how flexible WPF controls are and the number of different ways at your disposal of customising them. However, the title of the book does lead you to believe that at some point the main focus of the book will be control creation - it isn't.
This isn't to say that the book doesn't contain a lot of interest. To be able to create controls you need to know a lot about WPF and the authors seem to take this as their challenge. As a result the book reads more like "advanced WPF" or "what you might need to know before you create a control". Lots of advanced topics are considered - dependency properties, attached properties, event handling, pixel shaders, using 3D, skins, templates and so on.
It's all advanced stuff and well worth reading but it could be so much more useful. The authors tackle difficult ideas by providing fairly difficult examples. The lead-ins are easy to follow but as soon as you hit actual example code it becomes very laborious to decode what is going on. If you are an expert and could have written the book yourself then it is perhaps all very clear but as a practicing developer even if you know WPF most of the examples will take you time to understand. This is made worse by the fact that the code layout it terrible - lines are split and wrapped anywhere and there are occasional line ending symbols in the middle of lines, clearly not where they should be. The code hasn't been formatted and this makes difficult code even more difficult.
Repeatedly the authors promise to explain something that will make it all so much simpler - only to present examples which are far from simple. The reality is that WPF is a complex system that can appear very ugly and there is nothing wrong with saying so.
If you enjoy learning by working through complex examples then this might be the book for you. For most readers its main role is to highlight some of the ideas and techniques that are needed to master WPF and possibly control creation.
As a pointer to what sorts of things you need to look up in the documentation it does a good job. As an explanation of advanced WPF that claims to makes it all so, so simple, it doesn't really get started.