imageI had the chance to read through  Chad Campbell and John Stockton’s book Silverlight 2 in Action recently. I’ve read this book along with a few others on Silverlight 2 recently. I’ll be posting reviews of the others soon, too. Overall, this book is well written from 2 very knowledgeable Silverlight  sources. Before I get to my conclusion, I’ll explain my thoughts on each chapter.

Quick disclaimer: I have my own book out on the market titled Data Driven Services with Silverlight 2. I do not consider these books to be competitors because they fill different informational needs. Silverlight in Action 2 targets Silverlight as a whole while Data Driven Services with Silverlight 2 targets data, services and line of business applications specifically.  So these books compliment each other, IMO. But my experience with Silverlight, teaching it,  and writing about it gives me a good perspective on reviewing my colleagues’ book.

Chapter 1  - Introducing Silverlight

Nice introduction of XAML and attached properties along with some overviews of what Silverlight is and is not. Like most intro chapters, it won’t be off interest to those already in aware of these points while for beginners it does a good job of setting the stage.

Chapter 2 – Harmony with the Web

Interesting chapter that discusses placement of the Silverlight control, how to embed it in HTML, the plug in features, interaction with the DOM, browser detection, and the javascript.js file and it relevance. This provides a good foundation for those interested in the surrounding aspects of a Silverlight control.

Chapter 3 – Back to Basics: Layout and Text

This is the first chapter that dives into the XAML for Silverlight more deeply. The basic layout panels are discussed and how they work. It also goes over the UIElement and FrameworkElement classes and their importance to Silverlight. Its a short chapter but an important piece of information that is laid out well in the book.

Chapter 4 – Handling User Interaction

This chapter starts by covering the ways that user interaction can be handled with clicks, mouse events, drag and drop and more. Then it dives into the most commonly used controls in Silverlight. Each control gets a brief mention at what it does and how to use it. I think it could have used a little more information and examples on each of these controls to help the reader decide which controls to use and in what situations. Covered a lot of ground but felt light to me. I was very glad to see quality coverage of the DataTemplates here.

Chapter 5 – Getting Down with Data Binding

This chapter covers the data binding syntax, binding modes, value converters, and all the essentials of data binding. It also covers the DataGrid control, which is great since this control needs more attention than many others since it has so many more features. A discussion of LINQ and its role in Silverlight is also presented at the end of this chapter. Overall, nice coverage of the “need to knows” of data binding.

Chapter 6 – Networking and Communications

This starts with a great description of cross domain communications and how to implement policy files. Its a nice level of detail before diving into the communication means. The chapter then follows up by showing how to talk to WCF services from Silverlight and how to talk to REST from Silverlight. The WCF coverage was OK, but the REST coverage felt light to me. Especially since the next topic in the chapter was covered well in in great depth: reading syndicated feed items. There is a lot to cover in this chapter and most topics are hit very well.

Chapter 7 -  Managing Digital Media

This chapter shifts gears a bit and dives into video and other media with Silverlight. I really liked the way this chapter laid things out for the reader. It went into excellent depth on media and showed some good examples too. It contains some excellent additional tips to discuss how to deal with some issues when using video in Silverlight.

Chapter 8 -  Getting a Grip on Graphics

Shapes, brushes, transforms … these are all basic parts of a Silverlight graphical design. They are pretty easy when broken down … and this chapter does a good job of laying them out for the reader. Good stuff, don’t skip this chapter if you are serious about Silverlight UX.

Chapter 9 -  Bringing it to Life: Animation

This chapter has some great topics, though I found some of it a bit confusing at times. Overall it is a solid chapter though covering the essentials of animation in Silverlight.

Chapter 10 -  Giving it Style

Excellent chapter. I really enjoyed reading through this chapter as it covered some great material that is critical to UX. Resources, visual states (with the all important VisualStateManager), templates … all critical component to creating a smooth and enjoyable user experience … and this chapters does a great job explaining them.

Chapter 11 -  Enhancing the Experience

This is one of those chapters where you find a variety of topics that you need to know but don’t necessarily fit in any particular area. the chapter does a good job of covering its concepts, especially with Isolated Storage.

Chapter 12 -  Share the Light: Distribution and Deployment

This chapter does a great job at explaining how to deploy a Silverlight control and provide a nice Silverlight installation screen for the user. Good stuff that we sometimes take for granted as developers.

Conclusion

Very good book. I give it 4.5 stars out of 5. I enjoyed the book and its presentation of the material. I found very few areas that were light while the vast majority of the material did a solid job of presenting itself to the reader. I did find a few areas that I thought could have been expanded (as I mentioned in the chapter breakdown), but overall its a solid book. I definitely recommend this book to anyone looking to learn to develop with Silverlight 2.