Mengapa saya menjawab:
Saya menghabiskan banyak waktu untuk memahami perbedaan antara kedua teknologi ini. Saya akan meletakkan semua poin di sini yang saya pikir "Jika saya memiliki poin-poin ini pada saat saya bertanya-tanya mencari jawaban ini, maka saya telah memutuskan sebelumnya dalam memilih teknologi yang saya butuhkan."
Sumber informasi:
Microsoft® Visual Studio® 2015 Unleashed
ISBN-13: 978-0-672-33736-9 ISBN-10: 0-672-33736-3
Mengapa ASP.NET Web API dan WCF:
Sebelum membandingkan teknologi ASP.NET Web API dan WCF, penting untuk dipahami bahwa sebenarnya ada dua gaya / standar untuk membuat layanan web: REST (Representational State Transfer) dan SOAP / WSDL. SOAP / WSDL adalah standar asli tempat layanan web dibangun. Namun, sulit untuk menggunakan dan memiliki format pesan besar (seperti XML) yang menurunkan kinerja. Layanan berbasis REST dengan cepat menjadi alternatif. Mereka lebih mudah untuk menulis karena mereka memanfaatkan konstruksi dasar HTTP (GET, POST, PUT, DELETE) dan biasanya menggunakan format pesan yang lebih kecil (seperti JSON). Akibatnya, layanan HTTP berbasis REST sekarang menjadi standar untuk layanan penulisan yang secara ketat menargetkan Web.
Mari kita tentukan tujuan ASP.NET Web API
ASP.NET Web API adalah teknologi Microsoft untuk mengembangkan layanan web HTTP berbasis REST. (Sudah lama menggantikan Microsoft ASMX, yang didasarkan pada SOAP / WSDL.) Web API membuatnya mudah untuk menulis layanan yang kuat berdasarkan protokol HTTP yang dipahami oleh semua browser dan perangkat asli. Ini memungkinkan Anda untuk membuat layanan untuk mendukung aplikasi Anda dan memanggil mereka dari aplikasi web lain, tablet, ponsel, PC, dan konsol game. Mayoritas aplikasi yang ditulis hari ini untuk meningkatkan koneksi Web yang pernah ada menggunakan layanan HTTP dalam beberapa cara.
Sekarang mari kita mendefinisikan tujuan WCF:
Berkomunikasi di Internet tidak selalu merupakan cara yang paling efisien. Misalnya, jika klien dan layanan ada pada teknologi yang sama (atau bahkan mesin yang sama), mereka sering dapat menegosiasikan cara yang lebih efisien untuk berkomunikasi (seperti TCP / IP). Pengembang layanan menemukan diri mereka membuat pilihan yang sama yang mereka coba hindari. Mereka sekarang harus memilih antara menciptakan layanan internal yang efisien dan dapat memiliki akses luas yang ditemukan melalui Internet. Dan, jika mereka harus mendukung keduanya, mereka mungkin harus membuat beberapa versi layanan mereka atau setidaknya proxy terpisah untuk mengakses layanan mereka. Ini adalah masalah yang diselesaikan Microsoft dengan WCF .
Dengan WCF, Anda dapat membuat layanan Anda tanpa memperhatikan batasan. Anda kemudian dapat membiarkan WCF khawatir menjalankan layanan Anda dengan cara yang paling efisien, tergantung pada klien panggilan. Untuk mengelola tugas ini, WCF menggunakan konsep titik akhir. Layanan Anda mungkin memiliki beberapa titik akhir (dikonfigurasi pada waktu desain atau setelah penerapan). Setiap titik akhir menunjukkan bagaimana layanan dapat mendukung klien panggilan: melalui Web, melalui remoting, melalui Antrian Pesan Microsoft (MSMQ), dan banyak lagi. WCF memungkinkan Anda untuk fokus menciptakan fungsi layanan Anda. Ini khawatir tentang cara paling efisien berbicara dengan klien panggilan. Dengan cara ini, satu layanan WCF dapat secara efisien mendukung berbagai jenis klien.
Contoh WCF:
Perhatikan contohnya:
Data pelanggan dibagi di antara aplikasi. Setiap aplikasi dapat ditulis pada platform yang berbeda, dan mungkin ada di lokasi yang berbeda. Anda dapat mengekstraksi antarmuka pelanggan ke layanan WCF yang menyediakan akses umum ke data pelanggan bersama. Ini memusatkan data, mengurangi duplikasi, menghilangkan sinkronisasi, dan menyederhanakan manajemen. Selain itu, dengan menggunakan WCF, Anda dapat mengonfigurasi titik akhir layanan agar berfungsi dengan cara yang masuk akal bagi klien pemanggil. Gambar menunjukkan contoh dari sebelumnya dengan akses terpusat data pelanggan di layanan WCF.
Kesimpulan:
i) Kapan memilih API Web:
Tidak dapat disangkal bahwa layanan HTTP berbasis REST seperti yang dibuat menggunakan ASP.NET Web API telah menjadi standar untuk membangun layanan web. Layanan ini menawarkan pendekatan yang mudah dan langsung untuk pengembang web membangun layanan. Pengembang web memahami HTTP GET dan POST dan dengan demikian beradaptasi dengan baik untuk jenis layanan ini. Oleh karena itu, jika Anda menulis layanan yang ditargetkan untuk HTTP , ASP.NET Web API adalah pilihan logis.
ii) Kapan harus memilih WCF:
Teknologi WCF berguna ketika Anda perlu mendukung beberapa titik akhir layanan berdasarkan protokol dan format pesan yang berbeda. Produk-produk seperti Microsoft BizTalk memanfaatkan WCF untuk menciptakan layanan yang kuat yang dapat digunakan melalui Web juga melalui konfigurasi mesin-ke-mesin yang berbeda. Namun, jika Anda perlu menulis aplikasi yang berkomunikasi melalui TCP / IP saat terhubung ke lokal jaringan dan berfungsi melalui HTTP saat berada di luar jaringan, WCF adalah jawaban Anda .
Diperingatkan:
Pengembang web sering melihat WCF sebagai lebih sulit dan kompleks untuk dikembangkan. Oleh karena itu, jika Anda tidak melihat kebutuhan akan layanan multiprotocol, Anda kemungkinan akan tetap menggunakan ASP.NET Web API.