Sigit Purnomo

C# Programming: Accessing the Web Service from Smart Device Application

Posted: September 13th 2006

Tutorial ini merupakan kelanjutan dari tutorial sebelumnya (Creating a Simple Web Service, Accessing the Web Service from Desktop Application dan Accessing the Web Service from ASP.NET Web Application). Pada tutorial yang pertama kita telah membuat sebuah Web services yang memiliki 5 method, yaitu addNumber untuk menjumlahkan dua buah angka, subtractNumber yang berfungsi untuk mengurangkan dua buah angka, divNumber yang berfungsi untuk membagi dua buah angka, multiplyNumber yang berfungsi untuk mengalikan dua buah angka, dan validateInput yang berfungsi untuk melakukan validasi terhadap input yang dimasukkan pada medan isian angka pertama dan kedua. Pada bagian yang kedua kita telah mencoba untuk mengakses web service yang telah dibuat pada bagian pertama melalui desktop application. Pada bagian ketiga dilanjutkan untuk mengakses web service yang telah dibuat pada bagian pertama melalui web application.

Pada bagian ini, kita akan belajar mengakses Web service yang telah kita buat melalui aplikasi berbasis smart device. Hal ini untuk menunjukkan bahwa Web service berbeda dengan aplikasi berbasis Web yang selama ini telah kita kenal. Pada bagian ini akan terlihat bagaimana pemisahan antara business logic (Web service) dan presentation logic (user interface pada desktop application) dalam mebangun suatu aplikasi.

Creating Smart Device Application Project

Proses pembuatan Smart Device Application Project menggunakan Microsoft Visual C# .NET, dapat dilakukan dengan mengklik File ? New Project. Setelah Common Dialog New Project ditampilkan, pilih Microsoft Visual C# Projects pada bagian Project Types dan Smart Device Application pada bagian Templates, dan isikan mobileCalc pada bagian Name.

New Project Common Dialog

Langkah selanjutnya adalah membuat User Interface (UI) dari Smart Device Application yang akan kita bangun. Rancangan UI dari Smart Device Application yang akan kita bangun adalah seperti pada gambar berikut.

Smart Device Application UI

Adding Web Reference

Setelah UI dari Smart Device Application selesai kita buat, langkah berikutnya adalah menambahkan Web Reference pada project yang kita buat melalui menu Project – Add Web Reference atau dengan klik kanan nama project pada Solution Explorer kemudian pilih Add Web Reference. Pada Common Dialog Add Web Reference pilih “Web services on the local machine” dan akan ditampilkan seluruh Web service yang ada pada local machine. Pilih simpleCalc (Web service yang telah kita buat pada tutorial sebelumnya). Setelah kita pilih, maka akan ditampilkan informasi tentang Web service yang telah kita buat (nama, method, dan lain-lain). Isikan simpleCalcService pada Web reference name dan klik Add Reference. Langkah-langkah ini dan hasilnya dapat Anda lihat pada gambar-gambar berikut. Pada kasus Smart Device Application, alamat web reference harus diganti dari domain (misal: localhost) menjadi alamat IP (misal: 192.168.9.99). Jika tidak diganti, maka kemungkinan besar akan terjadi error “Unable to connect to remote host”.

Adding Web Reference

Web Services on the Local Machine

Simple Calculator Web Service

Solution Explorer - Web Reference

Accessing the Web Service

Bagian ini merupakan inti dari tutorial ini, yaitu bagaimana mengakses Web service yang telah kita buat sehingga dapat digunakan oleh Smart Device Application kita. Langkah pertama adalah mendeklarasikan Web service yang telah kita buat dengan menambahkan code sebagai berikut:


// declare a reference Web service
private simpleCalcService.calcService  myCalcService;

Code di atas berarti kita mendeklarasikan referensi Web service yang telah kita buat (simpleCalcService.calcService) dengan nama myCalcService. Langkah berikutnya adalah melakukan instansiasi dari Web service kita pada konstruktor dari project yang telah kita buat dengan code sebagai berikut:


// instantiate a Web service
myCalcService = new  simpleCalcService.calcService();

Langkah berikutnya adalah mengakses method-method dari Web service yang telah kita buat untuk digunakan pada web application kita dengan menambahkan code-code sebagai berikut:


