Silverlight applications cannot access server-side classes or variables without mediator like Web Service or WCF Service or WCF RIA. Now I will walk through how we can call WCF Service in Silverlight4 application.
We need to install silverlight4 SDK to work on Silverlight projects. Please follow this blog post for more details on Silverlight Tool KIT installation.
To create a Silverlight application, Go to File- >New-> Silverlight-> Silverlight Application
Name it as demo; Silverlight Application requires a web application project or website to host it.
You can view Client-Bin Folder here in the web application that will be empty initially.
But when we compile the application, Silverlight project gets compiled into an assembly, and this assembly gets wrapped into the XAP file, This XAP file gets copied under client-bin folder.
Now right click on the project and add new item-> Silverlight-> Select silverlightenabled WCF Service.
Now we need to define DataContract and Operation Contract for WCF Service.
Create a class to define datacontract and datamembers.
In the Service1.svc.cs file define operation contract under the service contract
Note: Operation contract attribute can be added to the operations that can be invoked by clients on the service. Service Contract attribute defines the functionality that service exposes.
Build the application.
Now we need to consume this service in silverlight project and display the author’s details in beyond relational.
MainPage.XAML is where we write the code ,that gets integrated to service and calls it dynamically.
This is the silverlightUI
Databinding sets the values of objects and controls dynamically.This way we bind from the service { Binding } is used to bind corresponding data dynamically from the service. Calling the service in code behind mainpage.xaml.cs
Code to dynamically render authors from the dropdownlist selection
Services need to be accessed asynchronously in Silverlight.
Calling a proxy class event to dynamically
Results

We need to install silverlight4 SDK to work on Silverlight projects. Please follow this blog post for more details on Silverlight Tool KIT installation.
To create a Silverlight application, Go to File- >New-> Silverlight-> Silverlight Application
Name it as demo; Silverlight Application requires a web application project or website to host it.
You can view Client-Bin Folder here in the web application that will be empty initially.
But when we compile the application, Silverlight project gets compiled into an assembly, and this assembly gets wrapped into the XAP file, This XAP file gets copied under client-bin folder.
Now right click on the project and add new item-> Silverlight-> Select silverlightenabled WCF Service.
Create a class to define datacontract and datamembers.
01.[DataContract]02. public class BeyondRelational03. {04. [DataMember]05. public string Name { get; set; }06. [DataMember]07. public string Country { get; set; }08. [DataMember]09. public string Location{ get; set; }10. [DataMember]11. public string Article {get;set; }12. [DataMember]13. public string Author { get; set; }14. }01.public class Service102. { 03. [OperationContract]04. public List GetAuthors()05. {06. return new List07. {08. new BeyondRelational09. {10. Country ="India",11. Name = "Hima",12. Location ="hyderbad",13. Article ="SilverlightApplication"14. } ,15. new BeyondRelational16. {17. Country ="USA",18. Name = "Himda",19. Location ="Philly",20. Article ="WPF Application"21. },22. new BeyondRelational23. {24. Country ="Yuganda",25. Name = "Sonia",26. Location ="Efficu",27. Article ="SqlServer 2008 Spacial Data"28. }29. ,30. new BeyondRelational31. {32. Country ="Belgium",33. Name = "Sonia",34. Location ="Efficu",35. Article ="WCF Application"36. },37. new BeyondRelational38. {39. Country ="Srilanka",40. Name = "Pinal",41. Location ="Columbo",42. Article ="SharePoint Application"43. },44. new BeyondRelational45. {46. Country ="France",47. Name = "Sonisa",48. Location ="Paris",49. Article ="BING"50. }51. };52. } 53. }Build the application.
Now we need to consume this service in silverlight project and display the author’s details in beyond relational.
MainPage.XAML is where we write the code ,that gets integrated to service and calls it dynamically.
This is the silverlightUI
01.<Grid x:Name="LayoutRoot" Width="400" Height="300" Background="AliceBlue" VerticalAlignment="Center" DataContext="{Binding}">02. <Grid.RowDefinitions>03. <RowDefinition Height="160" ></RowDefinition>04. <RowDefinition></RowDefinition>05. 06. </Grid.RowDefinitions>07. <TextBlock x:Name= "NameTextBlocks" Text="Beyond Relational Author LIST " VerticalAlignment="top"></TextBlock>08. <ComboBox Height="23" HorizontalAlignment="Left" x:Name="BRComboBox" VerticalAlignment="Top" Width="250" SelectionChanged="BRComboBox_SelectionChanged" DisplayMemberPath="Name" />09. <Grid x:Name="BRDetailGrid" Grid.Row="1" VerticalAlignment="Top">10. <Grid.RowDefinitions>11. <RowDefinition></RowDefinition>12. <RowDefinition></RowDefinition>13. <RowDefinition></RowDefinition>14. <RowDefinition></RowDefinition>15. </Grid.RowDefinitions>16. <Grid.ColumnDefinitions>17. <ColumnDefinition></ColumnDefinition>18. <ColumnDefinition></ColumnDefinition>19. <ColumnDefinition></ColumnDefinition>20. </Grid.ColumnDefinitions>21. <TextBlock x:Name= "NameTextBlock" Grid.Row ="0" Grid.Column="0" FontWeight="Bold" FontFamily="Verdna" Text="Author Name:" HorizontalAlignment="Right" ></TextBlock>22. <TextBlock x:Name="NameValue" Grid.Row="0" FontFamily="Verdna" FontWeight="bold" Grid.Column="1" Text="{Binding Name}" HorizontalAlignment="right" />23. <TextBlock x:Name= "LocationTextBlock" Grid.Row ="1" Grid.Column="0" FontWeight="Bold" Text="Location:" HorizontalAlignment="Right" ></TextBlock>24. <TextBlock x:Name="LocationValue" Grid.Column="1" Grid.Row="1" FontFamily="Verdna" FontWeight="bold" Text="{Binding Location}" HorizontalAlignment="Right"></TextBlock>25. <TextBlock x:Name="CountryTextBlock" Grid.Row="2" Grid.Column="0" FontFamily="Verdna" FontWeight="bold" Text="Country" HorizontalAlignment="Right"></TextBlock>26. <TextBlock x:Name="CountryValue" Grid.Row="2" Grid.Column="1" FontFamily="Verdna" FontWeight="bold" Text="{Binding Country}" HorizontalAlignment="Right"></TextBlock>27. <TextBlock x:Name="PriceTextBlock" Grid.Row="3" Grid.Column="0" FontFamily="Verdna" FontWeight="bold" Text="Article Title" HorizontalAlignment="Right"></TextBlock>28. <TextBlock x:Name="PriceValue" Grid.Row="3" Grid.Column="1" FontFamily="Verdna" FontWeight="bold" Text="{Binding Article}" HorizontalAlignment="Right"></TextBlock>29. </Grid>30. 31. </Grid>1.public MainPage()2. {3. InitializeComponent();4. BRService.Service1Client proxy = new BRService.Service1Client();5. proxy.GetAuthorsCompleted += new EventHandler(proxy_GetAuthorsCompleted);6. proxy.GetAuthorsAsync();7. }1.private void BRComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)2.{3. BRDetailGrid.DataContext = (sender as ComboBox).SelectedItem as BRService.BeyondRelational;4.}Calling a proxy class event to dynamically
1.void proxy_GetAuthorsCompleted(object sender, Demos.BRService.GetAuthorsCompletedEventArgs e)2. {3. BRComboBox.ItemsSource = e.Result;4. }
0 comments:
Post a Comment