it-swarm.com.de

Unterschied zwischen WCF, Web API, WCF REST und Web Service?

Was ist der Unterschied zwischen WCF und Web-API und WCF REST und Web-Service? Ist die WCF wirklich so kompliziert, dass das Webapi verwendet werden soll? Ob WebApi die ganze Arbeit erledigen kann und keinen Vorteil daraus zieht Andere?

28
Aiyoub Amini

Das .NET-Framework verfügt über eine Reihe von Technologien, mit denen Sie HTTP-Dienste wie Web-Service, WCF und jetzt Web-API erstellen können. Es gibt viele Artikel im Internet, in denen beschrieben werden kann, wen Sie verwenden sollten.

Internetservice

  • Es basiert auf SOAP und gibt Daten in XML-Form zurück. 
  • 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 basiert auch auf SOAP und gibt Daten in XML-Form zurück. 
  • Es ist die Weiterentwicklung des Web-Service (ASMX) und unterstützt verschiedene Protokolle wie TCP, HTTP, HTTPS, Named Pipes, MSMQ. 
  • Das Hauptproblem bei WCF ist seine langwierige und umfangreiche Konfiguration. 
  • Es ist nicht Open Source, kann aber von jedem Client verwendet werden, der XML versteht. 
  • Es kann in der Anwendung oder unter IIS oder mithilfe des Fensterservice gehostet werden. 

WCF Rest

  • Um WCF als WCF-Rest-Dienst verwenden zu können, müssen Sie webHttpBindings aktivieren. 
  • Es werden HTTP-GET- und POST - Verben durch die Attribute [WebGet] bzw. [WebInvoke] unterstützt. 
  • Um andere HTTP-Verben zu aktivieren, müssen Sie eine Konfiguration in IIS vornehmen, um die Anforderung dieses bestimmten Verbs für .svc-Dateien anzunehmen 
  • Das Übergeben von Daten über Parameter mit einem WebGet muss konfiguriert werden. Das UriTemplate muss angegeben werden. 
  • Es unterstützt das XML-, JSON- und ATOM-Datenformat. 

Web-API

  • Dies ist der neue Rahmen für die einfache und einfache Erstellung von HTTP-Diensten.
  • Web-API ist Open Source, eine ideale Plattform für das Erstellen von REST-vollen Diensten über .NET Framework.
  • Im Gegensatz zum WCF Rest-Dienst wird die vollständige HTTP-Funktion verwendet (wie URIs, Request/Response-Header, Caching, Versionierung und verschiedene Inhaltsformate).
  • Es unterstützt auch die MVC-Funktionen wie Routing, Controller, Aktionsergebnisse, Filter, Modellbinder, IOC - Container oder Abhängigkeitseinspritzung, Unit-Tests, die es einfacher und robuster machen.
  • Es kann mit in der Anwendung oder auf IIS gehostet werden.
  • Es ist eine leichte Architektur und eignet sich für Geräte mit begrenzter Bandbreite wie Smartphones.
  • Antworten werden vom MediaTypeFormatter des Web API in JSON, XML oder in einem beliebigen Format formatiert, das Sie als MediaTypeFormatter hinzufügen möchten.

Für wen wählen Sie zwischen WCF oder WEB API

  • Wählen Sie WCF, wenn Sie einen Dienst erstellen möchten, der spezielle Szenarien wie Einwegnachrichten, Nachrichtenwarteschlangen, Duplexkommunikation usw. unterstützen soll.
  • Wählen Sie WCF, wenn Sie einen Dienst erstellen möchten, der schnelle Transportkanäle verwenden kann, z. B. TCP, Named Pipes oder sogar UDP (in WCF 4.5). Außerdem möchten Sie HTTP unterstützen, wenn alle anderen Transportkanäle nicht verfügbar sind.
  • Wählen Sie die Web-API, wenn Sie ressourcenorientierte Dienste über HTTP erstellen möchten, die alle HTTP-Funktionen (z. B. URIs, Request/Response-Header, Caching, Versionsverwaltung und verschiedene Inhaltsformate) verwenden können.
  • Wählen Sie die Web-API, wenn Sie Ihren Service für eine breite Palette von Kunden bereitstellen möchten, z. B. Browser, Handys, iPhone und Tablets.

Referenz: http://www.dotnettricks.com
Autor: Shailendra Chauhan

77
Aiyoub Amini

Das .NET-Framework verfügt über eine Reihe von Technologien, mit denen Sie HTTP-Dienste wie Web-Service, WCF und jetzt Web-API erstellen können. Es gibt viele Artikel im Internet, in denen beschrieben werden kann, wen Sie verwenden sollten. Heute haben Sie viele Möglichkeiten, HTTP-Services unter .NET Framework zu erstellen. Hier können Sie mehr lesen:

WCF vs ASP.NET-Web-API

WCF-Dienst vs ASP.NET-Web-API

0
Mohammad