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
4 votes
Duplicata possible de WCF vs ASP.NET Web API