Book Review: Silverlight 2 in Action
Have you guys read Silverlight 2 in Action book? I just finished reading the final version of this book. It was great! This is my second time that I read this book. I’ve read the early version of this book because Steven Hong, Marketing Coordinator of Manning Publications send me the MEAP copy of this book for review on 7th of June, 2008. I read it within 2 days and mailed my feedbacks to Steven and Chad at that time. ( BTW, Do you guys still remember my “Silverlight 2: Write and Win” that I made in this blog a few months back? Yes, Steven and SilverlightShow sponsered that contest. )
Source Download : http://www.manning.com/campbell/code/
Chapter 1: Introducing Silverlight
This chapter is good for those who has no idea about what Silverlight is. You will see a lot of good things about Silverlight in this chapter. You will learn how your team will improve their productivity by using Silverlight, the performance of Silverlight, developer/designer collaboration and how easy for your team to port Silverlight to the desktop application. There are a few interesting charts that show the performance comparison between Silverlight, Flex and Java Swing on IE(PC), Firefox(PC) and Safari(Mac), the stats of browsers and OSs. (I requested Chad to use JavaFX instead of Java Swing in comparison chart but seems like he forgot to change about that.) If you already know what Silverlight is, you can probably skip this section and can start from 1.3 XAML.
The section 1.3 is about the basic understanding XAML in Silverlight. If you are coming from ASP.NET and WinFrom background, you should read this section. You will learn about how to create Silverlight application. At the end of this chapter, you will be able to create very basic Silverlight project by yourself.
Chapter 2: Harmony with the Web
This chapter is a bit more technical than previous chapter. You will be introduced the relationship between Silverlight and the HTML DOM. I like the idea of having introduced about this relationship in first place because you will be confused in future if you are not aware of those relationship. I found that there are a lot of win-form/WPF developer who has no experience in web-application developement started playing with Silverlight and they used to face a lot of problems in understanding this relationship.
After that, you will learn very very detailed information about Silverlight.js in this chapter. IMHO, this is so Silverlight 1.1 style. I used to recommend people to use OBJECT tag or asp:Silverlight control instead of Silverlight.js so I asked Chad why he is more prefere to use Silverlight.js over OBJECT. He explained me the reason as below ~
The reason for this approach is to empower developers to use Silverlight with any server technology (ASP.NET, PHP, ASP, JSP, etc.). The reason I chose createObjectEx over OBJECT is because learning Silverlight.js is more valuable. By doing this, you can customize the experience if a user does not have Silverlight installed. This is important to consider with the fact that Silverlight is not on many non-technical users machines yet. It is very difficult to provide a custom user/installation experience to an new user without an understanding of Silverlight.js
I agree with him for that reason. If you are using non-ASP.NET and want to custom the splash screen, you can stick with Silverlight.js. Otherwise, you should probably use asp:Silverlight control as much as you can.
After learning about Silverlight.js in details, you will be learning about how to manipulate HTML DOM via the managed code, the Silverlight installation experiences and etc in this chapter.
IMO, it would be great if we can get more information about loosely XAML, inline XAML, OBJECT, asp:Silverlight control and in which scenerio we should OBJECT, asp:Silverlight control and Silverlight.js in this book.
Chapter 3: Back to the Basics: Layout and Text
This chapter is about flexible layout management and text management feature in Silverlight. I would say that this chapter is pretty good resource for Silverlight newbies and I highly recommend you to read this chapter unless you are from WPF background. You will learn about Silverlight Layout Controls such as Canvas, Stack Panel and Grid. And also, you will learn about some basic UI controls (e.g. TextBlock and etc) and their properties in that chapters.
Chapter 4: Handling User Interaction
This chapter will give you the basic understanding about Keyboard inputs/Mouse Interaction and the examples of how to use Silverlight controls (e.g Button, HyperLink Button, Radio Button, CheckBox, ListBox, TabControl, Date Controls (Calendar and DatePicker), PopUp, OpenFile Dialogs, Border, Slider)
Chapter 5 : Getting Down with Data Binding
This is very important chapter. Yes. this is about data-binding. If you want to become a WPF/Silverlight developer, you must know about data-binding. In this chapter, you will learn two different approaches (runtime and design-time), three binding modes (OneTime, One way and two ways), how to use INotifyPropertyChanged, IValueConverter and DataTemplate. And also, there are very detailed explanation about Silverlight DataGrid included in this chapter. Finally, you get a taste of LINQ in the last section (5.5) of this chapter. but this book is not for LINQ so you won’t find that much details in this book. If you are very interested to learn LINQ, I would recommend you to read LINQ in Action book.
Chapter 6: Networking and Communications
This chapter starts with cross-domain issues, clientaccesspolicy.xml and crossdomain.xml, which are very important for Silverlight developers. Even you are coming from ASP.NET or any other web technology background, you must focus on this section to understand all about cross-domain issues. Based on my experience in participating Silverlight.net forum and Codeproject forum, the most problems that people used to face are cross-domain issue. So, it’s better if you have good understanding about cross-domain before start playing.
After learning about clientaccesspolicy.xml and crossdomain.xml, you will be introduced with SOAP 1.1, REST (both POX and JSON), RSS, WCF duplex and socket in this chapter.
IMO, if you like to understand about those services in details, this chapter is not enough for you. You will have to find more resources on your own but however, as I mentioned before, you will be introduced with a lot of services so you can get some idea about those services and you can go for the one that you like the most.
Chapter 7: Managing Digital Media
This chapter is all about Audio, Video, Image, Deep-Zoom(Multi-Scale Image) and Play-Ready component. If you are looking for Silverlight developer position, you will find that 80% of Silverlight job openings are related to Media. It’s so sad that people are still willing to use ASP.NET MVC until now and don’t want to use Silverlight for LOB applications. Anyways, if you like to become Silverlight developer, you should have some understanding about those media things. So, you will have to read it.
Chapter 8: Getting a grip on graphics
This chapter is all about Silverlight Graphics. You will learn about 6 types of Shape objects with 7 segment types, 5 types of Brushes and 4 transformation options which are available in Silverlight 2. And also, you will learn how to use Expression Blend 2 in this chapter.
Chapter 9: Bringing it to life: Animation
Animation? yes! The whole chapter is just for Animation. I would say that the previous chapter and this chapter are very important for UI designers who like to play a lot of graphics and animation to make your UI looks cool. However, if you are working in small software company and you have to wear the multiple hats, you should probably know about those graphics and animation things to create the attactive UI. In this chapter, you will be learning all kinds of animation objects, how to animate the object using storyboard and etc. It has a lot of samples and very detailed explanation for animation objects so I think you will find it very useful. If you are like me who like to create beautiful and cool things, I’m sure that you will definetly enjoy reading this chapter.
Chapter 10: Giving it style
If you are coming from web background, you might like to know how to create something like CSS style in Silvelright. Then, this chapter is just right for you. You will learn everthing about creating style for Silverlight in this chapter but as this book is released before Silverlight Toolkit, it doesn’t cover anything about ImplicitStyleManager and theme/skins in this chapter.
Anyway, I think you should be able to create some cool styles like Silverlight Glass Button after you finish reading this chapter. :)
Chapter 11: Enhancing the experience
This chapter explains a lot of good things that Silverlight has. Silverlight Isolated storage and BackgroundWorker are very helpful things to improve the user experiece of Silverlight application. If you are a Silverlighter, you must know about those two important things. This chapter explains very well about Isolated storage and BackgroundWorker. If you are reading this chapter, don’t read it. I suggest you to play a bit with Visual Studio while you are reading. I’m sure that you will often need to use those things when you are developing the application. There are some explanations about DLR (Dynamic Language Runtime) but honestly, I skipped it. hehe.
Chapter 12: Share the light: Distribution and deployment
This chapter covers about creating the user controls, page navigation, creating the custom splash screen and hosting Silverlight Streaming. But I’m not sure why “creating the user controls, page navigation, creating the custom splash screen” are included in “Distribution and deployment” chapter. I mean, the explanation and sample for those sections are good but I was expecting to get the explanation how to host the services (WCF or Astoria or etc) with Silverlight 2 application. maybe, hosting those services are beyond this book.
If you ask me about my favoriate chapters, I would say that Chapter 3, 5, 6 and 9 are my favoriates. What I like about this book is that it has a lot of detailed explanation and samples so that if you are new to Silverlight, you can easily understand about how Silverlight works and improve your Silverlight skill in very short time.
I have two friends who are very new to Silvelright. When they asked me about Silverlight book, I suggested to buy the MEAP of this book. After 2 weeks of reading this book and playing with Silverlight, they said that this book is very easy to read and having a lot of samples for each chapter makes them to learn very fast. As of now, they are able to start developing small application with Silverlight now. I have to go and check their application on coming weekend. :)