1.REST Basics 1
Architecture of the World Wide Web 1
SOAP 4
REST 5
Resources and URIs 5
Uniform Interface 7
Resource Representations 9
Implementing a Simple RESTful Service Example 11
Resources 11
URIs and Uniform Interface 11
Representations 12
Interaction 13
Wrap-Up 14
Processes 16
Summary 16
2.WCF RESTful Programming Model 19
Isn't WCF All About SOAP? 19
Channels and Dispatching 19
HTTP Programming with WCF 3.0 22
Web Programming in WCF 3.5 27
WebHttpBinding 30
WebHttpBehavior 30
WebServiceHost 31
WebOperationContext 31
WebGetAttribute 32
UriTemplate 33
UriTemplate Literal Values 42
UriTemplate Special Values 43
UriTemplate QueryString 43
Summary 44
3.Programming Read-Only Services 47
Using WebGetAttribute and UriTemplate 47
Data Formats 49
Message 50
DataContract 52
XmlSerializer 55
Hybrid Approach 57
Summary 58
4.Programming Read/Write Services 59
POST,PUT,and DELETE 59
Using WebInvokeAttribute 60
Resources 60
URIs and Uniform Interface 60
Representations 61
Implementation 61
Summary 71
5.Hosting WCF RESTful Services 73
WCF REST Hosting Isn't a Special Case 73
Self-Hosting 74
Configuring,Opening,and Closing a ServiceHost 74
Base Addresses 79
ServiceHost Versus WebServiceHost 80
Custom ServiceHost 84
Hosting in IIS 86
ASP.NET Compatibility 92
Multiple Hostnames 95
Removing the.svc File Extension 96
Custom ServiceHostFactory 98
Hosting Wrap-Up 99
Summary 99
6.Programming Feeds 101
Building a Feed with WCF 101
SyndicationItem 105
Formatters 107
Exposing a Feed on a Live URI 110
Feed Validation 111
Adding Links to a Feed 115
Summary 117
7.Programming Ajax and Silverlight Clients 119
WCF Web Services and Ajax 120
JSON 123
JSON-Enabling a Service Endpoint 127
ASP.NET Ajax 132
Silverlight 1.0 141
Silverlight 2.0 142
Parsing XML in Silverlight 2.0 144
Parsing JSON in Silverlight 2.0 151
Consuming Feeds in Silverlight 2.0 152
Cross-Domain Security in Silverlight 2.0 154
Returning JSON and XML Conditionally with a Single Method 154
Summary 157
8.Securing REST Endpoints 159
Authenticating:Self-Hosted Endpoints 159
Setting Endpoint Security:WebHttpBinding.Security's Mode Property 161
Setting Authentication Requirements:WebHttpBinding's Transport Property 165
Authenticating:Managed Hosting Endpoints 169
Authorizing Endpoints 170
Authorization with Impersonation 170
Role-Based Authorization 171
Summary 174
9.Using Workflow to Deliver REST Services 175
Consuming REST Services from WF 175
The SendActivity Instance 176
The ReceiveActivity Instance 181
Stateless Workflow Services 182
Stateful Workflow Services 189
Summary 193
10.Consuming RESTful XML Services Using WCF 195
Defining the Client 195
Generating the Contract 197
Creating the Resource Representations 199
Creating the ServiceContract 207
Using the Service 209
Client Extensibility 214
Summary 216
11.Working with HTTP 217
Programming HTTP with WCF 217
IncomingWebRequestContext 219
OutgoingWebResponseContext 220
OutgoingWebRequestContext 222
IncomingWebResponseContext 223
Context Wrap-Up 223
Status Codes 224
20—Created 227
404—Not Found 229
Conditional GET 231
LastModified 232
ETags 236
Caching 239
Output Caching 239
HttpContext.Cache 241
Content-Type 242
Summary 243
A.WCF 3.5 SP1 245
B.ADO.NET Data Services 257
C.ADO.NET Entity Framework Walkthrough 273
Index 279