2.11. Creating a Silverlight Application to consume the service
This section will guide you through creating an application for Silverlight that will consume
the ADO.Net Data Service created in Creating a Web Browser Application to Access RDF Data Using The
Virtuoso ADO.Net Provider.
2.11.1. Pre-requisites
- The Microsoft Silverlight 2 Tools for Visual Studio 2008 SP1
- The ADO.Net Data Service created in Creating a Web Browser Application to Access RDF Data Using The
Virtuoso ADO.Net Provider.
- The Visual Studio project used to create the ADO.Net Data Service.
2.11.2. Creating the Application for Silverlight.
- Open the ADO.Net Data Service project in Visual Studio
- In the Solution Explorer right click on the RDFWebDemo solution and add a new Project.
- In the Add New Project dialog select
Silverlight Application and click OK. This will open
the Add Silverlight Application dialog.
- Select Link this Silverlight Control into an existing Web Site and make
sure the Web Site selected is RDFWebDemo. Select
Add a test page that references the application and Make it the start
page.
- In Solution Explorer, select RDFWebDemo, open the Project menu and select Properties.
- Select the Web tab, and select Specific Page
in the Start Action section. Click on the ellipsis and select
SilverlightApplication1TestPage.html as the start page.
- Add a reference to the data service. In the Solution Explorer right click
on SilverlightApplication1 and select Add Service Reference
- In the Add Service Reference dialog click the Discover
button. Your ADO.Net Data Service should appear in the Address box and the Services box.
- Select the service and click OK. ServiceReference1 will now be added to
the ServiceReferences.
- Open page.xaml.cs and add references to the service and to the System.Data.Services.Client
assembly by adding the following using statements at the top of the file:
using System.Data.Services.Client;
using SilverlightApplication1.ServiceReference1;
- We need at create a data service context to reference the data from the service and to load data
from the view, sparqlview, exposed by the service. Add the following lines to the page constructor after
InitializeComponent()
DataServiceContext svcCtx = new DataServiceContext(new Uri("WebDataService1.svc", UriKind.Relative));
svcCtx.BeginExecute<sparqlview>(new Uri("sparqlview", UriKind.Relative), loadSCallback, svcCtx);
- Add the loadSCallback method to the page class. The method loads the data from sparqlview and
puts it in a List. This List populates a list box on the page.
private void loadSCallback(IAsyncResult asyncResult)
{ List<Uri> uList = new List<Uri>();
DataServiceContext ctx = asyncResult.AsyncState as DataServiceContext;
foreach (sparqlview sv in ctx.EndExecute<sparqlview>(asyncResult))
uList.Add(new Uri(sv.s));
listBox1.DataContext = uList;
}
- Add the list box to the page. In the Solution Explorer double click on
page.xaml to open it in the editor. Add the following code between the <grid> and </grid> tags.
<ListBox x:Name="listBox1"
HorizontalAlignment="Stretch"
Margin="25,8,26,-78" Grid.RowSpan="1"
Grid.Row="0" VerticalAlignment="Stretch"
ItemsSource="{Binding Mode=OneWay}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="DisplayListData"
Orientation="Horizontal"
VerticalAlignment="Bottom"
Margin="5" >
<HyperlinkButton
Content ="{Binding}"
NavigateUri="{Binding}"
Margin="5,0,0,0"
VerticalAlignment="Bottom"
HorizontalAlignment="Left"
FontSize="12">
</HyperlinkButton>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
- Build the Silverlight application and launch without debugging using Ctrl F5.
This will launch the browser and open SilverlightApplication1TestPage.aspx.
Clicking on one of the IRIs will open the page using description.vsp.
Previous
Creating a Web Browser Application to Access RDF Data Using The Virtuoso ADO.Net Provider |
Chapter Contents
|
Next
Creating A Simple .NET RIA Services Application To Display Data
From Virtuoso |