Audience: Silverlight devs
A well written and interesting description of advanced features, but is Silverlight really still worth considering?
Jeremy Likness is well known in the Silverlight community; he was Microsoft Silverlight MVP (Most Valued Professional) of the year in 2010, and he has a popular blog about developing with Silverlight. He’s also good at making material readable, so technically this is a good book. The only question is whether Silverlight’s lack of support from Microsoft makes it a technology to avoid, and that’s not something that this book really discusses.
After a couple of introductory chapters, Likness begins with two chapters on XMAL, the second of which looks at advanced topics such as parts, states and templates; data templates; interactivity; and the Natural User Interface. The Visual State Manager (VSM) is next to be tackled. VSM is one of the more interesting aspects of SilverLight, and when you use it in conjunction with data binding it provides an excellent way to separate the user interface and the business logic behind the scenes. Data binding is, unsurprisingly, the topic of the next chapter, and Likness shows how to use it within styles, how to debug it when things go wrong, and how to validate the data.
Silverlight developers tend to either love or fear and steer clear of Model-View-ViewModel development, but Likness gives a good introduction in the next chapter, and is obviously a fan. Of course, he would be as he designed the Jounce MVVM! There’s quite a lot of “this is why people don’t like MVVM and this is why they’re wrong” justification, but it’s an interesting discussion. He also likes the Managed Extensibility Framework (MEF), and has a good chapter describing the library and how to use it. Rather oddly, Likness next looks at testing; a worthy topic, but not one I expected to read about in the middle of the book.
Back into the more Silverlight specific topics, Navigation comes next, with a look at both the navigation framework and manual navigation. The chapter on the Service Layer then takes you through the domain model, sharing the information between the client and server, how to build a REST service, and how to tie into a WVF service. This part of business applications can cause major headaches, and Likness’ descriptions are clear and useful. He’s also good on persistence and state management, which is probably the point where mistakes most annoy the end user.
Having shown the ins and outs of state management, Likness then moves on to how to write Out of Browser apps. This is SIlverlight’s answer to the problem of how to give your users a way to work with your apps even when they don’t have access to the Internet. Actually creating an app like this in Silverlight is just a matter of ticking a box, but Likness has some interesting observations on really making it work. The final meaty chapter looks at line of business features such as localization and scalability, with a chapter on debugging and performance optimization to finish things off.
This wouldn’t be the book to choose if you don’t know Silverlight, but if you’ve learned the basics and want to go further, it’s a good read. It would also be worth reading for the XAML coverage alone, and for the general discussions on how to create and manage line of business applications.
A good book, shame about the way Microsoft has treated Silverlight.