Author: Robert Lair
Publisher: Apress, 4th Ed, 2012
Audience: C# programmers
Reviewer: David Conrad
A new Silverlight 5 book - does it get the beginner started?
This is the 4th edition a very standard introduction to Silverlight, now updated to version 5, that takes you through the set of necessary topics. It isn't a cookbook and it doesn't have any big examples to follow.
The first chapter gives a potted introduction to what Silverlight is and how it came to be. It suggests that you use either Visual Studio 2010 or Expression Blend to work with Silverlight - no mention of Web Developer Express, the free development environment which is very suitable for beginners to try Silverlight out. Also there is no mention of Visual Studio 2012 which is available and about to be launched as the current version of Visual Studio.
It also doesn't tackle the admittedly difficult issue of what the situation is regarding the future of Silverlight. In the light of the changes in Windows 8 and the emphasis that Microsoft is placing on WinRT and development in C++, it looks as if Silverlight 5 might well be the last in its line. The only part of your Silverlight development skills that might remain relevant relates to the use of XAML which is one of the design languages of WinRT (the other being HTML)
From this first overview chapter we move on to a fairly standard introduction to Visual Studio 2010 with lots of screen dumps that are too small to read and irrelevant anyway.
The topic of Silverlight really gets going in chapter 3 with a look at the layout principles used. This takes the form of an evaluation of which layout panel you should use for what - canvas, grid and so on. There is a lot of XAML in this chapter and this means lots of long listings with lots of white space and unreadable screen dumps. .
Chapter 4 continues in the same way with a look at the basic Silverlight controls. Again lots of XAML, very little code and lots of screen dumps. The chapter begins with a useful summery of how to work with controls including handling multiple mouse clicks - new in Silverlight 5. This is a very basic introduction to the controls with nothing said that goes beyond the manual or gives you much insight.
The next chapter works a little harder at providing you with some ideas about how you should think about data binding. It goes from the simple ideas to using the simple datagrid and list controls. .
Chapter 6 is on the Silverlight toolkit, i.e the collection of open source controls created by Silverlight users. All good controls but not really a topic you have to cover in a beginner's book. It really is difficult to see why it is included in this book let alone so early on. In an advanced book yes, in an appendix possibly, but the Silverlight beginner has more to learn than to spend time adding to the collection of controls that they use. But you might disagree and want to know about them so it is worth adding that there are lots of screen dumps which don't really help the explanations and lots of white space. It also doesn't cover very many of the controls in the Silverlight 5 toolkit.
From here we move into increasingly advanced territory. Chapter 7 deals with data and networking. The problem here is once again a matter of priority. Why start the chapter with a look a WCF? This is advanced and there are lots of easier data and networking topics the chapter could have started with. Not content with dealing with WCF the next topic is the use of sockets - a subject that could certainly have been relegated to a more advanced book.
Chapter 8 is more reasonable and all about navigation but it has lots of XAML and lots of big screen dumps that take up space without adding much. Chapter 9 deals with isolated storage - an important topic even for a beginner. Chapter 10 deals with system integration - the notification API, webcam and microphone access, and using COM objects. This is exciting stuff but some of the ideas are going to leave a beginner behind.
The next three chapters mark a section of the book that is focused on Expression Blend rather than Visual Studio. Chapter 11 is about using Expression Blend, Chapter 12 on styling and Chapter 13 on animation.
The final few chapters move away from Expression Blend and back to main core topics - creating custom controls, printing and deployment which brings the book to a close.
This isn't a good beginners book mainly because of its selection of material and the lack of a good structure. It deals with topics more or less in the order that they occurred to the author. The chapters tend to be very short and the XAML code and screen dumps take up large amounts of space - reducing the information density to the point where it is difficult to follow what is going on without having to examine the code in minute detail. The conflict is that if you really need the screen shots to understand some of the earlier chapters you are going to find the later chapters - from about Chapter 5 on much more difficult because the technical demands increase.
It isn't really for beginners but for Silverlight beginners. You need to have a good grasp of C# and many of the surrounding ideas to get through to the end of the book. It doesn't really go in for explaining concepts first and then show how they a realized in practice. For example it doesn't explain what XAML is all about and how you can use it to initialize objects. It just gets on and uses it in examples.
If you need a book that is an overview of Silverlight topics not in any particular order then you might like this book. If you are looking for a coherent well explained introduction to Silverlight and its related technologies - look elsewhere.