private void btnAdd_Click(object sender, System.EventArgs e)
{
     if (textNNum1.Text!="" & textNNum2.Text!="" )
    {
         if (myCalcService.validateInput(textNNum1.Text.ToString())==true &  myCalcService.validateInput(textNNum2.Text.ToString())==true )
         {
               textResult.Text =  myCalcService.addNumber(Single.Parse(textNNum1.Text.ToString().Trim()),Single.Parse(textNNum2.Text.ToString().Trim())).ToString();
         }
         else
               textResult.Text = "Invalid input!";
    }
    else
        textResult.Text = "You must fill  both of the number!";
}

private void btnSubtract_Click(object sender, System.EventArgs e)
{
     if (textNNum1.Text!="" & textNNum2.Text!="" )
    {
         if (myCalcService.validateInput(textNNum1.Text.ToString())==true &  myCalcService.validateInput(textNNum2.Text.ToString())==true )
        {
             textResult.Text =  myCalcService.subtractNumber(Single.Parse(textNNum1.Text.ToString().Trim()),Single.Parse(textNNum2.Text.ToString().Trim())).ToString();
        }
        else
             textResult.Text = "Invalid input!";
   }
   else
       textResult.Text = "You must fill both of the number!";
}

private void btnDiv_Click(object sender, System.EventArgs e)
{
      if (textNNum1.Text!="" & textNNum2.Text!="" )
     {
          if (myCalcService.validateInput(textNNum1.Text.ToString())==true &  myCalcService.validateInput(textNNum2.Text.ToString())==true )
         {
             if  (myCalcService.divNumber(Single.Parse(textNNum1.Text.ToString().Trim()),Single.Parse(textNNum2.Text.ToString().Trim()))==-1)
            {
                 textResult.Text = "Divide by Zero";
            }
            else
            {
                 textResult.Text =  myCalcService.divNumber(Single.Parse(textNNum1.Text.ToString().Trim()),Single.Parse(textNNum2.Text.ToString().Trim())).ToString();
            }
        }
        else
            textResult.Text = "Invalid input!";
    }
    else
        textResult.Text = "You must fill both of the number!";
}

private void btnMultiply_Click(object sender, System.EventArgs e)
{
     if (textNNum1.Text!="" & textNNum2.Text!="" )
     {
          if (myCalcService.validateInput(textNNum1.Text.ToString())==true &  myCalcService.validateInput(textNNum2.Text.ToString())==true )
          {
               textResult.Text =  myCalcService.multiplyNumber(Single.Parse(textNNum1.Text.ToString().Trim()),Single.Parse(textNNum2.Text.ToString().Trim())).ToString();
          }
          else
               textResult.Text = "Invalid input!";
    }
    else
         textResult.Text = "You must fill both of the number!";
}

private void btnClear_Click(object sender, System.EventArgs e)
{
      textResult.Text = "";
      textNNum1.Text = "";
      textNNum2.Text = "";
      textNNum1.Focus();
}

Running the Smart Device Application

Langkah terakhir dari tutorial ini adalah menjalankan aplikasi yang sudah kita buat dan melakukan testing apakah Smart Device Application dan Web service yang kita buat dapat berjalan dengan baik.

Runnning the Web Application

Download File: Smart Device Application

to be continued….


