Home >
I've been working hard for the past, wow, 7 months on my book Data-Driven Services with Silverlight 2. Well, the book is finally out in print, which is very exciting for me. It may have taken a while as all books do, but I felt that it was an important technology story to tell. Once it became clear that the direction for Silverlight 2 was far superior from Silverlight 1, I jumped into figuring out how to make it work for business applications. There was a severe lack of information on the topic and the vast majority of the materials on Silverlight did not focus on the topic at all. Data binding got some coverage, but using web services, SOAP, REST, ORMs, Astoria, syndicated feeds, security and a slew of other business related topics were begging for someone to write about them. So I decided that it was time to put something together that skipped the basics and design aspects of Silverlight and jumped into using it for functionality, data and network communications. Thus the book was born.
The book is now hot off the presses. So if you want to learn about building these types of applications with Silverlight, you can grab a copy from:
* You can purchase the ebook today from O’Reilly’s site
* You can buy the print version of the book also from O’Reilly’s site
* You can purchase it from Amazon, who will be receiving my book in the next few days (obviously O’Reilly gets it first)

The book assumes a basic knowledge of .NET development and XAML as well as Silverlight 2 basics. The style used in the book to present the material is to present the topic, what it does, how it works, when to use it, and then show an example application that demonstrates various techniques and features with Silverlight 2. All code for the book is in VB and C# (thanks to Instant VB).
Chapter 1, “Getting Started with Silverlight 2”
This chapter covers the steps required to develop applications with Silverlight 2, and explains the various tools and their purposes. It also examines the fundamentals of Silverlight 2, its control set, and the importance of XAML and its data-binding features, some .NET language enhancements, and includes a primer on XAML as it pertains to data and Silverlight.
Chapter 2, “Silverlight 2 Data-Binding Foundations”
This chapter discusses different ways to use data binding with XAML and with .NET code in Silverlight 2. It examines the controls and provides examples on how to bind custom objects. It also examines the DataContext in depth, as well as situations in which you can apply binding through XAML or .NET code.
Chapter 3, “Modes and Notifications”
This chapter demonstrates situations in which different binding modes can be most beneficial when used with objects and controls. It also explores how to make the Silverlight 2 controls listen for and respond to notifications through INotifyPropertyChanged that can be implemented on objects.
Chapter 4, “Managing Lists, Templates, and Converters”
This chapter explores various techniques for binding and presenting lists of data in list-based controls. It also discusses how to use templates to stylize and present data more efficiently in controls. Examples use LINQ to Objects to query lists of custom entities, converting bound data between the data source and the target controls, and implement notifications for list-based collections using INotifyCollectionChanged and ObservableCollection
Chapter 5, “WCF, Web Services, and Cross-Domain Policies”
This chapter demonstrates how to communicate between Silverlight 2 applications and WCF services—both custom and from third parties such as Live Services. It demonstrates how to build an application in Silverlight 2 that communicates with web services on different domains through SOAP using either WCF or ASMX web services. Also, it discusses what cross-domain policies are how to account for them, and how to debug applications using network-sniffing tools.
Chapter 6, “Passing Entities via WCF”
This chapter shows how to send and retrieve custom domain entities filled from ADO.NET-driven data mappers in the middle tier, and expose them through WCF contracts and serialization techniques. It also shows how to pass entities from tools such as LINQ to SQL and from the ADO.NET Entity Framework to and from Silverlight 2 applications.
Chapter 7, “Consuming RESTful Services with WebClient and HttpWebRequest”
This chapter discusses how to consume and present data retrieved from REST services and manipulate it using LINQ to XML. It demonstrates how to use WebClient and HttpWebRequest from Silverlight 2 to invoke RESTful communications with web services, and also includes a primer on RESTful services and how Silverlight 2 can communicate with them.
Chapter 8, “Consuming Amazon’s RESTful Services with Silverlight 2”
This chapter demonstrates how to send and receive data using the RESTful API exposed by the Amazon E-Commerce Service (also known as Amazon Associates Web Service). This shows how to build a Silverlight 2 application that allows users to search for and add items to a shopping cart stored at Amazon.
Chapter 9, “Creating RESTful Services and Introducing SilverTwit”
This chapter discusses how to build a RESTful service with which Silverlight 2 applications can communicate. The services allow GETs and POSTs to be sent from Silverlight 2 applications passing XML and JSON. The chapter also demonstrates LINQ to XML and LINQ to JSON, and includes a case study of the SilverTwit Twitter client to demonstrate how building a RESTful WCF application can be an important component of a Silverlight 2 application.
Chapter 10, “Syndication Feeds and Silverlight 2”
This chapter explains issues with consuming syndicated feeds from Silverlight 2 applications and how to overcome them. It also demonstrates the SyndicationFeed class and how to use it to build a robust Silverlight 2 application that uses web services to aggregate Atom and RSS feeds.
Chapter 11, “Silverlight 2 and ADO.NET Data Services”
This chapter demonstrates how ADO.NET Data Services is uniquely qualified to pass data to and from Silverlight 2 applications using REST-style web services. It also shows how ADO.NET Data Services can communicate with and issue LINQ queries against entity data models in a middle tier to save and retrieve data, handle concurrency, batch updates, transactions, implement custom service operations, and design business logic to intercept the LINQ query calls from the Silverlight 2 client.
Appendices:
Included in the appendices are some reference materials and a debugging tips and tricks section that describes how to use Fiddler2, Firebug and WebDevelopmentHelper to identify problems.




Facebook Application Development
It all sounds great, but when can we expect the Silverlight 3 version of your book? I do not want to spend time reading about features that may be obsolescent.
Yours is the only Silverlight book I have seen that even remotely interests me. I hope you and O'Reilly are keeping it up to date so I do not have to wait too long.
Congratulations on your foresight along with my best wishes for the success of your work.