Introduction
In
this article let's dig out one more interesting concepts in windows phone which
communicates with WCF Service to perform some operation. Once this application
is fully developed and deployed it provide entire details for application that
you are requested to install.
Question Arises: What is Market Place Detail?
In simple terms "It provide complete list of details that are required for specific application to install on phone".
Let's get this implemented now!!!
Step 1 : The
Complete Code of IService1.cs looks like this.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Runtime.Serialization;
using
System.ServiceModel;
using
System.ServiceModel.Web;
using
System.Text;
namespace
WCF_Market_Place_Details
{
// NOTE: You can use the "Rename" command on the "Refactor"
menu to change the interface name "IService1" in both code and config file
together.
[ServiceContract]
public interface
IService1
{
[OperationContract]
string Content(string
a);
}
}
Step 2 :
The Complete
Code of Service1.svc.cs looks like this.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Runtime.Serialization;
using
System.ServiceModel;
using
System.ServiceModel.Web;
using
System.Text;
namespace
WCF_Market_Place_Details
{
// NOTE: You can use the "Rename" command on the "Refactor"
menu to change the class name "Service1" in code, svc and config file together.
public class
Service1 : IService1
{
public string
Content(string a)
{
return a;
}
}
}
Step 3 : The
Complete Code of Web.Config looks like this.
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation
debug="true"
targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing
metadata information, set the value below to false and remove the metadata
endpoint above before deployment -->
<serviceMetadata
httpGetEnabled="true"/>
<!-- To receive
exception details in faults for debugging purposes, set the value below to
true. Set to false before deployment to avoid disclosing exception information
-->
<serviceDebug
includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment
multipleSiteBindingsEnabled="true"
/>
</system.serviceModel>
<system.webServer>
<modules
runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Step 4 : The
Complete Code of MainPage.xaml looks like this.
<phone:PhoneApplicationPage
x:Class="Market_Place_Detail_Task.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignWidth="480"
d:DesignHeight="768"
FontFamily="{StaticResource
PhoneFontFamilyNormal}"
FontSize="{StaticResource
PhoneFontSizeNormal}"
Foreground="{StaticResource
PhoneForegroundBrush}"
SupportedOrientations="Portrait"
Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<!--LayoutRoot is the root grid
where all page content is placed-->
<Grid
x:Name="LayoutRoot"
Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition
Height="Auto"/>
<RowDefinition
Height="*"/>
</Grid.RowDefinitions>
<!--TitlePanel contains the
name of the application and page title-->
<StackPanel
x:Name="TitlePanel"
Grid.Row="0"
Margin="12,17,0,28">
<TextBlock
x:Name="ApplicationTitle"
FontFamily="Verdana"
FontSize="22"
Text="Vijay's Market
Place Details Application"
Style="{StaticResource
PhoneTextNormalStyle}"/>
<TextBlock
x:Name="PageTitle"
Text="Windows 7 Phone"
Margin="9,-7,0,0"
Style="{StaticResource
PhoneTextTitle1Style}"/>
</StackPanel>
<!--ContentPanel - place
additional content here-->
<Grid
x:Name="ContentPanel"
Grid.Row="1"
Margin="12,0,12,0">
<Button
Content="Market Place
Details" FontFamily="Verdana"
FontSize="22"
Height="72"
HorizontalAlignment="Left"
Margin="93,289,0,0"
Name="button1"
VerticalAlignment="Top"
Width="284"
Click="button1_Click"
/>
<TextBlock
Height="30"
FontFamily="Verdana"
FontSize="22"
HorizontalAlignment="Left"
Margin="72,175,0,0"
Name="textBlock1"
Text="Please Enter
Content Identifier"
VerticalAlignment="Top"
/>
<TextBox
Height="72"
HorizontalAlignment="Left"
Margin="93,211,0,0"
Name="textBox1"
VerticalAlignment="Top"
Width="284" />
<TextBlock
Height="30"
HorizontalAlignment="Left"
Margin="84,396,0,0"
Name="textBlock2"
Foreground="Red"
FontFamily="Verdana"
FontSize="22"
VerticalAlignment="Top"
/>
</Grid>
</Grid>
<!--Sample code showing usage
of ApplicationBar-->
<!--<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png"
Text="Button 1"/>
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png"
Text="Button 2"/>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="MenuItem 1"/>
<shell:ApplicationBarMenuItem Text="MenuItem 2"/>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>-->
</phone:PhoneApplicationPage>
Step 5 :
The Complete Code of
MainPage.xaml.cs looks like this.
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
Microsoft.Phone.Controls;
using
Microsoft.Phone.Tasks;
using
Market_Place_Detail_Task.ServiceReference1;
namespace
Market_Place_Detail_Task
{
public partial
class MainPage
: PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
static void
ContentCall(object sender,
ContentCompletedEventArgs e)
{
MarketplaceDetailTask
objDetailsTask = new
MarketplaceDetailTask();
objDetailsTask.ContentIdentifier = e.Result;
objDetailsTask.ContentType =
MarketplaceContentType.Applications;
objDetailsTask.Show();
}
private void
button1_Click(object sender,
RoutedEventArgs e)
{
textBlock2.Text = "";
if (string.IsNullOrEmpty(textBox1.Text))
{
textBlock2.Text = "Please Enter
Content Identifier";
}
else
{
Service1Client objClient = new
Service1Client();
objClient.ContentCompleted += new
EventHandler<ContentCompletedEventArgs>(ContentCall);
objClient.ContentAsync(textBox1.Text);
textBox1.Text = "";
}
}
}
}
Step 6 :
Output of the Application looks like this.

Market Place Detail Output Application looks like this.

Nothing Entered Output Application looks like this.

I hope this article is useful for you. I look forward for your comments and
feedback.
Thanks Vijay Prativadi.

Join the conversation! Your thoughts help the community grow.