Pourquoi je réponds:
J'ai pris énormément de temps pour comprendre la différence entre ces deux technologies. Je vais mettre tous ces points ici que je pense "Si j'avais ces points au moment où je me demandais à la recherche de cette réponse, alors j'ai décidé très tôt dans le choix de ma technologie requise."
Source d'information:
Microsoft® Visual Studio® 2015 déchaîné
ISBN-13: 978-0-672-33736-9 ISBN-10: 0-672-33736-3
Pourquoi l'API Web ASP.NET et WCF:
Avant de comparer les technologies de l'API Web ASP.NET et de WCF, il est important de comprendre qu'il existe en fait deux styles / normes pour la création de services Web: REST (Representational State Transfer) et SOAP / WSDL. SOAP / WSDL était la norme d'origine sur laquelle les services Web étaient construits. Cependant, il était difficile à utiliser et avait des formats de message volumineux (comme XML) qui dégradaient les performances. Les services basés sur REST sont rapidement devenus l'alternative. Ils sont plus faciles à écrire car ils exploitent les constructions de base de HTTP (GET, POST, PUT, DELETE) et utilisent généralement des formats de message plus petits (comme JSON). Par conséquent, les services HTTP basés sur REST sont désormais la norme pour les services d'écriture qui ciblent strictement le Web.
Définissons le but de l'API Web ASP.NET
L'API Web ASP.NET est la technologie de Microsoft pour développer des services Web HTTP basés sur REST. (Il a depuis longtemps remplacé l'ASMX de Microsoft, qui était basé sur SOAP / WSDL.) L'API Web facilite l'écriture de services robustes basés sur des protocoles HTTP que tous les navigateurs et appareils natifs comprennent. Cela vous permet de créer des services pour prendre en charge votre application et de les appeler à partir d'autres applications Web, tablettes, téléphones mobiles, PC et consoles de jeux. La majorité des applications écrites aujourd'hui pour tirer parti de la connexion Web toujours présente utilisent les services HTTP d'une manière ou d'une autre.
Définissons maintenant le but de WCF:
Communiquer sur Internet n'est pas toujours le moyen le plus efficace. Par exemple, si le client et le service existent sur la même technologie (ou même la même machine), ils peuvent souvent négocier un moyen de communication plus efficace (tel que TCP / IP). Les développeurs de services se sont retrouvés à faire les mêmes choix qu'ils essayaient d'éviter. Il leur faudrait désormais choisir entre créer des services internes efficaces et pouvoir bénéficier du large accès trouvé sur Internet. Et, s'ils devaient prendre en charge les deux, ils pourraient avoir à créer plusieurs versions de leur service ou au moins des procurations distinctes pour accéder à leur service. C'est le problème que Microsoft a résolu avec WCF .
Avec WCF, vous pouvez créer votre service sans vous soucier des limites. Vous pouvez ensuite laisser WCF s'inquiéter de l'exécution de votre service de la manière la plus efficace, selon le client appelant. Pour gérer cette tâche, WCF utilise le concept de points de terminaison. Votre service peut avoir plusieurs points de terminaison (configurés au moment de la conception ou après le déploiement). Chaque point de terminaison indique comment le service peut prendre en charge un client appelant: sur le Web, via l'accès à distance, via Microsoft Message Queuing (MSMQ), etc. WCF vous permet de vous concentrer sur la création de vos fonctionnalités de service. Il s'inquiète de la façon de parler le plus efficacement possible avec les clients appelants. De cette façon, un seul service WCF peut prendre en charge efficacement de nombreux types de clients différents.
Exemple de WCF:
Prenons l'exemple:
Les données client sont partagées entre les applications. Chaque application peut être écrite sur une plate-forme différente et peut exister dans un emplacement différent. Vous pouvez extraire l'interface client dans un service WCF qui fournit un accès commun aux données client partagées. Cela centralise les données, réduit la duplication, élimine la synchronisation et simplifie la gestion. De plus, en utilisant WCF, vous pouvez configurer les points de terminaison de service pour qu'ils fonctionnent de la manière qui convient au client appelant. La figure montre l'exemple précédent avec un accès centralisé aux données client dans un service WCF.
Conclusion:
i) Quand choisir l'API Web:
Il ne fait aucun doute que les services HTTP basés sur REST comme ceux créés à l'aide de l'API Web ASP.NET sont devenus la norme pour la création de services Web. Ces services offrent une approche simple et directe aux développeurs de services de création de sites Web. Les développeurs Web comprennent HTTP GET et POST et s'adaptent donc bien à ces types de services. Par conséquent, si vous écrivez des services strictement ciblés sur HTTP , l'API Web ASP.NET est le choix logique.
ii) Quand choisir WCF:
La technologie WCF est utile lorsque vous devez prendre en charge plusieurs points de terminaison de service en fonction de différents protocoles et formats de message. Des produits comme Microsoft BizTalk exploitent WCF pour créer des services robustes qui peuvent être utilisés sur le Web ainsi que via différentes configurations de machine à machine.Si, cependant, vous devez écrire une application qui communique sur TCP / IP lorsqu'elle est connectée au réseau local réseau et fonctionne sur HTTP en dehors du réseau, WCF est votre réponse .
Être averti:
Les développeurs Web considèrent souvent WCF comme plus difficile et plus complexe à développer. Par conséquent, si vous ne prévoyez pas la nécessité de services multiprotocoles, vous vous en tiendriez probablement à l'API Web ASP.NET.