Apa perbedaan di antara keduanya?
Kapan saya akan memilih salah satu dari yang lain?
Apa perbedaan di antara keduanya?
Kapan saya akan memilih salah satu dari yang lain?
Jawaban:
Jawaban ini didasarkan pada artikel yang sudah tidak ada lagi:
Ringkasan artikel:
"Pada dasarnya, WCF adalah lapisan layanan yang memungkinkan Anda membangun aplikasi yang dapat berkomunikasi menggunakan berbagai mekanisme komunikasi. Dengannya, Anda dapat berkomunikasi menggunakan Peer to Peer, Named Pipes, Layanan Web, dan sebagainya.
Anda tidak dapat membandingkannya karena WCF adalah kerangka kerja untuk membangun aplikasi yang dapat dioperasikan. Jika Anda suka, Anda dapat menganggapnya sebagai pengaktif SOA. Apa artinya ini?
Nah, WCF sesuai dengan sesuatu yang dikenal sebagai ABC, di mana A adalah alamat layanan yang ingin Anda hubungi, B adalah singkatan dari binding dan C adalah singkatan dari kontrak. Ini penting karena dimungkinkan untuk mengubah pengikatan tanpa perlu mengubah kode. Kontrak tersebut jauh lebih kuat karena memaksa pemisahan kontrak dari pelaksanaan. Artinya kontrak didefinisikan dalam sebuah antarmuka, dan terdapat implementasi konkret yang terikat oleh konsumen dengan menggunakan gagasan kontrak yang sama. Model data diabstraksi. "
... nanti ...
"harus menggunakan WCF saat kita perlu berkomunikasi dengan teknologi komunikasi lain (misalnya Peer to Peer, Named Pipes) daripada Layanan Web"
Dari Apa Perbedaan antara WCF dan Layanan Web?
WCF adalah pengganti semua teknologi layanan web sebelumnya dari Microsoft. Ia juga melakukan lebih dari apa yang secara tradisional dianggap sebagai "layanan web".
"Layanan web" WCF adalah bagian dari spektrum komunikasi jarak jauh yang jauh lebih luas yang diaktifkan melalui WCF. Anda akan mendapatkan tingkat fleksibilitas dan portabilitas yang jauh lebih tinggi dalam melakukan berbagai hal di WCF daripada melalui ASMX tradisional karena WCF dirancang, dari bawah ke atas, untuk meringkas semua infrastruktur pemrograman terdistribusi berbeda yang ditawarkan oleh Microsoft. Titik akhir di WCF dapat dikomunikasikan dengan mudah melalui SOAP / XML seperti halnya melalui TCP / biner dan untuk mengubah media ini hanyalah mod file konfigurasi. Secara teori, ini mengurangi jumlah kode baru yang diperlukan saat memindahkan atau mengubah kebutuhan bisnis, target, dll.
ASMX lebih tua dari WCF, dan apa pun yang dapat dilakukan ASMX dapat dilakukan oleh WCF (dan lainnya). Pada dasarnya Anda dapat melihat WCF sebagai mencoba secara logis mengelompokkan semua cara berbeda untuk membuat dua aplikasi berkomunikasi di dunia Microsoft; ASMX hanyalah salah satu dari banyak cara ini dan sekarang dikelompokkan di bawah payung kemampuan WCF.
Layanan Web hanya dapat diakses melalui HTTP & bekerja di lingkungan tanpa negara, di mana WCF fleksibel karena layanannya dapat dihosting di berbagai jenis aplikasi. Skenario umum untuk menghosting layanan WCF adalah IIS, WAS, Self-hosting, Managed Windows Service.
Perbedaan utama adalah Penggunaan Layanan Web
XmlSerializer
. Tetapi Penggunaan WCFDataContractSerializer
yang lebih baik dalam kinerja dibandingkan denganXmlSerializer
.
Layanan Web didasarkan pada SOAP dan mengembalikan data dalam bentuk XML. Ini hanya mendukung protokol HTTP. Ini bukan open source tetapi dapat dikonsumsi oleh klien mana pun yang memahami xml. Ini hanya dapat dihosting di IIS.
WCF juga didasarkan pada SOAP dan mengembalikan data dalam bentuk XML. Ini adalah evolusi dari layanan web (ASMX) dan mendukung berbagai protokol seperti TCP, HTTP, HTTPS, Named Pipes, MSMQ. Masalah utama dengan WCF adalah, konfigurasinya yang membosankan dan ekstensif. Ini bukan open source tetapi dapat dikonsumsi oleh klien mana pun yang memahami xml. Ini dapat di-host dengan dalam aplikasi atau di IIS atau menggunakan layanan jendela.
Perbedaan dasar dan utama adalah, layanan web ASP.NET dirancang untuk bertukar pesan SOAP melalui HTTP hanya sementara Layanan WCF dapat bertukar pesan menggunakan format apa pun (SOAP adalah default) melalui protokol transportasi apa pun yaitu HTTP, TCP, MSMQ atau NamedPipes dll.
Apa perbedaan antara layanan web dan WCF?
Layanan web hanya menggunakan protokol HTTP saat mentransfer data dari satu aplikasi ke aplikasi lain.
Tetapi WCF mendukung lebih banyak protokol untuk mengangkut pesan daripada layanan Web ASP.NET. WCF mendukung pengiriman pesan dengan menggunakan HTTP, serta Transmission Control Protocol (TCP), pipa bernama, dan Microsoft Message Queuing (MSMQ).
Untuk mengembangkan layanan di Web Service, kami akan menulis kode berikut
[WebService]
public class Service : System.Web.Services.WebService
{
[WebMethod]
public string Test(string strMsg)
{
return strMsg;
}
}
Untuk mengembangkan layanan di WCF, kami akan menulis kode berikut
[ServiceContract]
public interface ITest
{
[OperationContract]
string ShowMessage(string strMsg);
}
public class Service : ITest
{
public string ShowMessage(string strMsg)
{
return strMsg;
}
}
Layanan Web secara arsitektural tidak lebih kuat. Namun WCF secara arsitektural lebih kuat dan mempromosikan praktik terbaik.
Layanan Web menggunakan XmlSerializer tetapi WCF menggunakan DataContractSerializer. Mana yang lebih baik dalam kinerja dibandingkan dengan XmlSerializer?
Untuk panggilan layanan-ke-layanan internal (di belakang firewall) kami menggunakan net: tcp binding, yang jauh lebih cepat daripada SOAP.
WCF 25% -50% lebih cepat dari ASP.NET Web Services, dan kira-kira 25% lebih cepat dari .NET Remoting.
Kapan saya akan memilih salah satu dari yang lain?
WCF digunakan untuk berkomunikasi antara aplikasi lain yang telah dikembangkan di platform lain dan menggunakan Teknologi lain.
Misalnya, jika saya harus mentransfer data dari platform .net ke aplikasi lain yang berjalan di OS lain (seperti Unix atau Linux) dan mereka menggunakan protokol transfer lain (seperti WAS, atau TCP) maka hanya mungkin untuk mentransfer data menggunakan WCF.
Disini tidak ada batasan platform, protokol transfer aplikasi sambil mentransfer data antara satu aplikasi ke aplikasi lain.
Keamanan sangat tinggi dibandingkan dengan layanan web
Perbedaan utamanya adalah waktu habis, Layanan WCF telah habis waktu saat tidak ada tanggapan, tetapi layanan web tidak memiliki properti ini.