web-dev-qa-db-fra.com

ASP.NET MVC et services Web

L'ajout d'un service Web à mon projet ASP.NET MVC brise-t-il tout le concept de MVC?

Ce service Web (WCF) dépend de la couche modèle de mon projet MVC pour communiquer avec le back-end (il me semble donc qu'il doit faire partie de la solution MVC).

Dois-je l'ajouter à la couche Controller ou Model?

48
ANaimi

Il semble que vous devez diviser votre modèle en son propre assemblage et le référencer à partir de votre application MVC et de votre application WCF.

  • YourApp.Data - Modèle partagé et accès aux données peut-être
  • YourApp.Web - Si vous souhaitez partager plus entre vos applications Web
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

Si vous voulez faire des WebServices de style MVC, vous devriez peut-être utiliser MVC pour créer votre propre application REST.

27
Seb Nilsson

Y a-t-il une raison particulière pour laquelle vous devez ajouter des services Web à votre application MVC? À moins qu'il n'y ait une raison spécifique, vous devez utiliser vos contrôleurs de manière RESTful comme vous le feriez pour un service Web RESTful.

Consultez cet article de Rob Connery pour plus d'informations: ASP.Net MVC: Utilisation de l'architecture RESTful

19
SaaS Developer

Séparer le modèle en son propre projet ne rompt pas le modèle "MVC". Tout d'abord, c'est juste cela - un modèle. L'intention du modèle MVC est de délimiter clairement entre vos données, les gestionnaires de données et les présentateurs et la façon dont vous vous connectez entre eux. La meilleure façon de le faire est la façon dont Seb a suggéré:

  • YourApp.Data
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

Quelque chose qui pourrait vous aider est la vitrine MVC que Rob Conery a conçue. Allez voir les vidéos ici:

Série vidéo MVC Storefront

Et si vous voulez regarder le code réel dans votre navigateur pour voir rapidement comment il l'a fait, allez ici: Navigateur de code MVC Storefront Codeplex

11
MunkiPhD

Je ne pense pas que séparer le modèle en son propre assemblage ait une incidence sur l'utilisation ou non de MVC, vous avez toujours un modèle. Où est-il est sans pertinence?

2
MrTea

J'ai essayé de faire ça.

Voir mon résultat sur mon blog

ps: Je ne pense pas que cela va briser le concept MVC tant que vous pensez qu'un service web est le modèle d'un référentiel car tout ce qu'un service web fait est de renvoyer un vidage XML.

1
Zac

Considérez les services Web et les bases de données comme une seule et même chose. Sous cette analogie, je pense qu'il est logique de placer vos interactions de service Web là où vous placez la logique de votre base de données.

0
Chris

J'ai ajouté des services Web à mon application et cela fonctionne bien. Je ne pense pas que cela viole MVC car c'est une interface alternative à votre modèle. MVC n'est pas approprié pour les services Web car les services Web n'ont pas de vue.

0
liammclennan