2016-04-06 4 views
7

Ich bin seit langem gefragt.Wo genau müssen wir WEB-API verwenden und wo sollten wir WCF erholsame Dienste verwenden. Was auch immer wir in WEB API erreichen wollen, können wir in WCF Rest erreichen. Ich habe versucht, in Antworten zu graben, aber ich habe, dass wir zusätzliche Einstellung in WCF wie URI Vorlagen, Verträge, Endpunkte tun müssen. Aber es ist mehr auf Einstellungen, aber ich wollte den wahren Grund hinter WCF Restful Services kennen.Unterschied zwischen den WCF erholsamen Dienste und WEB-API

+0

Wenn Sie einen HTTP-Service bereitstellen möchten, verwenden Sie Web Api, andernfalls verwenden Sie WCF – Thomas

+0

Mögliches Duplikat von [WCF vs. ASP.NET Web API] (http://stackoverflow.com/questions/9348639/wcf-vs-asp-net -web-api) – Thomas

Antwort

18

Web Service

  • Es auf SOAP und gibt Daten im XML-Format basiert.
  • Es unterstützt nur das HTTP-Protokoll.
  • Es ist nicht Open Source, kann aber von jedem Client verwendet werden, der XML versteht.
  • Es kann nur auf IIS gehostet werden.


WCF

  • Es auch auf SOAP und gibt Daten im XML-Format basiert.
  • Es ist die Evolution von Web-Services (ASMX) und unterstützt verschiedene Protokolle wie TCP, HTTP, HTTPS, Named Pipes, MSMQ.
  • Das Hauptproblem mit WCF ist seine langwierige und umfangreiche Konfiguration.
  • Es ist nicht Open Source, kann aber von jedem Client verwendet werden, der XML versteht.
  • Es kann mit in der Anwendung oder auf IIS oder Windows-Dienst gehostet werden.


WCF REST

  • verwenden WCF als WCF REST-Service Sie webHttpBindings zu ermöglichen haben.
  • Es unterstützt HTTP GET und POST Verben von [WebGet] und [WebInvoke] Attribute.
  • Um andere HTTP-Verben zu aktivieren, müssen Sie einige Konfiguration in IIS vornehmen, um die Anforderung dieses bestimmten Verbs auf .svc-Dateien zu akzeptieren.
  • Das Übergeben von Daten über Parameter mit einem WebGet erfordert Konfiguration. Die UriTemplate muss angegeben werden.
  • Es unterstützt XML, JSON und ATOM Datenformat.


Web API

  • Dies ist der neue Rahmen für die HTTP-Dienste Aufbau der einfache und einfache Weise.
  • Die Web-API ist eine Open-Source-Plattform, die eine ideale Plattform für die Erstellung von RESTful-Diensten mit .NET Framework darstellt.
  • Im Gegensatz zu einem WCF-REST-Dienst verwendet es die vollständigen Funktionen von HTTP (wie URIs, Anforderungs-/Antwortheader, Caching, Versionierung, verschiedene Inhaltsformate).
  • Es unterstützt auch die MVC-Funktionen wie Routing, Controller, Aktionsergebnisse, Filter, Modellbinder, IOC Container oder Abhängigkeitsinjektion, Komponententests, die es einfacher und robuster macht.
  • Es kann in der Anwendung oder auf IIS gehostet werden.
  • Es ist eine leichte Architektur und gut für Geräte, die eine begrenzte Bandbreite wie Smartphones haben.
  • Die Antworten werden von der Web-API MediaTypeFormatter in JSON, XML oder einem anderen Format formatiert, das Sie als MediaTypeFormatter hinzufügen möchten.


Die Wahl zwischen WCF oder Web API

  • WCF wählen, wenn Sie einen Dienst erstellen möchten, die spezielle Szenarien wie eine Art und Weise Messaging unterstützen sollte, Nachrichtenwarteschlangen, Duplex-Kommunikation usw.
  • Wählen Sie WCF, wenn Sie einen Dienst erstellen möchten, der schnelle Transportkanäle verwenden kann, wenn verfügbar, z. B. TCP, Named Pipes oder sogar UDP (in WCF 4.5), und HTTP auch dann unterstützen soll, wenn alle anderen Transportkanäle vorhanden sind nicht verfügbar.
  • Wählen Sie die Web-API, wenn Sie ressourcenorientierte Dienste über HTTP erstellen möchten, die die vollständigen Funktionen von HTTP verwenden können (wie URIs, Anforderungs-/Antwortheader, Caching, Versionierung, verschiedene Inhaltsformate).
  • Wählen Sie die Web-API aus, wenn Sie Ihren Service einer breiten Palette von Clients zur Verfügung stellen möchten, einschließlich Browsern, Mobiltelefonen, iPhone und Tablets.

Weitere Einzelheiten finden Sie unter http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/.

+0

Noch bekam ich die Antwort nicht, wir können immer noch alle Dinge in WCF Rest erreichen, die wir in WEB API machen können. Warum dann Microsoft WEB API hat, was der Hauptnachteil von WCF ist Rest über WebApi Ausschließen aller Einstellungen auf WCF Teil – abhijit

+2

siehe abhijit, wenn Sie Ihre Funktionalität einer breiten Palette von Benutzern wie in dieser Trendwelt, wo Technologie über Nacht dann ändern möchten Natürlich ist WebApi die beste Option, die Sie mit seinem geringen Gewicht und anderen Funktionen haben. – Mohit

Verwandte Themen