WCF ve Web API'si arasındaki fark
WCF nedir?
WCF'nin açılımı Windows Yakın İletişim Foundation. Dağıtılmış ve birlikte çalışabilen Uygulamalar oluşturmak için kullanılır. WCF, hizmet odaklı uygulamalar geliştirmek için etkili bir platformdur. Geliştiricilerin, platformlar arasında entegre edilebilecek ve mevcut yatırımlarla birlikte çalışabilecek güvenli, güvenilir ve yüksek profilli geliştirme çözümleri oluşturmasına olanak tanır.
Web API'si nedir?
ASP.NET Web API, tarayıcılar ve mobil cihazlar için HTTP hizmetleri oluşturmanıza olanak tanıyan bir çerçevedir. Geliştirmek için ideal bir platformdur. RESTful uygulamalar ASP .NET Framework üzerinde.
ASP.NET Web API, web, windows, mobil cihazlar vb. gibi farklı platformlardaki farklı uygulamalardan erişilebilen HTTP tabanlı servisler oluşturmak için genişletilebilir bir çerçevedir.
ANAHTAR FARK
- WCF istek-cevap, tek yönlü veya çift yönlü sunarken Web API varsayılan olarak yalnızca istek-cevap sunar.
- WCF, SOAP tabanlı hizmetler geliştirmek için kullanılırken Web API, hem SOAP tabanlı hem de RESTful hizmetler için kullanılır.
- WCF, MVC özellikleri için herhangi bir destek sunmazken Web API, MVC özelliklerini destekler.
- WCF, HTTP, UDP ve özel aktarım protokolünü desteklerken Web API yalnızca HTTP protokolünü destekler.
- WCF, Metin, MTOM ve İkili Kodlama desteği sunarken Web API, UTF-8 kodlama formatını destekler.
- WCF mesaj kuyruklarını, mesaj güvenliğini, çift yönlü iletişimi ve işlemleri desteklerken Web API desteklemez.
- WCF'nin açılımı Windows Yakın İletişim Foundation API, Uygulama Programı Arayüzü anlamına gelir.
Neden WCF'yi kullanmalıyım?
WCF kullanmanın artıları/yararları şunlardır:
- WCF kullanmayı planlıyorsanız ideal bir seçenektir .NET Framework 3.5.
- WCF, HTTP, TCP, Adlandırılmış kanal gibi birden çok protokolü destekler.
- Transactions Messaging güvenliği ve Güvenilir Mesaj Güvenliği gibi standartlarla hizmet oluşturmak istiyorsanız WCF hizmeti kullanışlıdır.
- WCF ile İstek-Cevap, Tek Yönlü ve Çift Yönlü mesaj değişim modellerini kullanabilirsiniz.
Neden Web API'si kullanıldı?
Web API'sini kullanmanın artıları/yararları şunlardır:
- Web API, HTTP fiilleriyle (GET, PUT, POST ve DELETE) çalıştığından, kurala dayalı CRUD Eylemleri için destek sağlar.
- REST-ful bir şekilde tanımlanması, ortaya çıkarılması ve tüketilmesi kolaydır.
- ASP.Net Web API, verilerinizi ve hizmetlerinizi çeşitli cihazlara sergilemenize olanak tanır.
- Web API açık kaynak olduğundan .NET platformu üzerinden RESTful hizmetler oluşturmak için ideal bir seçenektir.
- Web hizmetlerine erişmek için diğer geliştiriciler tarafından paylaşılabilen ve kullanılabilen bir Web Hizmetinin ölçeklenebilir, ayrıştırılmış şekilde geliştirilmesine olanak tanır.
- Basit, SOAP tabanlı olmayan HTTP Hizmetleri oluşturmak da faydalıdır.
WCF'nin Özellikleri
- Son derece yapılandırılabilir aktarımlar
- Serileştirme için daha iyi seçenekler
- IIS ile iyi entegre edilmiştir
- Kendi kendine barındırma için kolay
- Çok zengin meta veriler
- Yayın için karmaşık model
- Zengin veri sözleşmeleri
Web API'sinin Özellikleri
- HTTP'ye sıkı bir şekilde bağlı
- Test edilmesi kolay
- İçerik müzakeresi için destek sunar
- Açık uçlu biçimlendirmeye izin verir
- Bir platforma güven yok
- Sağlam kaynak yönelimi
- Yeni ortaya çıkan hipermedya desteğiyle Seviye 2 deneyimi
WCF ve Web Hizmeti Karşılaştırması
Parametre | WCF | Web API'sı |
---|---|---|
Mesaj Değişim Modeli | Cevap talebi, tek yönlü veya dubleks. | Varsayılan olarak yalnızca istek-yanıt. Ancak web yuva entegrasyonuyla ek mesaj deseni desteklenebilir. |
Hosting | IIS barındırma, Kendi kendine barındırma ve çalışma etkinleştirme hizmetleri. | Kendi kendine barındırma ve IIS barındırma. |
Açık Kaynak | Açık kaynaklı bir yazılım değildir. | .Net framework ile birlikte gönderilir. Ayrıca bağımsız olarak indirilebilir. |
MVC özellikleri desteği | WCF, denetleyiciler, yönlendirme, filtre, açık artırma sonuçları vb. gibi MVC özellikleri için herhangi bir destek sağlamaz. | ASP.NET Web API, yönlendirme, denetleyiciler, sonuçlar, filtre, eylem vb. gibi MVC özelliklerini destekler. |
Kodlama desteği | Metin, MTOM ve İkili. | UTF-8 kodlama formatı için varsayılan destek. |
Için destek | HTTP, UDP ve özel aktarım protokolü desteği. | Yalnızca HTTP protokolünü destekler |
Modelin kullanımı | Kullanıcıya atfedilen tabanlı programlama modeli. | HTTP fiillerini yöntemlerle eşler |
yapılandırma | Bir HttpConfiguration sınıfını yapılandırmak için web.config ve öznitelikleri kullanır, ancak web.config Hizmetinde kullanılmaz. | Web API, web.config hizmeti kullanılarak yapılandırılabilir. |
RESTful hizmetler | RESTFUL hizmeti için destekler sunar ancak sınırlamalarla birlikte. | RESTFUL hizmetleri oluşturmak için idealdir. |
WCF ve Web API karşılaştırmasını belirleyen faktör
WCF veya Web API kullanılıp kullanılmayacağını belirlemeye yardımcı olacak hızlı bir kontrol listesi aşağıdadır
senaryo | WCF4.5 | ASP.NET Web API'si |
---|---|---|
Mesaj kuyrukları, uçtan uca mesaj güvenliği, çift yönlü iletişim, dağıtılmış işlemler vb. gibi senaryolar için destek gerektirir. | Seç | Seçmeyin |
Zaten çalışan WCF hizmetleriniz varsa ve ek olarak HTTP desteği eklemek istiyorsanız. | Seç | Seçmeyin |
Hem SOAP hem de RESTful uç noktalarına destek sağlayan tek kod tabanı. | Seç | Seçmeyin |
HTTP üzerinden kaynak odaklı bir hizmet oluşturmak istiyor. | Seçmeyin | Seç |
Projeniz bir MVC uygulamasıdır ve HTTP üzerinden bazı işlevler istemektedir. | Seçmeyin | Seç |
Yalnızca bir HTTP/RESTful hizmeti oluşturmak istiyorsunuz | Seçmeyin | Seç |