2016-04-06 18 views
7

Uzun zamandır sorgu yapıyorum. WEB API'sini tam olarak kullanmamız gerekiyor ve nerede WCF dinlendirici hizmetlerini kullanmalıyız. WCF Rest'te elde edebileceğimiz WEB API'sinde elde etmek istediğimiz şey. Cevapları kazmaya çalıştım ama URI şablonları, Sözleşmeler, uç noktalar gibi wcf'de ekstra ayar yapmamız gerekiyor. Ama ayarları daha fazla, ama ben WCF Restful Services kullanmanın arkasındaki gerçek nedeni bilmek istedim.Wcf restful services ve WEB API arasındaki fark

+0

Bir HTTP hizmetini Web API'sini kullanmak istiyorsanız, WCF'yi kullanın – Thomas

+0

[WCF ve ASP.NET Web API'sı] 'nın olası kopyası (http://stackoverflow.com/questions/9348639/wcf-vs-asp-net -web-api) – Thomas

cevap

18

Bu XML formatında SABUN ve iadeler verilere dayanmaktadır

  • Web Servis.
  • Sadece HTTP protokolünü destekler.
  • Bu açık kaynak değil, XML'i anlayan herhangi bir istemci tarafından tüketilebilir.
  • Yalnızca IIS'de barındırılabilir.


Ayrıca XML formatında SABUN ve iadeler verilere dayanmaktadır

  • WCF.
  • Web hizmetleri (ASMX) evrimi ve TCP, HTTP, HTTPS, Adlandırılmış Borular, MSMQ gibi çeşitli protokolleri destekler.
  • WCF ile ilgili temel sorun, sıkıcı ve kapsamlı yapılandırmasıdır.
  • Bu açık kaynak değil, XML'i anlayan herhangi bir istemci tarafından tüketilebilir.
  • Uygulamada veya IIS'de veya pencere hizmeti kullanılarak barındırılabilir. WCF REST


    Eğer webHttpBindings etkinleştirmek zorunda bir WCF REST hizmete olarak WCF kullanın.

  • HTTP GET ve POST fiillerini sırasıyla [WebGet] ve [WebInvoke] özniteliklerini destekler.
  • Diğer HTTP fiillerini etkinleştirmek için, .svc dosyalarında söz konusu fiilin isteğini kabul etmek için IIS'de bir yapılandırma yapmanız gerekir.
  • Verilerin bir WebGet yapılandırması kullanılarak geçirilmesi. UriTemplate belirtilmelidir.
  • XML, JSON ve ATOM veri formatını destekler.


  • Bu kolay ve basit bir yol HTTP servisleri oluşturmak için yeni bir çerçevedir Web API.
  • Web API açık kaynak, .NET Framework kullanarak RESTful hizmetler oluşturmak için ideal bir platformdur.
  • Bir WCF REST hizmetinin aksine, HTTP'nin tüm özelliklerini (URI'ler, istek/yanıt başlıkları, önbelleğe alma, sürüm oluşturma, çeşitli içerik biçimleri gibi) kullanır.
  • Ayrıca yönlendirme, denetleyiciler, eylem sonuçları, filtre, model bağlayıcılar, IOC konteyner veya bağımlılık enjeksiyonu, daha basit ve sağlam kılan birim testi gibi MVC özelliklerini destekler.
  • Uygulama içinde veya IIS'de barındırılabilir.
  • Akıllı telefonlar gibi sınırlı bant genişliğine sahip cihazlar için iyi bir hafif mimaridir.
  • Yanıtlar, Web API’nın MediaTypeFormatter tarafından JSON, XML biçiminde veya MediaTypeFormatter olarak eklemek istediğiniz herhangi bir biçimde biçimlendirilmiştir. Eğer özel senaryoları desteklemelidir bir hizmet oluşturmak istediğinizde WCF veya Web API arasında seçim yapma


  • WCF seç vb tek yönlü mesajlaşma, ileti sırası dubleks haberleşme
  • olarak
  • TCP, Adlandırılmış Kanallar, hatta UDP (WCF 4.5'te) gibi hızlı aktarım kanallarını kullanabilen bir hizmet oluşturmak istediğinizde ve diğer tüm aktarım kanalları olduğunda HTTP'yi desteklemek istiyorsanız, WCF'yi seçin. kullanım dışı.
  • HTTP'nin tüm özelliklerini (URI'ler, istek/yanıt başlıkları, önbelleğe alma, sürüm oluşturma, çeşitli içerik biçimleri gibi) kullanabilen, HTTP'ye kaynak odaklı bir hizmet oluşturmak istediğinizde Web API'sini seçin.
  • Hizmetinizi, tarayıcılar, cep telefonları, iPhone ve tabletler de dahil olmak üzere çok çeşitli istemcilere göstermek istediğinizde Web API'sini seçin.

Ayrıntılar için http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/'a bakabilirsiniz.

+0

Yine de, WEB API'sinde yapabileceğimiz WCF Rest'teki her şeyi başarabileceğimiz cevabı almadım. Neden microsoft WEB API'sine sahiptir, WCF Rest'in WebApi üzerinden en büyük dezavantajı WCF bölüm – abhijit

+2

'daki tüm ayarlar hariç tutulduğunda, işlevsellikinizi gece boyunca teknolojinin değiştiği bu trend dünyasında olduğu gibi geniş bir kullanıcı yelpazesine göstermek istiyorsanız ofcourse webApi, hafif ve diğer işlevler ile sahip olduğunuz en iyi seçenektir. – Mohit

İlgili konular