51 votes

Différence entre WCF, API Web, WCF REST et Service Web ?

Quelle est la différence entre WCF et Web API et WCF REST et Web Service ? Est-ce que WCF est vraiment si compliqué que le Webapi devrait être utilisé ? Si WebApi peut faire tout le travail et ne pas prendre l'avantage des autres ?

4 votes

Duplicata possible de WCF vs ASP.NET Web API

124voto

Aiyoub Amini Points 2106

Le cadre .Net dispose d'un certain nombre de technologies qui vous permettent de créer des services HTTP tels que Web Service, WCF et maintenant Web API. Il y a beaucoup d'articles sur Internet qui peuvent décrire à qui vous devez faire appel.

Service Web

  • Il est basé sur SOAP et renvoie les données sous forme XML.
  • Il ne supporte que le protocole HTTP.
  • Il n'est pas open source mais peut être consommé par tout client qui comprend le xml.
  • Il ne peut être hébergé que sur IIS.

WCF

  • Il est également basé sur SOAP et renvoie des données sous forme XML.
  • Il s'agit de l'évolution du service web (ASMX) et supporte divers protocoles tels que TCP, HTTP, HTTPS, Named Pipes, MSMQ.
  • Le principal problème avec WCF est sa configuration fastidieuse et étendue.
  • Il n'est pas open source mais peut être consommé par tout client qui comprend le xml.
  • Il peut être hébergé dans l'application ou sur IIS ou en utilisant un service de fenêtre.

Repos WCF

  • Pour utiliser WCF comme service WCF Rest, vous devez activer webHttpBindings.
  • Il prend en charge les verbes HTTP GET et POST par les attributs [WebGet] et [WebInvoke] respectivement.
  • Pour activer d'autres verbes HTTP, vous devez effectuer une certaine configuration dans IIS pour accepter les demandes de ce verbe particulier dans les fichiers .svc.
  • Le passage de données par des paramètres à l'aide d'un WebGet nécessite une configuration. L'UriTemplate doit être spécifié.
  • Il prend en charge les formats de données XML, JSON et ATOM.

API Web

  • Il s'agit d'un nouveau cadre pour la construction de services HTTP de manière simple et facile.
  • L'API Web est une source ouverte, une plateforme idéale pour créer des services REST sur le Framework .NET.
  • Contrairement au service WCF Rest, il utilise toutes les fonctionnalités du protocole HTTP (comme les URI, les en-têtes de demande/réponse, la mise en cache, la gestion des versions, les différents formats de contenu).
  • Il prend également en charge les fonctionnalités MVC telles que le routage, les contrôleurs, les résultats d'actions, les filtres, les liants de modèles, le conteneur IOC ou l'injection de dépendances, les tests unitaires qui le rendent plus simple et plus robuste.
  • Il peut être hébergé dans l'application ou sur IIS.
  • Il s'agit d'une architecture légère qui convient aux appareils dont la bande passante est limitée, comme les téléphones intelligents.
  • Les réponses sont formatées par le MediaTypeFormatter de l'API Web en JSON, XML ou tout autre format que vous souhaitez ajouter comme MediaTypeFormatter.

Pour qui choisir entre WCF ou WEB API

  • Choisissez WCF lorsque vous souhaitez créer un service qui doit prendre en charge des scénarios spéciaux tels que la messagerie à sens unique, les files d'attente de messages, la communication duplex, etc.
  • Choisissez WCF quand vous voulez créer un service qui peut utiliser des canaux de transport rapides quand ils sont disponibles, comme TCP, Named Pipes, ou peut-être même UDP (dans WCF 4.5), et vous voulez aussi supporter HTTP quand tous les autres canaux de transport ne sont pas disponibles.
  • Choisissez l'API Web lorsque vous souhaitez créer des services orientés ressources sur HTTP qui peuvent utiliser toutes les fonctionnalités de HTTP (comme les URI, les en-têtes de demande/réponse, la mise en cache, la gestion des versions, les différents formats de contenu).
  • Choisissez l'API Web lorsque vous souhaitez exposer votre service à un large éventail de clients, y compris les navigateurs, les mobiles, les iphones et les tablettes.

Référence : http://www.dotnettricks.com
Auteur : Shailendra Chauhan

1 votes

Bonne explication, merci

1 votes

Pouvez-vous nous en dire un peu plus sur l'hébergement dans l'application plutôt que sur IIS ? À un haut niveau, comment pouvons-nous y parvenir ?

0 votes

Excellent billet. Pour avoir une vue d'ensemble des solutions possibles, je suggérerais également au PO d'examiner ServiceStack par exemple, qui fournit certaines fonctionnalités de connectivité manquantes à la fois pour WebAPI et WCF.

1voto

Mohammad Points 1636

Le cadre .Net dispose d'un certain nombre de technologies qui vous permettent de créer des services HTTP tels que Web Service, WCF et maintenant Web API. Il y a beaucoup d'articles sur Internet qui décrivent à qui vous devez faire appel. De nos jours, vous avez beaucoup de choix pour construire des services HTTP sur le cadre .NET. Vous pouvez en savoir plus ici :

WCF vs ASP.NET Web API

Service WCF vs Api Web ASP.NET

2 votes

S'il vous plaît, ne répondez pas aux questions en double. Votez plutôt pour les fermer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X