Learn WCF RIA Service: Part I


It might be a bit late but let us learn WCF RIA together. I will be writing many articles about WCF RIA Services. 

Part 1 

This part is just to get a feeling of WCF RIA and to see an application running on WCF RIA; I am going to walk through creation of a first application through WCF RIA Services. 

In a Silverlight Data Grid we will fetch and display all the records from Person table of School database using WCF RIA Service. 

Creating Project 

Open Visual Studio and create a new a new Silverlight Application. 

1.gif
 
Make sure you have checked the Enable WCF RIA Service checkbox. 

2.gif
 
We will have two projects in the solution.

Creating DataModel 

Now let us create a DataModel.  I am going to use School database here.

The first step is to create database. We are going to use School database.  Script of sample School Database copy from here

Right click on Server Project [web project] and add a new item.

3.gif
 
Add ADO.Net Entity model from Data tab. 

4.gif
 
Choose the option generate from Database.  If Database you want to use is listed in drop down then choose that else create a New Connection. 

5.gif 

Provide server name and authentication and choose the database.  

6.gif 

7.gif

Either leave default name for connection string in config file or give a unique name; then after selecting table click finish. 

8.gif 

Note: Make sure after creating Data Model that you have built the project. This is an important step.

Creating Domain Service 

Right click on Server Project [web project] and add a new item. From web tab select Domain Service class 

9.gif 

Select available Data context class from drop down.  And select Person class from list of tables. 

10.gif 

After this step you will get DomainService1.cs class created in the web project. 

11.gif
 
There are two things to notice about the class. 
  1. Class is inherited from LinqToEntitiesDomainService<T> class 
  2. Attributed with EnableClientAccess. 

Fetching Data from at Silverlight client 

Build the project and add the namespace 

12.gif
 
Add a Data Grid on design 

13.gif
 
After adding Data Grid xaml will look like below.

MainPage.Xaml 

<UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"  x:Class="RIA1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">
    <Grid x:Name="LayoutRoot" Background="White">
        <sdk:DataGrid Name="myGrid" >
         </sdk:DataGrid>            
    </Grid>
</UserControl>


At the code behind now we need to fetch the data from Domain service.  For that 
  1. Create an instance of Domain service class

    14.gif

  2. Load the entity set to be bind as item source of data grid. 

    15.gif
MainPage.xaml.cs 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using RIA1.Web;
using System.ServiceModel.DomainServices.Client; 
 
namespace RIA1
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            DomainService1 context = new DomainService1();
            LoadOperation<Person> loapPerson = context.Load(context.GetPeopleQuery());
            myGrid.ItemsSource = loapPerson.Entities; 
 
        }
    }
}

Press F5 to run the application, 

16.gif

Up Next
    Ebook Download
    View all
    Learn
    View all