Click here to Skip to main content
Click here to Skip to main content

Pocket PC Calling Dynamic Web Service

, 28 Mar 2005 CPOL
Rate this:
Please Sign up or sign in to vote.
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.

//
// 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.

//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.

//
// 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)

Share

About the Author

latha vallinayagam
Web Developer
United States United States
No Biography provided

Comments and Discussions

 
QuestionPocket PC PinmemberMember 41859477-May-08 0:40 
QuestionHow to call webservice from pocketpc application using win32? Pinmemberpraveen_kush12-Oct-07 4:50 
GeneralEven more WTFs Pinmembernsimeonov8-Oct-06 22:04 
GeneralWTF Pinmembernsimeonov8-Oct-06 19:13 
GeneralDoesn't works PinmemberMiguel Bocanegra15-Sep-06 10:10 
GeneralError while reading XML Web services PinmemberDotnetblog27-Jan-06 23:38 
GeneralIn the Data Transfer Function we meet error. PinmemberYMVPR15-Nov-05 16:47 
GeneralRe: In the Data Transfer Function we meet error. PinmemberEdgar T10-Feb-06 6:44 
QuestionRe: In the Data Transfer Function we meet error. Pinmemberfizous20-Mar-06 23:00 
GeneralReally good work but I've got a deep question for you Pinmemberlonifasiko22-Jul-05 1:12 
QuestionHow do I get the service started PinmemberChromeDomeSA26-May-05 20:51 
AnswerRe: How do I get the service started PinmemberChromeDomeSA1-Jun-05 15:14 
QuestionHow To Change this INI file Dynamically PinmemberChandra Murali11-Apr-05 2:13 
AnswerRe: How To Change this INI file Dynamically Pinmemberlatha vallinayagam11-Apr-05 4:42 
AnswerRe: How To Change this INI file Dynamically PinmemberVenkat Polisetti12-Apr-05 10:16 
GeneralRe: How To Change this INI file Dynamically PinmemberChandra Murali13-Apr-05 2:02 

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

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

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.141216.1 | Last Updated 29 Mar 2005
Article Copyright 2005 by latha vallinayagam
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid