D'après ce que j'ai appris, Microsoft a un peu confondu les noms.
Je suppose que vous savez ce qu'est WCF, ce grand cadre construit sur XML pour permettre aux utilisateurs de construire des services distribués avec une grande variété de technologies (de SOAP à REST en passant par MSMQ, etc.).
Il est très difficile à utiliser (pour moi en tout cas) et nécessite beaucoup d'efforts pour le faire fonctionner. Ils ont fini par s'en rendre compte et ont commencé à fournir une configuration par défaut pour des services http simples (WCF REST starter kit, quelqu'un ?). ASP.NET MVC prenait de l'ampleur et certaines des fonctionnalités qu'il offrait (la correspondance automatique des arguments par exemple) ont commencé à apparaître dans WCF.
Telle est la situation :
Annonce : WCF Web API devient ASP.NET Web API ! ASP.NET Web API a été lancée avec ASP.NET MVC 4 Beta. L'API Web WCF et la prise en charge WCF de jQuery sur ce site seront supprimés d'ici la fin de l'année 2012.
http://wcf.codeplex.com/wikipage?title=Getting%20started:%20Building%20a%20simple%20web%20api
Et c'est mieux ainsi.
Je suis certain qu'il devrait être possible d'héberger le webapi asp.net mvc4 au-dessus de WCF (si jamais vous en avez besoin), mais je n'arrive pas à trouver de documentation qui me donne raison (ou tort).
MISE À JOUR (ne peut être inséré en tant que commentaire) : Attendez, il y a une énorme différence entre "déplacer un sous-ensemble de technologie de communication d'une bibliothèque/framework à une autre" et "remplacer WCF". Personnellement, je pense que WCF a été conçu pour un certain type de concept de communication et qu'il a un design plutôt cool, mais l'informatique distribuée évolue vers de nouvelles (et plus simples) solutions (regardez le SOAP riche en fonctionnalités contre le REST léger et flexible, bien que beaucoup de gens utilisent encore REST d'une manière RPC), et je pense que ce type de modèle de programmation s'intègre mieux dans l'architecture MVC que dans l'architecture WCF. Des efforts ont été déployés pour concevoir un moyen simple de construire/consommer des services web au-dessus de WCF, mais ils ont finalement découvert que ce n'était pas la bonne solution.
Sans oublier que de nombreux développeurs utilisent désormais ASP.NET MVC et veulent mettre en place des services web de repos pour leur application web, s'amuser avec WCF est souvent exagéré pour ce genre de choses, et j'en ai fait l'expérience moi-même.
Je pense que le mécanisme de routage est génial et que c'est la bonne façon de faire, et si vous regardez bien, ils ont inclus une partie de ce mécanisme (avec des noms et des types différents, mais le modèle était là) dans WCF. Donc oui, je pense que si MS ne rejette pas cette partie de WCF WE devrait le faire. Pour répondre strictement, non, je ne pense pas que vous trouverez jamais WebGet/WebInvoke dans asp.net mvc*, ce n'est tout simplement pas adapté.
Oui, le self-host est probablement le seul élément de WCF contenu dans ASP.NET MVC4 à l'heure actuelle.
4 votes
Il ne s'agit pas d'une WebAPI MVC, mais d'une API Web ASP.NET qui n'est en aucun cas couplée à ASP.NET MVC. Voir ce billet de blog : blogs.msdn.com/b/henrikn/archive/2012/02/23/ Vous pouvez également l'héberger vous-même si vous le souhaitez.