93 votes

WCF vs ASP .Net Web API

Quels sont les avantages et les inconvénients de l'utilisation de chaque technologie ?

WCF Web Api est maintenant fusionné avec Asp.net L'api web Asp.net supporte maintenant l'auto-hébergement.

J'imagine quand même que si je veux exposer plusieurs schémas de protocole pour la même opération, je pencherais toujours pour WCF ou le point final Mvc peut-il aussi le faire ?

De plus, la nouvelle api Web d'Asp.Net expose-t-elle le Wsdl ? Sinon, comment le client peut-il savoir quelle opération est disponible pour lui ?

Sans doute la meilleure caractéristique de Mvc est le modelbinder. Quelle est la robustesse de l'équivalent WCF ?

Quelqu'un peut-il me dire quels sont les avantages de l'API Web d'Asp.net ? WCF semble être le choix le plus puissant et le plus évolutif, à mon avis. La seule chose que l'Api Web Mvc a sur le modèle WCF est probablement la facilité de développement, mais cela ne veut rien dire si cela finit par être une limitation de conception sérieuse sur la route.

72voto

IdoFlatow Points 946

Tout d'abord, je vous suggère de lire mon post sur le sujet : http://blogs.microsoft.co.il/blogs/idof/archive/2012/03/05/wcf-or-asp-net-web-apis-my-two-cents-on-the-subject.aspx

En ce qui concerne votre question sur le WSDL, puisque la WebApi n'utilise pas SOAP, elle ne nécessite pas de WSDL et n'en exporte pas. Vous pouvez utiliser Hypermedia pour renvoyer des ressources avec une liste d'URL d'activités possibles (considérez cela comme une ressource auto-décrite).

15voto

Junior Mayhé Points 5202

Le choix dépend de ce que l'on veut faire.

  1. ASP.NET Web API est un cadre permettant de créer des services non-SOAP sur HTTP uniquement - il n'y a donc pas d'autres protocoles de transport disponibles avec ce cadre.
  2. WCF / Windows Communication Foundation est un cadre pour échanger des messages basés sur SOAP - ici nous utilisons beaucoup de protocoles de transport : HTTP, TCP, Named pipes, MSMQ, etc...

Je ne suis pas sûr de savoir lequel a la meilleure performance en ce qui concerne la quantité de données, peut-être WCF puisque nous pouvons utiliser des protocoles bas. Tout commentaire est le bienvenu.

8voto

Gregory A Beamer Points 10975

L'API Web WCF se concentre principalement sur les implémentations REST. Si vous configurez une mise en œuvre REST, les bits WCF standard sont un peu pénibles. Si vous mettez en place des services RESTful, vous trouverez l'API Web WCF une expérience beaucoup plus agréable. Si vous mettez en place des services SOAP, alors l'API Web WCF n'est pas votre meilleur ami, et vous êtes mieux d'utiliser WCF pour vos services.

0voto

A_Var Points 644

Utilisez WCF pour les sites intranet/B2B et Web API pour les sites B2C/C2C/internet... SOAP/XML reste la norme pour la communication intra-entreprise et n'est pas près de disparaître !

-16voto

user1305535 Points 1

Mvc se concentre vraiment sur le côté client. Si vous avez fait des recherches, ce que Microsoft a dit est essentiellement ceci : Mvc n'a jamais été conçu pour les applications Internet

Si vous êtes intéressé par l'utilisation d'applications Web (pour les applications Web de base sur Internet, vous vous en tenez aux formulaires Web et à l'utilisation du code côté serveur), consultez le site .....

Par conséquent, le webapi est essentiellement destiné aux tablettes mobiles et aux applications sur l'intranet, Azure ou un service de cloud privé qui utilisent des bibliothèques javascript libres comme knockout dojo extjs). Au fait, le côté intranet utilise des services web basés sur les messages qui sont vraiment très efficaces et la nouvelle bibliothèque asynch. La fondation Windows idnetity devrait être utilisée au-dessus de l'authentification des formulaires en utilisant un jeton.

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