2012-02-14 11 views
6

¿MVC tiene que ser RESTful?Es MVC RESTful por diseño

¿Hay alguna manera de hacer un servicio SOAP usando el patrón MVC?

¿Sería la solicitud de entrada en realidad entrar en el View primero y luego en el Controller entonces el Model por ejemplo:

Request -> View -> Controller -> Model 

pero al hacerlo, que hay un patrón MVC más tiempo. (Así es, ¿no?)

¿De qué otra forma obtendríamos una respuesta mecanografiada usando SOAP pero todavía nos adherimos (o nos acercamos) al patrón MVC? ¿Sería MVVM un patrón más adecuado para esta situación?

+1

No entiendo por qué MVC recibe tanta atención. – duffymo

+0

@duffymo Estoy de acuerdo ... no es mi elección – Seph

+0

@duffymo y Seph> ¿qué tecnologías estás usando? – Adi

Respuesta

21

REST describe cómo interactúa con la aplicación, mientras que MVC es la forma de implementar la aplicación. Una aplicación implementada usando MVC puede ser RESTful o no.

SOAP es un protocolo para interactuar con la aplicación, que se puede implementar utilizando MVC.

En MVC, la solicitud va al controlador, que crea un modelo para la vista.

Request -> [Controller] -> Model -> [View] -> Response 
+0

para que el SOAP tipeado funcione (p. Ej .: WSDL), aún necesitaría envolver la solicitud en un contenedor tipo seguro, ¿no? – Seph

0

La solicitud se enruta a una acción en el controlador, que utiliza un modelo (que se define, es simplemente una estructura que representa los datos de su acción y la vista funcionarán encendido). Esta acción devuelve un ActionResult, que a menudo es, pero no tiene por qué ser, un ViewResult (que básicamente solo ejecuta la página de vista que especificó, utilizando el modelo que especificó, si corresponde). Sin embargo, no tiene que devolver una Vista; Puede crear cualquier clase de ActionResult que desee. Puede devolver XML, JSON, SOAP, contenido binario, lo que sea.

MVC es de naturaleza relajante, pero no es estrictamente compatible con REST y se puede adaptar a lo que mejor le parezca. Podrías hacer que tu controlador hablara SOAP, pero mi pregunta es ¿por qué lo harías si ese trabajo ya está hecho para ti en otras tecnologías (como WCF)?

0

HTTP fue diseñado para ser RESTful. La discusión detallada sobre lo que es REST fue here. MVC no tiene restricciones para ser RESTful o no. ASP.Net MVC es compatible con el estilo REST del desarrollo web. Puede hacer que su sitio web sea RESTANTE o no, es su elección. SOAP es protocolo. En .Net es mejor usar WCF para tratar con SOAP. Los servicios de WCF se pueden implementar junto con su aplicación ASP.Net MVC. Pero no tenemos implementación de MVC dentro de WCF. En general, no tenemos la interfaz de usuario como parte de los servicios Web/WCF.

Cuestiones relacionadas