Di dunia yang serba terhubung seperti saat ini, sering sekali terdapat skenario dimana suatu aplikasi membutuhkan suatu data dari internet. Lebih umum lagi, web service sudah menjadi suatu standar ketika kita ingin menggunakan suatu fungsi yang terdapat pada web. Pada bagian ini kita akan melihat bagaimana cara mengonsumsi web service dalam aplikasi Windows 8-style UI. Web service yang dapat dikonsumsi oleh Windows RT dapat berupa SOAP (baik yang dibangun dengan WCF atau teknologi lain), plain HTTP atau pun REST. Untuk dapat mengakses web service ini dapat dilakukan secara langsung atau pun melalui kelas proxy yang dibangkitkan secara otomatis dari metadata yang melekat pada suatu layanan. Sebuah layanan merupakan service yang Anda buat sendiri dan ditempatkan pada server Anda, atau sebuah layanan pihak ketika, misalnya sebut saja Facebook,Twitter dan layanan lainnya. Windows RT dapat bekerja dengan berbagai data format seperti XML,Json mapun RSS.
Mengakses suatu layanan melalui suatu proxy class yang dibangkitkan dari metadata dapat meningkatkan produktivitas dalam pengembangan aplikasi. Pada bagian ini akan diberikan contoh pengaksesan layanan web yang juga dibangun dengan teknologi Microsoft menggunakan proxy class yang dibangkitkan secara otomatis.
Membuat Web Service
1. Jalankan Visual Studio Anda yang mendukung pembuatan project Web Application buat sebuah project Web ASP.NET Web Application,beri nama Webservice.
2. Pada jendela Solution Explorer tambahkan sebuah file web service dengan cara klik kanan pada Project | Add | Add New Item . Pilih Web Service dan klik Add
3. Kita hanya akan menggunakan fungsi yang secara otomatis dibangkitkan, yaitu web service method yang akan mengembalikan suatu string “Hello World”. Pembahasan mengenai web service tidak akan dijelaskan lebih jauh disini karena fokus kita adalah di sisi akses Windows 8-style UI.
4. Jalankan web service tersebut dengan menekan F5 atau mengklik tombol play.
5. Sekarang web service sederhana sudah siap dikonsumsi. Jangan non-aktifkan browser Anda .
Menambahkan Referensi Web Service
Untuk melihat bagaimana tampilan implementasi data binding dalam aplikasi, buatlah sebuah proyek baru, aplikasi Windows Store dengan template Blank App,beri nama Program_WebService.
1. Pada jendela Solution Explorer, klik kanan References dan pilih Add Service Reference.
2. Copy dan paste alamat akses web service yang sudah dibuat sebelumnya. Kita dapat mengambilnya dari kotak alamat yang terbuka pada browser lalu pilih Go.
3. Jika web service ditemukan dan tersedia maka daftar service berikut operasi yang dapat digunakan akan ditampilkan. Berikan nama namespace yang sesuai , pada contoh ini akan diberi nama ServiceReference1 dan klik OK
4. Jika penambahah berhasil maka pada jendela Solution Explorer dapat kita amati suatu file config dan file Reference terhadap web service yang sudah dibuat.
Mengonsumsi Web Service
Untuk mengonsumsi web service kita akan membuat satu halaman baru.
1. Klik kanan pada project, Add New Item dan pilih Basic Page , beri nama WebService1.xaml dan klik OK.
2. Tambahkan sebuah Button dan TextBlock tepat diatas <VisualStateManager.VisualStateGroups>.
<StackPanel Grid.Row=”1″ Margin=”120,30,0,0″ >
<Button>Call</Button>
<TextBlock x:Name=”outputText” Style=”{StaticResource HeaderTextStyle}”/>
</StackPanel> |
3. Klik ganda pada Button untuk menambahkan event handler. Tambahkan blok kode berikut ini.
private void Button_Click_1(object sender, RoutedEventArgs e)
{
GetHelloWorldAsync();
}
async void GetHelloWorldAsync()
{
ServiceReference1.WebService1SoapClient client = new ServiceReference1.WebService1SoapClient();
ServiceReference1.HelloWorldResponse result = await client.HelloWorldAsync();
outputText.Text = result.Body.HelloWorldResult;
} |
Pada fungsi GetHelloWorldAsync, kita menginisiasi proxy layanan dan memanggil fungsi yang tersedia, yaitu HelloWorldAsync.
4. Buka App.xaml.cs dan temukan fungsi OnLaunched . Modifikasi fungsi tersebut sehingga aplikasi akan membuka WebService1.xaml ketika aplikasi dijalankan.
if (!rootFrame.Navigate(typeof(WebService1), args.Arguments))
{
throw new Exception(“Failed to create initial page”);
} |
5. Tekan F5 dan lihat hasilnya.