![]() |
Web Development »
Silverlight »
General
Intermediate
License: The Code Project Open License (CPOL)
4 Simple Steps to Consume WCF Service using SilverlightBy Shivprasad koirala4 simple steps to consume WCF service using Silverlight |
WCF, Silverlight, Architect
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
Update: SilverLight FAQ's - Part 3 link added to this article.
This article will talk about 4 simple steps which will assist you to consume WCF service in a Silverlight application. It also has a simple sample source code which demonstrates all the 4 steps practically.
I have collected around 400 FAQ questions and answers in WCF, WPF, WWF, SharePoint, design patterns, UML, etc. Feel free to download these FAQ PDFs from my site http://www.questpond.com.
The first step is to create your WCF service. When we create a WCF service, by default it creates ‘GetData’ function which takes in an integer value and returns back a string saying “You entered 10” , in case you passed ‘10’ as value to the function. We will try to consume this service in Silverlight in the coming steps:
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
}
For this example, our WCF service and the Silverlight web application will be hosted in different IIS websites. In other words, they will be hosted in different domains. When we talk about different website, in other words they are hosted in different domains. For instance, it’s possible that your Silverlight web application is hosted in one domain like www.xyz.com and your WCF service is hosted in different domain i.e. www.pqr.com.
The WCF service needs to enable cross domain facility so that other domains can consume the WCF service.
We need to create two XML files (clientaccesspolicy.xml and crossdomain.xml) in the root directory of the WCF service to enable cross domain functionality.
Below is the XML code snippet for clientaccesspolicy.xml:
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource include-subpaths="true" path="/"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Below is the XML code snippet for crossdomain.xml:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
Create a simple Silverlight application and add the service reference to your Silverlight project. In order to call the WCF service, we need to define event handlers.
To consume the WCF service is a three step procedure.
One of the important points to note is that the function ‘GetData’ is called asynchronously.
Finally compile the program and enjoy the output.
In case you are a complete fresher to Silverlight, then below are some Silverlight FAQs which can give you a quick start in this topic.
Silverlight FAQ Part 1
This tutorial has 21 basic FAQs which will help you understand WPF, XAML, help you build your first Silverlight application and also explain the overall Silverlight architecture.
SilverLight FAQ Part 2 (Animations and Transformations)
This tutorial has 10 FAQ questions which start with Silverlight animation fundamentals and then show a simple animated rectangle. The article then moves ahead and talks about 4 different ways of transforming the objects.
This article discusses 12 FAQ’s which revolve around bindings, layouts, consuming WCF services and how to connect to database through Silverlight.
| You must Sign In to use this message board. | ||||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 8 Oct 2009 Editor: Deeksha Shenoy |
Copyright 2009 by Shivprasad koirala Everything else Copyright © CodeProject, 1999-2009 Web18 | Advertise on the Code Project |