Beginning Silverlight 3, by Robert Lair
Preamble: For those who are not yet aware, Silverlight is Microsoft's development platform for creating Rich Internet Applications (RIAs). It is also a direct competitor to Adobe's long-running Flash platform (first released in 1996), and while both platforms have their particular strengths, I'll leave the --often heated-- debate of such to the better-informed and more experienced proponents of each. It is worth mentioning however that while Silverlight is only a few years old (currently at version 3, with version 4 in beta) it's been making steady gains in terms of browser penetration and developer adoption, and it appears that it won't be too long before its installation base is on par with that of Flash. With that said, anyone looking to develop RIAs in Silverlight need not be put off by its currently-lower-than-Flash's market penetration stats; its user base is steadily gaining and the installation itself is at least as painless as Flash's with a small browser plug-in for users to download.
So, on to the review then.
If you are already familiar with C#, the .NET Framework and Visual Studio then you'll have an excellent leg up on learning Silverlight. But knowing how to use these technologies is not a prerequisite to learning Microsoft's new platform (though you will need to learn them later if you want to do anything truly meaningful with the technology); in Beginning Silverlight 3, Robert Lair will guide you through the basics of learning Silverlight on the presumption that you are indeed a rank beginner. Lair begins with an overview of what Silverlight is and its benefits as a development platform. He also gives a brief overview of the features new to Silverlight 3, as well as a rundown of the programs (all either free or with an ample trial period) that you will need to download in order to get started with the book and learning Silverlight. Subsequent chapters cover such topics as Visual Studio, Expression Blend (which makes creating Silverlight interfaces MUCH easier than using Visual Studio alone), XAML (the markup language used to build Silverlight application interfaces), the various controls, layout management, navigation and deep-linking, transformations and animation, data-access, -storage and -binding options available in Silverlight, as well as how to create your own custom controls and how to deploy your finished Silverlight applications. While Lair's coverage of the subject matter does feel adequate, one gets the impression (rightfully so) that there is much more potential to Silverlight than what is covered in this book, and Lair makes multiple references to the next book in the series, Pro Silverlight 3 in C#, for those who want to continue exploring the technology's possibilities.
I found Lair's book relatively easy to follow, with only a couple of exceptions. The chapters on Data Access and Custom Controls were a little complex for me, though admittedly I'm still learning C# and the .NET Framework and some of the more advanced programming concepts are currently over my head. I can't fault Lair's descriptions of the aforementioned programming code though I am sure a more experienced programmer would be able to follow along, but the chapters in question did seem slightly too advanced for a "beginner" book. Regardless, it was still helpful to have examples of the more advanced concepts presented even if only to be able to refer back to them again at a later time.
Lair's presentation is clear and concise. The diagrams he provides work well to illustrate the various concepts and examples covered. I did encounter the odd typo here and there that seemed like faulty "search and replace" attempts when updating the previous version of his book for Silverlight 3, but they didn't detract from the text. What I liked best, aside from the clear descriptions and explanations, were the "hands-on" examples where Lair guides the reader through the process of creating different Silverlight applications. As a relative beginner to programming I find that "learning by doing" works best for me, as opposed to only being given descriptions of programming theory and code snippets and expected to just "get it". I can't imagine a "beginner" book without the hands-on exercises, and apart from the clear writing and the comprehensive content, they are the other major reason why I recommend Beginning Silverlight 3 to anyone intending to learn Silverlight.