Introduction 
In this article let's play around with one of the interesting market search 
task concept in windows phone whereby communicating a message from WCF Service.
Question Arises: What is Market Place Search?
As we Know our mindset is associated with different kinds of thought to search 
in market, this application provides flexibility for the user to access the 
application and query on windows phone fetch out some related data. In Simple 
terms, "Get Item you want from market, accesses the application on Windows 
Phone".
Let's Implement this.
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 
WcfService1
{
    // 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 Search(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 
WcfService1
{
    // 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 
Search(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_Search_Task_Application.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 Search Task 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 
Search" 
FontFamily="Verdana" 
FontSize="22" 
Height="72" 
HorizontalAlignment="Left" 
Margin="120,240,0,0" 
Name="button1" 
VerticalAlignment="Top" 
Width="260"
Click="button1_Click" 
/>
            
<TextBox 
Height="72" 
HorizontalAlignment="Right" 
Margin="0,162,76,0" 
Name="textBox1"
 VerticalAlignment="Top" 
Width="260" />
            
<TextBlock 
Height="30" 
FontFamily="Verdana" 
FontSize="22" 
HorizontalAlignment="Left" 
Margin="91,112,0,0" 
Name="textBlock1" 
Text="Please 
Enter Query to Search" 
VerticalAlignment="Top" 
/>
            
<TextBlock 
Height="30" 
HorizontalAlignment="Left" 
Margin="75,364,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_Search_Task_Application.ServiceReference1;
namespace 
Market_Search_Task_Application
{
    public partial
class MainPage 
: PhoneApplicationPage
    {
        // Constructor
        public 
MainPage()
        {
            InitializeComponent();
        }
        static void 
SearchCall(object sender, 
SearchCompletedEventArgs e)
        {
            MarketplaceSearchTask 
objMarketPlace = new 
MarketplaceSearchTask();
            objMarketPlace.ContentType = 
MarketplaceContentType.Applications;
            objMarketPlace.SearchTerms = e.Result;
            objMarketPlace.Show();
        }
        private void 
button1_Click(object sender,
RoutedEventArgs e)
        {
            textBlock2.Text = "";
            if (string.IsNullOrEmpty(textBox1.Text))
            {
                textBlock2.Text = "Please Enter 
Search Query";
            }
            else
            {
                Service1Client objClient = new 
Service1Client();
                objClient.SearchCompleted += new
EventHandler<SearchCompletedEventArgs>(SearchCall);
                objClient.SearchAsync(textBox1.Text);
                textBox1.Text = "";
            }
        }
    }
}
Step 6 : Output of the Application looks like this.
![MarketSearch0.png]()
Market Place Search Output Application looks like this.
![MarketSearch1.png]()
Nothing Entered Output Application looks like this.
![MarketSearch2.png]()
I hope this article is useful for you. I look forward for your comments and 
feedback.
Thanks Vijay Prativadi.