Le framework .Net possède un certain nombre de technologies qui vous permettent de créer des services HTTP tels que Web Service, WCF et maintenant Web API. Il existe de nombreux articles sur Internet qui peuvent décrire à qui vous devriez utiliser.
Service Web
- Il est basé sur SOAP et renvoie les données sous forme XML.
- Il ne supporte que le protocole HTTP.
- Ce n'est pas une source ouverte, mais peut être utilisé par tout client qui comprend xml.
- Il ne peut être hébergé que sur IIS.
WCF
- Il est également basé sur SOAP et renvoie les données sous forme XML.
- C'est l'évolution du service Web (ASMX) et supporte divers protocoles tels que TCP, HTTP, HTTPS, Named Pipes, MSMQ.
- Le principal problème de WCF est sa configuration fastidieuse et étendue.
- Ce n'est pas une source ouverte, mais peut être utilisé par tout client qui comprend xml.
- Il peut être hébergé dans l’application ou sur IIS ou à l’aide du service de fenêtre.
WCF Reste
- Pour utiliser WCF en tant que service de repos WCF, vous devez activer webHttpBindings.
- Il supporte les verbes HTTP GET et POST par les attributs [WebGet] et [WebInvoke] respectivement.
- Pour activer d'autres verbes HTTP, vous devez effectuer une configuration dans IIS pour accepter la demande de ce verbe particulier sur les fichiers .svc.
- La transmission de données via des paramètres à l'aide d'un WebGet nécessite une configuration. UriTemplate doit être spécifié.
- Il supporte les formats de données XML, JSON et ATOM.
API Web
- Ceci est le nouveau cadre pour la construction de services HTTP avec un moyen simple et facile.
- L'API Web est une source ouverte, une plate-forme idéale pour la création de services REST-ful via le .NET Framework.
- Contrairement au service de repos WCF, il utilise la fonctionnalité complète de HTTP (comme les URI, les en-têtes de requête/réponse, la mise en cache, la gestion des versions, divers formats de contenu).
- Il prend également en charge les fonctionnalités MVC telles que le routage, les contrôleurs, les résultats d'action, le filtre, les classeurs de modèle, le conteneur IOC ou l'injection de dépendance, des tests unitaires qui le rendent plus simple et robuste.
- Il peut être hébergé dans l'application ou sur IIS.
- C'est une architecture légère et bon pour les appareils qui ont une bande passante limitée comme les téléphones intelligents.
- Les réponses sont formatées par MediaTypeFormatter de l’API Web en JSON, XML ou tout autre format que vous souhaitez ajouter en tant que MediaTypeFormatter.
À qui choisir entre WCF ou WEB API
- Choisissez WCF lorsque vous souhaitez créer un service prenant en charge des scénarios spéciaux tels que la messagerie unidirectionnelle, les files de messages, la communication en mode duplex, etc.
- Choisissez WCF lorsque vous souhaitez créer un service qui peut utiliser des canaux de transport rapides lorsqu'ils sont disponibles, tels que TCP, Named Pipes ou même UDP (dans WCF 4.5), et vous souhaitez également prendre en charge HTTP lorsque tous les autres canaux de transport sont indisponibles.
- Choisissez l'API Web lorsque vous souhaitez créer un service axé sur les ressources sur HTTP pouvant utiliser toutes les fonctionnalités de HTTP (telles que les URI, les en-têtes de requête/réponse, la mise en cache, la gestion des versions, divers formats de contenu).
- Choisissez l'API Web lorsque vous souhaitez exposer votre service à un large éventail de clients, notamment des navigateurs, des téléphones portables, un iPhone et des tablettes.
Référence: http://www.dotnettricks.com
Auteur: Shailendra Chauhan