Author: Pete Brown
Publisher: Manning, 2010
Aimed at: Intelligent intermediate level .NET programmers
Pros: A deep and direct approach
Cons: Sometimes dense and difficult
Reviewed by: David Conrad
This is a comprehensive look at Siverlight 4 but it isn't for the beginner or for the reader who likes things dumbed down. Given a choice between an easy, but possibly drawn out, route to explaining or demonstrating something, or the direct route the author invariably chooses the direct route. Of course if you have an above average neurone count then this will be the choice you prefer.
To give you some idea of what I am saying, consider the first chapter which is an instruction to all things Silverlight. Using Visual Studio the first example program isn't a "Hello World" but something that uses a Facebook connection, lambda expressions, data binding and LINQ to parse the XML. If this is the sort of first example you are looking for then fine - if not don't say I didn't warn you.
On the other hand if you are looking for a mostly in-depth not dumbed-down coverage then this is probably the book for you. It is also worth saying that the writing style isn't obscure and doesn't make a things tougher than they need be - there are plenty of comments that put things into perspective and even occasionally add a touch of history or personal experience.
The second chapter goes into a detailed explanation of XAML. While the explanations are perfectly readable they are dense and present a lot of information in a small amount of space. Occasionally an example is so compact that it becomes difficult to interpret unless you already have some idea of the concept being demonstrated.
Chapter 3 moves on to the details of hosting Silverlight and Chapters 4 and 5 deal with integrating with the browser and desktop respectively. All fine as long as you are happy you know what a Silverlight application looks like.
Chapter 6 is where we get back onto a more conventional track of explaining how Silverlight works - rendering and layout. Next we move on to consider the different types of controls - panels, human input, text and eventually UserControls. Chapter 11 is on Binding, then we have data controls the grid and form. Chapter 13 is about data validation and brings the data section to a close.
The remainder of the book is made up of topics that don't really have a specific built-in order. Chapter 14 is on networking, then we have navigation, the MVVM model, graphics, printing, working with media, bitmaps, animation, resources, creating your own controls and finally the install experience. All covered with mostly detailed and non-trivial examples and to the point explanations.
Some of the topics could have benefited from a more extensive coverage but the coverage is always fairly deep. For example, in the chapter on media the author doesn't cover every possible situation but there is an example of generating audio and video right there in the Silverlight application. This said it is important to realise that the examples may be technically advanced but they are not finished real world examples and this is not a cookbook.
Don't buy this book if you are a novice at C# programming or the .NET framework - it doesn't teach you the basics and it expects you to know enough to understand examples that make use of the full C# 4 and .NET 4 framework. If you are trying to get to grips with the basics then the are slower paced introductions to the subject.
Ideally you should have had some familiarly with WPF or Silverlight before trying to use this book because it will help you make sense of many of the features you have been using and it will suggest to you ways of doing the job better.
If you are up to it then this is a really good book that often takes you well beyond the documentation. For the right reader this is highly recommended.