Author: Laurent Bugnion
Aimed at: Beginner-intermediate developers
Pros: It’s in colour; takes a different approach
Cons: Badly edited; approach seems not to have worked
Reviewed by: Dave Wheeler
Adam Nathan wrote the original Silverlight Unleashed book targeted at Silverlight 1, and it was very good; Bugnion has written Silverlight 2 Unleashed, and it’s not.
Bugnion has taking an interesting tack when writing about Silverlight. Rather than looking at it from a purely technology-driven focus (e.g. with a chapter on data binding, a chapter on templates, a chapter on styles, etc.), he’s attempted to write a book that is more “task-oriented”. So you have chapters entitled “Using Media” and then “Progressing with Videos” eight chapters apart. He’s also written it with a light-hearted and animated style. This is commendable and a valiant effort.
Two things, however, let his approach down. The first is that there is a lack of focus in the book. For example, there is a sudden hop into a (not-too-impressive) discussion of generics next to a section on the Application object. For someone new to the technology this could be confusing, although some will undoubtedly lap it up. In many cases, though, the hopping around is taken too far. For example, in a section entitled “Communicating with the outside world” it comes as a surprise to find the opening is a discussion of dependency properties (which are so fundamental to Silverlight that they should have been covered in detail far earlier). This section contains a “TIP” callout that states 'if you want to sound cool when you talk about Silverlight, you should name DependencyProperties “DPs.”'. This is far from being a useful tip, is distracting to the reader, and is not even very good English. Worryingly, someone might actually name a dependency property “DP”, rather than call them DPs in conversation.
And that’s the other problem. SAMS appear to have skimped on editing. The standard of written English is quite poor, which is faintly annoying to begin with, but becomes increasingly wearing over time. It gets worse than being a minor annoyance, though, when the inappropriate use of English leads to explanations that confuse the reader. Bugnion’s use of a StackPanel to provide “Flow layout” is simply wrong. The editing process has let Bugnion down, I feel.
There are also a few technical inaccuracies, but nothing too serious. These should have been caught but are forgivable as the book was started in 2007 and written through the beta period during which Silverlight 2 changed a lot.
The overall result is a book that feels patchy and uneven, with, for example, animation being covered in Chapter 3 (in XAML), then Chapter 4 introducing Blend, but you only get on to editing animations in Blend in Chapter 11. It also makes the book very poor as a reference document. When, for example, layout is covered in three or four different chapters (and to an insufficient level, I must add), it makes it difficult to dive into the book to dig out information. The book tends to duck out of getting into the deeper aspects of the technology, and thus perhaps fall short when compared against other books in the “Unleashed” series; a series that I’ve come to appreciate. This left me frustrated, as Bugnion clearly knows his stuff. However, it should be pointed out that this book is targeted at “Beginner - Intermediate”, although I would have to say that it would only really appeal to the beginner.
Ultimately, the Silverlight 2 book market is now fairly crowded, and there is nothing in Bugnion’s book that would make me recommend it over Silverlight 2 In Action or Pro Silverlight 2. Some readers might prefer the different approach that Bugnion has taken, but they will have to accept that this book is far from comprehensive in its coverage, and missing important information that can be found in the others.
<Reviewed in VSJ>