Apa perbedaan antara referensi web dan referensi layanan di WCF? Mana yang lebih disukai di WCF?
Apa perbedaan antara referensi web dan referensi layanan di WCF? Mana yang lebih disukai di WCF?
Jawaban:
Jawaban tingkat rendah di sini adalah bahwa Referensi Web akan membuat kelas proxy klien yang memungkinkan kode Anda untuk berbicara dengan Layanan Web yang dijelaskan melalui WSDL dan berkomunikasi melalui SOAP atau HTTP GET (poster lain menunjukkan bahwa itu hanya ASMX, tetapi Referensi Web juga dapat berbicara dengan Layanan Web berbasis Java atau berbasis Python atau Ruby selama mereka semua berbicara WSDL dan sesuai dengan standar interoperabilitas WS-I).
Referensi Layanan akan membuat kelas proxy klien yang berkomunikasi dengan layanan berbasis WCF: terlepas dari apakah layanan WCF itu Layanan Web atau tidak.
Referensi Web memungkinkan Anda untuk berkomunikasi dengan layanan apa pun berdasarkan teknologi apa pun yang mengimplementasikan WS-I Basic Profile 1.1, dan mengekspos metadata yang relevan sebagai WSDL. Secara internal, ia menggunakan tumpukan komunikasi ASMX di sisi klien.
Referensi Layanan memungkinkan Anda untuk berkomunikasi dengan layanan apa pun berdasarkan teknologi apa pun yang mengimplementasikan salah satu dari banyak protokol yang didukung oleh WCF (termasuk tetapi tidak terbatas pada WS-I Basic Profile). Secara internal, ia menggunakan tumpukan komunikasi WCF di sisi klien.
Perhatikan bahwa kedua definisi ini cukup luas, dan keduanya termasuk layanan yang tidak ditulis dalam .NET.
Sangat mungkin (meskipun tidak disarankan) untuk menambahkan Referensi Web yang menunjuk ke layanan WCF, selama titik akhir WCF menggunakan basicHttpBinding
atau beberapa varian kustom yang kompatibel.
Dimungkinkan juga untuk menambahkan Referensi Layanan yang menunjuk ke layanan ASMX. Saat menulis kode baru, Anda harus selalu menggunakan Referensi Layanan hanya karena lebih fleksibel dan tahan masa depan.
Client
akhiran.
Referensi layanan adalah antarmuka yang lebih baru untuk menambahkan referensi ke semua jenis layanan WCF (mereka mungkin bukan layanan web) sedangkan referensi Web secara khusus berkaitan dengan referensi web ASMX.
Anda dapat mengakses referensi web melalui opsi lanjutan di tambah referensi layanan (jika saya ingat dengan benar).
Saya akan menggunakan referensi layanan karena seperti yang saya mengerti, ini adalah mekanisme yang lebih baru dari keduanya.
Referensi layanan berurusan dengan titik akhir dan binding, yang sepenuhnya dapat dikonfigurasi. Mereka membiarkan Anda mengarahkan proxy klien Anda ke WCF melalui protokol transport apa pun (HTTP, TCP, Memori Bersama, dll)
Mereka dirancang untuk bekerja dengan WCF.
Jika Anda menggunakan WebProxy, Anda cukup banyak mengikat diri untuk menggunakan WCF melalui HTTP
Hal lain yang perlu dipertimbangkan adalah bahwa UI baru untuk Antarmuka Layanan akan memberi Anda lebih banyak fleksibilitas tentang bagaimana Anda ingin membuat kelas proxy Anda. Sebagai contoh, ini akan memungkinkan Anda untuk memetakan kontrak data ke dll yang ada, jika mereka cocok (sebenarnya ini adalah perilaku default).