18 responses to “C# Programming: Accessing the Web Service from Smart Device Application”

  1. erik 'bukankadir' says:

    bagus…bagus…hidup[ informatika…dan hidup untuk IT…

    terima kasih bapak sigit…

    salam,

    erik ‘bukankadir’ ala senat…

  2. Antio says:

    Thanks atas ilmunya, bisa tidak posting tentang cara membuat semantic web dari c# and asp.net.

    thanks
    Antio

  3. y_sigit_p says:

    #erik ‘bukankadir’: sama2, btw klo bukankadir berarti doyok ya hihihi….

    #antio: coba dipelajari dulu tentang “regular expression” karena sepertinya butuh waktu untuk membuat tutorialnya, hiks…

  4. standard brain... says:

    thank for support..

    lanjutkan perjuangan……
    caiyooo…..
    nb:tutorial java mana

  5. fajar says:

    makasih banget pak atas pelajarannya
    saat ini saya sedang TA tentang aplikasi database yang bisa di akses menggunakan smart phone menggunkan asp dan c#.net, kalau ada kesulitan boleh ya tanya-tanya

  6. kekashi says:

    halo pak sigit…

    Saya trtarik n nyoba tutorial anda ” C# Programming: Accessing the Web Service from Smart Device Application ” ini….

    Tyuz saya panggil web servicenya n muncul error…
    errornya kyk gene :

    =========================================
    Web exception is thrown.(Exception message: “Could not establish connection to network.”)

    Stack Trace

    at System.Net.HttpWebRequest.finishGetResponse()
    at System.Net.HttpWebRequest.GetResponse()
    at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse()
    at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse()
    at System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke()
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke()
    at PocketPC.WebReference.Service.SayHello()
    at PocketPC.Form1.btnData_Click()
    at System.Windows.Forms.Control.OnClick()
    at System.Windows.Forms.Button.OnClick()
    at System.Windows.Forms.ButtonBase.WnProc()
    at System.Windows.Forms.Control._InternalWnProc()
    at Microsoft.AGL.Forms.EVL.EnterMainLoop()
    at System.Windows.Forms.Application.Run()
    at PocketPC.Program.Main()
    =======================================

    padahal localhost udah saya ganti dgn ip kompi ku….

    Bs request Pak sigit?… klo bs ditambahin sedikit tutorial tuk settingan smartphone/pocket pc di VS Studio 2005 agar bs access web service…… Trims Buanget….

  7. kekashi says:

    Bs request Pak sigit?… klo bs ditambahin sedikit tutorial dunk tuk settingan smartphone/pocket pc di VS Studio 2005 agar bs access web service…… Trims Buanget….

  8. y_sigit_p says:

    #kekashi:
    sudah install Microsoft Loopback Adapter belum biar komputernya bisa dikasih alamat IP?
    kalau sudah, cek apakah Microsoft ActiveSync-nya juga sudah terinstall…

  9. nendro says:

    Mas Sigit, perkenalkan nama saya nendro.
    Saya asli Jogja, sekarang kerja di Jakarta, di sebuah penerbitan majalah.

    Saya mau nanya nih?

    Apakah webnya jenengan ini memakai sarana wordprees.com?

    Kalau pakai wordprees, bagaimana caranya ngganti domainnya?

  10. y_sigit_p says:

    #nendro:
    website saya engine-nya menggunakan WordPress tetapi untuk domainnya bukan di wordpress.com melainkan di server kampus…

    btw, salam kenal juga

  11. anton-7 says:

    Pax Christi,
    wah, bagus Blognya …. 🙂
    intro: nama saya Anton, angkatan 7 VL

    Mas Sigit, dengan segala rendah hati mohon keterlibatannya dalam mempersiapkan reuni akbar tahun depan. Saya pikir keterlibatan Mas sigit pasti akan sangat berarti … mohon ikut dalam JUMATAN, conferensi YM setiap Jumat jam jam 9 malem … add saya ya mas: adhi_praja@yahoo.com
    atau kalalu ada waktu sms/call nomor saya: 08179423903
    Terima kasih Mas Sigit! GBU!

  12. uchiha hero says:

    mas saya mao nanya nich gimana y buat game di microsoft visual c#,, tolong bantuin y,, kirim ke email saya…
    dolphinlove@rocketmail.com
    thx

  13. uchiha hero says:

    mas sigit tolong bantuannya ya…
    o y tolong juga ajari cara membuat emulator,, langkah-langkah untuk membuat emulator tu gimanan mas,, tolong banget ya bantuannya mas…. thx

  14. y_sigit_p says:

    @uchiha hero:
    hmmm… maksudnya emulator di sini apa ya?
    pada tutorial yang saya buat, emulatornya sudah bawaan dari IDE-nya (Visual Studio .NET 2003)…

    btw, untuk buat game dari C#, Anda bisa pakai Microsoft XNA Studio… disana sudah ada template dan contohnya…

  15. farika says:

    pak klo akses web service .net 2005 dengan java application gmn caranya pak??
    mohon bantuannya,,trims,,

  16. y_sigit_p says:

    @farika:
    kalau pakai NetBeans, klik kanan di nama Project, kemudian pilih New – Web Service Client… kemudian isikan alamat lokasi dari Web Service .NET yang sudah di buat (atau alamat lokasi WSDL)… jika sudah maka tinggal dipakai…
    btw, beberapa tipe data .NET bm tentu support di Java…

  17. Fajar says:

    Mas kasusku sama dgn kekashi…erornya spt itu..trus aku udah coba pake activesync dan udah ku cradle errornya jd berubah unable connect to remote server…gtu.mas…gimana nih???

  18. matahari says:

    good.. ijin copas yah pak buat tugas besar xml saya…

Leave a Reply

Your email address will not be published. Required fields are marked *

© 2021 Universitas Atma Jaya Yogyakarta
css.php