Click here to Skip to main content
15,891,513 members
Articles / Programming Languages / C#

Pocket PC Calling Dynamic Web Service

Rate me:
Please Sign up or sign in to vote.
2.06/5 (8 votes)
28 Mar 2005CPOL3 min read 88.8K   664   40   16
An article on Pocket PC connecting to a dynamic Web Service.

Sample Input PocketPC

Sample OutPut PocketPC

Contents

Introduction

I started off with my project in Pocket PC knowing nothing. But many articles in The Code Project and other URLs I have given below gave me a quick start. But dynamic URL was the biggest pain of all. So I wanted to share my piece of experience with everyone.

Software Requirement

Software requirement for the Pocket PC are:

  • Microsoft ActiveSync

    This is the tool connecting the workstation and the Pocket PC, the first tool to be installed to work with the Pocket PC.

  • MDAC 2.7
  • Microsoft Compact Framework.

    This framework will be used to put all the libraries required for the Pocket PC to support a .NET application.

Hardware considerations:

  • The Pocket PC will require a serial port to connect to the workstation.

Sample Code Analysis

The application I have done here will create an XML string and transfer that XML string to a web service, the web service takes care of opening the XML string and displaying it in the next screen. This application with get the strings from the textbox provided and combine that to an XML formatted data. These XML data are received from the web service side and shown in the textbox.

C#
//
// code for the data tansfer
//
private void btnTransfer_Click(object sender, System.EventArgs e)
{
    try
    {
        StringBuilder sText = new StringBuilder();
        sText.Append("<DATA>");
        if(txtstr1.Text != "")
        {
            sText.Append("<string1>");
            sText.Append(txtstr1.Text);
            sText.Append("</string1>");
        }
        else if(txtstr2.Text != "")
        {
            sText.Append("<string2>");
            sText.Append(txtstr2.Text);
            sText.Append("</string2>");
        }

        sText.Append("</DATA>");
        Homer.dataTransfer xmlTransfer = new Homer.dataTransfer();
        xmlTransfer.Url = GetWebServiceUrl() ;
        string strResponse = xmlTransfer.DataTransfer(sText.ToString());
        MessageBox.Show("the message was " + strResponse);
    }
    catch(Exception exc)
    {
        lblResponse.Text = exc.Message;
    }
}
//code for receving message from web service

Following is the code for calling the dynamic URL. The way to call the web service dynamically is by creating an INI file, for e.g., webserviceUrl.ini as in my example. The content of the file is as follows. This file should be placed in the application folder in the Pocket PC. This application cannot be tried with the simulator. You can always work with the static Web service URL in the simulator.

XML
//content of the webservice ini file

<?xml version="1.0" encoding="utf-8" ?>
<appConfig>
 <webServiceUrl>
   http://your_server_name_goes_here/SampleService/Service1.asmx
 </webServiceUrl>
</appConfig>

The web service INI file is opened from the function below and the web reference is taken from the INI file.

Dynamic XML Web Service

Using a web service is simpler in the mobile application, but to make it dynamic was one of a task. Since the Pocket PC has to be tested in various scenarios and then modified for the live server, the dynamic web service is not the same for the mobile application as the web application. The code below will help you in setting up the dynamic web service URL for the application.

C#
//
// Code for calling the dynamic URL
//
private string GetWebServiceUrl()
{
    string Apppath = null;
    Apppath = System.IO.Path.GetDirectoryName( 
              System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );
    string iniFile = Apppath + @"\WebServiceUrl.ini";
    FileStream xmlStream = new FileStream(iniFile, FileMode.Open);
    XmlTextReader xmlReader = new XmlTextReader(xmlStream);

    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(xmlReader);

    xmlReader = null;
    xmlStream.Close();
    XmlNode xmlRoot = xmlDoc.DocumentElement;

    string Url = xmlRoot.ChildNodes.Item(0).ChildNodes.Item(0).Value;
    xmlDoc = null;

    return Url;
}

Points of Interest

The above should help anyone start off smoothly with the Pocket PC application. Some final words of caution and things that I faced while working with Pocket PC:

  • When we work with the Pocket PC application forms, the instance will still run even when we close the form. So to eliminate the problem, I had to make the minimize button to false, so when we close the form in the Pocket PC, it removes the instance of the application.
  • When a developer is not able to run the application due to an error message like the application is already running an instance, the following links can help you eliminate the issue.

Other Useful Links on Pocket PC

History

Created date -22 March, 2005.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionPocket PC Pin
Member 41859476-May-08 23:40
Member 41859476-May-08 23:40 
QuestionHow to call webservice from pocketpc application using win32? Pin
praveen_kush12-Oct-07 3:50
praveen_kush12-Oct-07 3:50 
GeneralEven more WTFs Pin
nsimeonov8-Oct-06 21:04
nsimeonov8-Oct-06 21:04 
GeneralWTF Pin
nsimeonov8-Oct-06 18:13
nsimeonov8-Oct-06 18:13 
GeneralDoesn't works Pin
Miguel Bocanegra15-Sep-06 9:10
Miguel Bocanegra15-Sep-06 9:10 
GeneralError while reading XML Web services Pin
Dotnetblog27-Jan-06 22:38
Dotnetblog27-Jan-06 22:38 
GeneralIn the Data Transfer Function we meet error. Pin
YMVPR15-Nov-05 15:47
YMVPR15-Nov-05 15:47 
GeneralRe: In the Data Transfer Function we meet error. Pin
Edgar T10-Feb-06 5:44
Edgar T10-Feb-06 5:44 
QuestionRe: In the Data Transfer Function we meet error. Pin
fizous20-Mar-06 22:00
fizous20-Mar-06 22:00 
GeneralReally good work but I've got a deep question for you Pin
lonifasiko22-Jul-05 0:12
lonifasiko22-Jul-05 0:12 
QuestionHow do I get the service started Pin
ChromeDomeSA26-May-05 19:51
ChromeDomeSA26-May-05 19:51 
AnswerRe: How do I get the service started Pin
ChromeDomeSA1-Jun-05 14:14
ChromeDomeSA1-Jun-05 14:14 
QuestionHow To Change this INI file Dynamically Pin
Chandra Murali11-Apr-05 1:13
Chandra Murali11-Apr-05 1:13 
AnswerRe: How To Change this INI file Dynamically Pin
latha vallinayagam11-Apr-05 3:42
latha vallinayagam11-Apr-05 3:42 
AnswerRe: How To Change this INI file Dynamically Pin
Venkat Polisetti12-Apr-05 9:16
Venkat Polisetti12-Apr-05 9:16 
GeneralRe: How To Change this INI file Dynamically Pin
Chandra Murali13-Apr-05 1:02
Chandra Murali13-Apr-05 1:02 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.