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.
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.
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”.
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.
Download File: Smart Device Application
to be continued….
bagus…bagus…hidup[ informatika…dan hidup untuk IT…
terima kasih bapak sigit…
salam,
erik ‘bukankadir’ ala senat…
Thanks atas ilmunya, bisa tidak posting tentang cara membuat semantic web dari c# and asp.net.
thanks
Antio
#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…
thank for support..
lanjutkan perjuangan……
caiyooo…..
nb:tutorial java mana
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
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….
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….
#kekashi:
sudah install Microsoft Loopback Adapter belum biar komputernya bisa dikasih alamat IP?
kalau sudah, cek apakah Microsoft ActiveSync-nya juga sudah terinstall…
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?
#nendro:
website saya engine-nya menggunakan WordPress tetapi untuk domainnya bukan di wordpress.com melainkan di server kampus…
btw, salam kenal juga
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!
mas saya mao nanya nich gimana y buat game di microsoft visual c#,, tolong bantuin y,, kirim ke email saya…
dolphinlove@rocketmail.com
thx
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
@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…
pak klo akses web service .net 2005 dengan java application gmn caranya pak??
mohon bantuannya,,trims,,
@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…
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???
good.. ijin copas yah pak buat tugas besar xml saya…