2011-05-01 6 views
26

Quel est l'avantage d'utiliser une nouvelle API Web WCF sur ASP.NET MVC 3 pour exposer une couche de service Web JSON légère? J'aime l'API Web de plusieurs façons, mais l'inconvénient est qu'elle ne fonctionne pas en mono, contrairement à MVC 3. Quelles sont les principales différences entre les deux approches?WCF Web API vs services Web ASP.NET MVC JSON

+0

duplication possible de [Quelle est la meilleure façon d'implémenter une architecture RESTful dans .NET aujourd'hui?] (Http://stackoverflow.com/questions/4318196/what-is-the-best-way-to-implement- a-restful-architecture-in-net-today) –

+3

Avez-vous écouté les récentes Hanselminutes avec Glenn Block? Ce sujet est longuement discuté. http: //www.hanselman.com/blog/HanselminutesPodcast264ThisIsNotYourFathersWCFAllAboutTheWebAPIWithGlennBlock.aspx –

Répondre

2

Je crois que cette question cible le nouveau WCF Web API et à cause de cela, ce n'est pas la même chose que la question liée en tant que doublon. WCF Web API supprime certaines limitations de la prise en charge actuelle de WCF Rest, mais le principal inconvénient de l'API Web est qu'elle est uniquement un brouillon - actuellement preview 4. Elle n'a aucun support et n'est probablement pas censée être utilisée en production environnement. De plus, toute nouvelle version peut introduire des modifications de rupture ou supprimer l'ensemble des fonctionnalités disponibles dans la version précédente. Pour cette raison, vous devez utiliser ASP.NET MVC pour créer une couche de service JSON légère.

+2

Il peut être utilisé en prod, mais seulement au sein de votre propre entreprise. Vous ne pouvez pas le déployer sur le site d'un client. –

8

Il est reconnu par Microsoft qu'il existe un certain chevauchement entre les deux produits. Cependant, ils ont un objectif différent:

  • Si vous construisez un site web qui consomme JSON de votre service Web alors MVC est probablement le meilleur choix. Si vous construisez une API destinée à être consommée par divers clients tiers, alors l'API Web WCF est le meilleur choix.

Mes propres raisons personnelles comprennent le fait que, avec WCF API Web signifie que je peux auto-hôte dans un service Windows, et je peux éviter ASP.NET, web.config et Cassini :-)

+0

La raison en est que vous pouvez exposer d'autres formats/endpoints que HTTP/JSON? Glen Block a également mentionné que l'API Web WCF est plus destinée aux clients qui utilisent déjà leur couche de service écrite en WCF. – adrin

+0

@adrin Vous pouvez "exposer" d'autres formats dans ASP.NET MVC, ce n'est pas un objectif principal d'ASP.NET MVC, alors que c'est un objectif principal de WCF Web API. C'est vraiment juste une question de concentration. –

+0

@adrin Bien sûr, si vous êtes déjà familier avec WCF, alors ce sera et transition plus facile. Les nouveaux bits conservent une grande compatibilité descendante avec WCF REST 3.5 et 4. –

3

Mise à jour 24/06/14 par demande:

Ce qui est maintenant ASP.NET Web API (anciennement WCF Web API) et ASP.NET MVC fusionnera formellement dans ce qui est actuellement appelé ASP.NET vNext (MVC 6).

http://www.asp.net/vnext/overview/aspnet-vnext/overview

========================================= ==================================

réponse originale:

Il a été annoncé hier (2/8/2012) que les projets fusionnent formellement. Voir:

http://www.c4mvc.net/meeting/?id=25

et

http://msdn.microsoft.com/en-us/hh824721

Le lien c4mvc doit être mis à jour avec un lien vers la présentation de Dan Roth bientôt.

+0

Le lien supérieur semble ne plus être pertinent –

+0

Une mise à jour pourrait être une bonne idée de garder cette réponse pertinente ... – Nenotlep

+1

@Nenotlep done! –