ASP.NET MVC & Web Services

L’ajout d’un service Web à mon projet ASP.NET MVC viole-t-il l’ensemble du concept de MVC?

Ce Web Service (WCF) dépend de la couche Model 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’append à la couche Contrôleur ou Modèle?

Il semble que vous devriez diviser votre modèle en son propre assemblage et le référencer depuis votre application MVC et votre application WCF.

  • YourApp.Data – Modèle partagé et access aux données peut-être
  • YourApp.Web – Si vous souhaitez partager davantage sur vos applications Web
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

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

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

Consultez ce post de Rob Connery pour plus d’informations: ASP.Net MVC: Utiliser l’architecture RESTful

Séparer le modèle dans son propre projet ne rompt pas le modèle “MVC”. Tout d’abord, c’est juste ça – un motif. L’intention du modèle MVC est de définir clairement entre vos données, les gestionnaires de données et les présentateurs et la manière dont vous les connectez. La meilleure façon de le faire est de suggérer à Seb:

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

Quelque chose qui pourrait vous aider est le MVC Storefront que Rob Conery a mis sur pied. Allez regarder la vidéo ici:

MVC Storefront Video Series

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

Je ne pense pas que séparer le modèle dans son propre assemblage ait une incidence sur le fait que vous utilisiez ou non MVC, vous avez toujours un modèle. Où est-ce que c’est sans importance?

J’ai essayé de le faire.

Voir mon résultat sur mon blog

ps: Je ne crois pas que cela va casser 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, c’est de renvoyer un vidage XML.

J’ai ajouté des services Web à mon application et cela fonctionne bien. Je ne crois pas que cela viole MVC parce que c’est une interface alternative à votre modèle. MVC n’est pas adapté aux services Web, car les services Web n’ont pas de vue.

Pensez aux services Web et aux bases de données comme un seul et même élément. Selon cette analogie, je pense qu’il est logique de placer vos interactions de services Web là où vous placez votre logique de firebase database.