tag route page net mvc for asp asp.net asp.net-mvc wcf web-services architecture

route - ASP.NET MVC y servicios web



input asp for (7)

¿Agregar un servicio web a mi proyecto ASP.NET MVC rompe todo el concepto de MVC?

Ese servicio web (WCF) depende de la capa de modelo de mi proyecto MVC para comunicarse con el back-end (por lo que me parece que necesita ser parte de la solución MVC).

¿Debo agregar esto a la capa de Controlador o Modelo?


¿Hay alguna razón específica por la que necesite agregar servicios web a su aplicación MVC? A menos que exista una razón específica, debe usar sus controladores de manera RESTful como lo haría con un servicio web RESTful.

Consulte esta publicación de Rob Connery para obtener más información: ASP.Net MVC: Uso de la arquitectura RESTful


He agregado servicios web a mi aplicación y funciona bien. No creo que viole MVC porque es una interfaz alternativa a su modelo. MVC no es apropiado para servicios web porque los servicios web no tienen una vista.


He intentado hacer esto.

Ver mi resultado en mi blog

ps: No creo que esto rompa el concepto de MVC siempre que piense que un servicio web es el modelo de un repositorio porque todo lo que hace un servicio web es devolver un volcado de XML.


No creo que separar el modelo en su propio ensamble influya en si está usando MVC o no, todavía tiene un modelo. ¿Dónde está es irrelevante?


Parece que debe dividir su modelo en su propio conjunto y hacer referencia a él desde su aplicación MVC y su aplicación WCF.

  • YourApp.Data: el modelo compartido y el acceso a los datos tal vez
  • YourApp.Web: si desea compartir más en sus aplicaciones web
  • YourApp.Web.Mvc
  • YourApp.Web.WebService

Si desea usar WebServices MVC-style, quizás deba usar MVC para construir su propia aplicación REST.


Piense en servicios web y bases de datos como uno solo. Bajo esta analogía, creo que tiene sentido ubicar las interacciones de su servicio web donde coloca su lógica de base de datos.


Separar el modelo en su propio proyecto no está rompiendo el patrón "MVC". En primer lugar, es solo eso, un patrón. La intención del patrón MVC es delinear claramente entre sus datos, los manejadores de datos y los presentadores y la forma en que interactúa entre ellos. La mejor manera de hacerlo es cómo sugirió Seb:

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

Algo que podría ayudarte es el MVC Storefront que Rob Conery armó. Ve a ver el video aquí:

MVC Storefront Video Series

Y si desea ver el código real en su navegador para ver rápidamente cómo lo hizo, vaya aquí: MVC Storefront Codeplex Code Browser