SIGN UP MEMBER LOGIN:    
ARTICLE

Consuming a JSON Service in Window 8 Metro Style Application

Posted by Arjun Panwar Articles | Metro Style Apps in C# February 07, 2012
In this article we show how to consume a WCF service in a Windows Metro Style Application with Visual Studio 2011.
Reader Level:

Introduction

In this article we show how to consume a WCF service in a Windows Metro Style Application with Visual Studio 2011. So, first we are going to explore a WCF service in a Metro Style Application in Visual Studio 2011 on Windows 8. In Windows Metro Style, we have to select a RadioButton, Textbox, Hyperlink and Button and interact with a WCF service in .NET Framework 4.5. This application, upon button click event, loads the data. It is a useful and fully functional web service in Metro Style Apps and it can save efforts (make things easier).

First we have to make a simple WCF service and Metro Style Application customer. So, lets make a WCF service:

  • Open Visual Studio 2011
  • New>File>Asp.Net Empty Web Application
  • Rename this Application


aspwebsite.jpg

After creating the application, the service interface will look like as:

Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Web; 

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "ISimpleService" in both code and config file together.
[ServiceContract]
public interface ISimpleService
{
    [
OperationContract]
    [
WebGet(UriTemplate = "Data", ResponseFormat = WebMessageFormat.Json)]
   
List<string> getsomedata();
}


We have to implement the service with the following code.

Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Web;

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "SimpleService" in code, svc and config file together.
public class SimpleService : ISimpleService
{
      
public List<string> getsomedata()
       {
       
List<string> lst =new List<string>();
       
for (int i=0; i<10;  i++)
        {
            System. Threading.
Thread.Sleep(100);
            lst.Add(
string.Format("total number{0}",i + 1));
        }
       
return lst;
       }
}

Output : Here is the web service output.

serviceoutput.gif

Here we have to return a list of strings.

Now, we have to publish a WCF service and access this service in a Metro Style Application on the local host.

So, We have to create a Metro Style Application to access this service. We have to follow these steps such as given below.

  • Right-click on Solution Item
  • Add a new project
  • Select Metro Style Application in the template bar

metrostyleapp.jpg

Now, we have to add a service reference.

addservicereference.gif

In the GridView we have to add the Textbox, RadioButton, Hyperlink, Button and set the format in the GridView. The XAML code will look like as in the following:

Code

<UserControl x:Class="WCFCoustmer.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="768" d:DesignWidth="1366">
   
<Grid x:Name="LayoutRoot" Background="#FF0C0C0C">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="170*"/>
            <ColumnDefinition Width="335*"/>
            <ColumnDefinition Width="225*"/>           
       
</Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="82*"/>
            <RowDefinition Height="189*"/>
            <RowDefinition Height="69*"/>
        </Grid.RowDefinitions>
        <GridView x:Name="griddata" Grid.ColumnSpan="2" Margin="-34,37,352,148" Grid.RowSpan="2" RenderTransformOrigin="0.474999994039536,0.474999994039536" />
        <HyperlinkButton Content="Button for Hyperlink" Grid.Column="1" VerticalAlignment="Bottom" Height="74" Margin="144,0,0,74" HorizontalAlignment="Left" Width="312"/>
        <Button Content="Button" Grid.Column="1" HorizontalAlignment="Right" Height="45" Margin="0,60,231,0" Grid.Row="2" VerticalAlignment="Top" Width="179"/>
        <TextBox HorizontalAlignment="Stretch" Height="29" Margin="85,200,121,191" Grid.Row="1"
                 Text="Textbox" VerticalAlignment="Center" Width="112"/>
        <RadioButton Content="RadioButton" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="141,84,0,0"/>
    </Grid>
</UserControl>

Here, we have to show the designing page look like as.

designepage.gif

Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Data;
namespace WCFCoustmer
{
   
partial class MainPage

    {
       
public MainPage()
        {
            InitializeComponent();
        }

        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {

            ServiceReference1.SimpleServiceClient client = new
            ServiceReference1.SimpleServiceClient();          
           
var servicedata = client.getsomedataAsync();
            griddata.ItemsSource = servicedata.Result;
        }
    }
}
 

On the MainPage.XAML we have the loaded event and the GetSomeDataAsync method used for asynchronous and the await C# keyword and assign the data in the GridView.ItemSource insert the following code. After running this code the data is loaded asynchronously on the button click.

Resources

Here are some useful resources:

Login to add your contents and source code to this article
share this article :
post comment
 

Thanks for Sharing...Great Work!!!

Posted by Vijay Prativadi Mar 21, 2012
Nevron Gauge for SharePoint
Become a Sponsor
PREMIUM SPONSORS
  • Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
    The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
Team Foundation Server Hosting
Become a Sponsor