It may be bit late but let us learn WCF RIA together. I will be writing many parts on Learning WCF RIA Services.

Part1

In this part just to get a feeling of WCF RIA and see our one application is running on WCF RIA, I am going to walkthrough creating 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.

clip_image002

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

clip_image003

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

clip_image005

Add ADO.Net Entity model from Data tab.

clip_image006

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

clip_image007

Provide server name and authentication and choose the database.

clip_image008

clip_image009

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

clip_image010

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

Creating Domain Service

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

clip_image012

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

clip_image013

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

clip_image015

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

clip_image016

Add a Data Grid on design

clip_image017

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

clip_image019

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

clip_image021

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,

clip_image023

Advertisements

3 thoughts on “walk through WCF RIA Service

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s