| |
| |
Foreword | |
| |
| |
Preface | |
| |
| |
| |
Getting Started with Silverlight 2 | |
| |
| |
The Importance of Data Access | |
| |
| |
Jumping In | |
| |
| |
Silverlight 2 Features | |
| |
| |
Framework Languages and .NET Support | |
| |
| |
Self-Describing Data Services | |
| |
| |
Loose Coupling with Data Services | |
| |
| |
Control Model | |
| |
| |
LINQ to Objects and LINQ to XML | |
| |
| |
LINQ | |
| |
| |
Language Enhancements | |
| |
| |
Automatic Properties in C# | |
| |
| |
Object Initializers | |
| |
| |
Collection Initializers | |
| |
| |
Extension Methods | |
| |
| |
Implicitly Typed Variables | |
| |
| |
Anonymous Types/Implicit Types | |
| |
| |
Anonymous Types and LINQ | |
| |
| |
Summary | |
| |
| |
| |
Silverlight Data-Binding Foundations | |
| |
| |
Life Without Binding | |
| |
| |
Data Binding in Silverlight | |
| |
| |
| |
FrameworkElement | |
| |
| |
| |
Dependency Properties | |
| |
| |
XAML's Binding Markup Extensions | |
| |
| |
Binding Extension Properties | |
| |
| |
Simplified Binding | |
| |
| |
Runtime Binding | |
| |
| |
Creating Runtime Bindings | |
| |
| |
Removing a Binding | |
| |
| |
DataContext | |
| |
| |
DataContext and Source | |
| |
| |
DataContext Propagation | |
| |
| |
Binding in Blend | |
| |
| |
Summary | |
| |
| |
| |
Modes and Notifications | |
| |
| |
Binding Modes | |
| |
| |
OneTime | |
| |
| |
OneWay | |
| |
| |
TwoWay | |
| |
| |
Modes Without Notifications | |
| |
| |
To Notify or Not to Notify | |
| |
| |
Notifications | |
| |
| |
Implementing the INotifyPropertyChanged Interface | |
| |
| |
Adding Notifications | |
| |
| |
Refactoring Options | |
| |
| |
Summary | |
| |
| |
| |
Managing Lists, Templates, and Converters | |
| |
| |
Binding to List-Based Controls | |
| |
| |
Setting the ItemsSource | |
| |
| |
Binding Mode Considerations | |
| |
| |
Templates and Rows | |
| |
| |
DataTemplates As Resources | |
| |
| |
Complex Data Templates | |
| |
| |
Item Selection | |
| |
| |
Using Different Binding Modes | |
| |
| |
Lists and Notifications | |
| |
| |
ObservableCollection[left angle bracket]T[right angle bracket] | |
| |
| |
Changing a List[left angle bracket]T[right angle bracket] | |
| |
| |
Changing an ObservableCollection[left angle bracket]T[right angle bracket] | |
| |
| |
Converters | |
| |
| |
IValueConverter | |
| |
| |
Conversions | |
| |
| |
Summary | |
| |
| |
| |
WCF, Web Services, and Cross-Domain Policies | |
| |
| |
ASMX Web Services | |
| |
| |
Creating an ASMX Web Service | |
| |
| |
Getting Started with the Example | |
| |
| |
Creating the ASMX Web Service | |
| |
| |
Referencing an ASMX Web Service | |
| |
| |
Returning ObservableCollection[left angle bracket]T[right angle bracket] | |
| |
| |
Consuming an ASMX Web Service | |
| |
| |
Bindings Again | |
| |
| |
Creating a Proxy | |
| |
| |
Asynchronous Invocation | |
| |
| |
Asynchronous Completion | |
| |
| |
Running the ASMX Web Service | |
| |
| |
Cross-Domain Calls and Policies | |
| |
| |
Understanding Cross-Domain Restrictions | |
| |
| |
Crossing the Boundary | |
| |
| |
Watching the Requests | |
| |
| |
Silverlight Policy File | |
| |
| |
The crossdomain.xml File | |
| |
| |
Cross-Domain Summary | |
| |
| |
Creating a Silverlight-Enabled WCF Service | |
| |
| |
Creating the WCF Web Service | |
| |
| |
Bindings | |
| |
| |
WCF Service Setup | |
| |
| |
Invoking the WCF Service | |
| |
| |
Calling Services Written by Other Developers | |
| |
| |
Summary | |
| |
| |
| |
Passing Entities via WCF | |
| |
| |
Passing Entities Between Physical Tiers | |
| |
| |
Domain Model Entities | |
| |
| |
Silverlight and Entities | |
| |
| |
Serialization by Default | |
| |
| |
Serialization Attributes | |
| |
| |
Putting It Together | |
| |
| |
Using LINQ to SQL with Silverlight | |
| |
| |
LINQ to SQL Entity Serialization | |
| |
| |
Creating Entities with LINQ to SQL | |
| |
| |
Serving the LINQ to SQL Model | |
| |
| |
Consuming LINQ to SQL Entities from Silverlight | |
| |
| |
Silverlight and the Entity Framework | |
| |
| |
Creating the Entity Framework Model | |
| |
| |
Consuming Entity Framework Entities from Silverlight | |
| |
| |
Summary | |
| |
| |
| |
Consuming RESTful Services with WebClient and HttpWebRequest | |
| |
| |
RESTful Primer | |
| |
| |
Basic HTTP Web Requests | |
| |
| |
RESTful Web Services Provide Resources | |
| |
| |
Unique URIs | |
| |
| |
Anatomy of a RESTful Service | |
| |
| |
WebClient | |
| |
| |
Preparing to Consume a RESTful Service with WebClient | |
| |
| |
Invoking a RESTful Service with WebClient | |
| |
| |
Creating the XAML for the UI | |
| |
| |
Invoking the Service with WebClient | |
| |
| |
Consuming the Response with LINQ to XML | |
| |
| |
Measuring Progress | |
| |
| |
HttpWebRequest | |
| |
| |
HttpWebRequest in Action | |
| |
| |
Working with the Callback | |
| |
| |
Crossing Threads | |
| |
| |
Threading with WebClient and HttpWebRequest | |
| |
| |
Summary | |
| |
| |
| |
Consuming Amazon's RESTful Services with Silverlight 2 | |
| |
| |
Data in the Cloud | |
| |
| |
Creating an Amazon Shopping Cart | |
| |
| |
RESTful Actions | |
| |
| |
Searching for Books | |
| |
| |
Parsing Books with LINQ to XML | |
| |
| |
Binding the Search Results | |
| |
| |
Cart Operations | |
| |
| |
Summary | |
| |
| |
| |
Creating RESTful Services and Introducing SilverTwit | |
| |
| |
Creating RESTful Services from WCF | |
| |
| |
Creating a RESTful Service | |
| |
| |
Creating the Service Interface | |
| |
| |
Configuring a RESTful Service | |
| |
| |
Defining the Contract | |
| |
| |
Consuming the REST-Friendly Service | |
| |
| |
Default Values | |
| |
| |
HTTP Status Codes | |
| |
| |
Servicing JSON | |
| |
| |
Defining a JSON Response | |
| |
| |
LINQ to JSON | |
| |
| |
Consuming Products Using LINQ to JSON | |
| |
| |
Serialized JSON | |
| |
| |
Posting Data to a RESTful Service | |
| |
| |
Defining POST Methods | |
| |
| |
Posting JSON and XML | |
| |
| |
Case Study: SilverTwit | |
| |
| |
SilverTwit Architecture | |
| |
| |
SilverTwit UI | |
| |
| |
SilverTwitWS RESTful Web Service | |
| |
| |
Caching | |
| |
| |
Tweeting | |
| |
| |
Summary | |
| |
| |
| |
Syndication Feeds and Silverlight 2 | |
| |
| |
Syndicated Feeds | |
| |
| |
Requesting a Feed | |
| |
| |
Reading a Feed | |
| |
| |
Binding a Feed | |
| |
| |
Converters | |
| |
| |
Cross-Domain Policies | |
| |
| |
Aggregating Feeds | |
| |
| |
Summary | |
| |
| |
| |
Silverlight 2 and ADO.NET Data Services | |
| |
| |
ADO.NET Data Services Overview | |
| |
| |
HTTP Methods | |
| |
| |
Message Formats | |
| |
| |
Metadata | |
| |
| |
Services over Custom Data Sources | |
| |
| |
Access Rules | |
| |
| |
RESTful Addressing | |
| |
| |
URI Options | |
| |
| |
Creating the Proxy Class | |
| |
| |
Async LINQ | |
| |
| |
ADO.NET Data Services over the Entity Framework | |
| |
| |
Creating Services on an Entity Data Model | |
| |
| |
Read Access | |
| |
| |
Extending the Client Model | |
| |
| |
The Client Hookup | |
| |
| |
Notification Implications | |
| |
| |
Delayed Loading | |
| |
| |
Query Interceptors | |
| |
| |
Change Interceptors | |
| |
| |
Extending the Service Operations | |
| |
| |
More Saving Options | |
| |
| |
Inserts and Object Graphs | |
| |
| |
Optimistic Concurrency | |
| |
| |
Summary | |
| |
| |
| |
ADO.NET Data Services Quick Reference | |
| |
| |
| |
Silverlight 2 Debugging with HTTP Sniffing Tools | |
| |
| |
Index | |