O'Reilly logo

Data-Driven Services with Silverlight 2 by John Papa

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

WebClient

Unlike SOAP services, you cannot create a service reference for a RESTful web service since most RESTful services do not expose a contract, nor do they have WSDL definitions. This means a Silverlight 2 client application cannot simply add a service reference to a RESTful web service. Instead, Silverlight 2 client applications must make use of the WebClient and HttpWebRequest classes to communicate with RESTful web services.

Note

One of the RESTful tenets is that a resource is self-describing. An HTTP request using OPTIONS will discover what can be done with a resource and the formats supported by it.

In a nutshell, WebClient is a simpler API that can communicate with an HTTP-based web service. It can send GET and POST requests (but not PUT or DELETE requests) to a service to send and receive data. HttpWebRequest also provides the means to communicate with HTTP-based web services. It accepts a URI, just like the WebClient library, but allows greater customization of the information sent to the web service, such as more control over headers than with WebClient. The WebClient class uses the HttpWebRequest class under the covers, but WebClient is a much simpler API and often is all that is required. As with any remote web service invocation from Silverlight, a cross-domain policy file must exist on the root of the remote server’s domain to allow Silverlight to call the service.

Note

Silverlight 2 applications allow communication with remote web services on a domain that is different ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required