I 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.