Author: Matthew MacDonald
Aimed at: Devlopers still using Silverlight
Reviewed by: Ian Elliot
The latest, and probably last, update to a book we have previously highly recommended. How does this fourth edition compare?
It is widely assumed that Silverlight 5 is the last release of Microsoft's framework for building browser based apps. When it was released Microsoft stated that at least 12 months notice will be given of end of support for Silverlight - so it is still a product that hasn't come to the end of the line and is still widely used so having an up-to-date version of a comprehensive reference work for it seems a good idea.
One very noticeable, and disappointing, change is that the book no longer uses color printing for screenshots and code, something that was noted as one of the book's plus points in my reviews of the previous two editions.
As with most books that are successful enough to go through many editions, this one has mainly preserved its basic structure but has added new material to cover new features.
The first chapter provides an introduction to Silverlight that looks at its design tools and compares working with it using Visual Studio and Expression Blend - although the book assumes you'll work primarily with Visual Studio. It shows you how to start using Silverlight to create a simple website with no server-side code.Other early chapters deal with the basics of XAML, layout, dependency properties, events and elements. It then move on to the Application model and Navigation.
Up to this point there's little change from the previous edition although helpfully the book includes What's New boxes that alert you to new features and where you will find them covered. So in Chapter 4 on Dependency Properties and Routed Events there's a new section "Double and Triple Clicks" and in the next chapter see "The Rich TextBlock" for the two additional specialized controls introduced in Silverlight 5 to enable you yo put text in multiple columns and wrap text around images.
An important new feature in Silverlight 5 is the ability to use vector-based printing. This is covered in Chapter 9, Brushes, Bitmaps and Printing and the material on transforms that had been in this chapter has been shunted to the previous chapter that is now re-titled Shapes and Transform, although it still covers paths and geometries as before.
There are now two chapters on Animation. Chapter 10 on Animation Basics that covers the improvement to the way animations are rendered introduced in Silverlight 5 that means if you are using bitmap caching you can offload animation work to a separate, independent, thread. Chapter 11 covers more advanced aspects including animating transforms, creating animations programatically in code, page and wipe transitions and frame-based animation.
New features in Silverlight's audio and video support are covered in Chapter 12: Sound, Video and Deep Zoom and then comes the only completely new chapter in the book. Chapter 13: Silverlight 3D is devoted to a feature that is completely new in Silverlight 5. 3D support requires hardware acceleration and as Matthew MacDonald this introduces "a significant catch" explaining that by default Silverlight is blocked from using hardware acceleration to prevent denial of service attacks. He then outlines the options for overcoming this barrier and enabling 3D in a Silverlight project. It then introduces the DrawingSurface control and 3D co-ordinate system, how to build 3D objects with triangles and positioning the camera. By the end of the chapter you will have mastered the 3D basics and be ready to go forward either with a 3D design framework such as Balder or Babylon, or build a 3D app using your own math skills.
In the rest of the book other new features are introduced as they crop up and there's quite a bit of reordering to provide a better flow of information. So Chapter 14: Styles and Behaviours mentions the new support fir style setters that support data binding and the next one on Templates and Custom Controls covers layout transitions that help you incorporate animated affects in the ListBox control.
The chapter on Multithreading comes next in this edition, slotted in before Browser Integration. Immediately after this we find Out-of -Browser applications, a chapter that had been new in the previous edition and placed at the end.
After this the book returns to the previous running order with chapters on ASP.NET web services; Data Binding, where there are a couple of new sections to cover the refinements to the data-binding system in Silverlight 5; Data Control; File Access and Networking.
Reviewing this book not only reminded me of the high quality of Matthew Macdonald's clear, comprehensive and insightful coverage of the subject but also brought home what a good framework Silverlight became over the years. It is very sad to think that it no longer has a future.
Pro Silverlight 4 in C#
Pro Silverlight 3 in C#
Silverlight 5 Release
Silverlight 5 - the end of the line