2012-05-28 16 views
15

¿Alguien tiene experiencia en usar el proyecto ASP.NET MVC como un servicio web?Usando ASP.NET MVC como servicio web

es decir, utilizando ASP.NET MVC sin Vistas, para que otras aplicaciones puedan usar la URL para GET o POST para las acciones en el Controlador.

nadie lo ha utilizado? Si es así, ¿hay algún inconveniente por no usar el proyecto de servicio web?

¡Gracias a todos por adelantado!

+0

Ver http://stackoverflow.com/questions/40692/possible-to-create-rest-web-service-with-asp-net-2-0 http://stackoverflow.com/questions/3499514/wcf-rest-service-or-asp-net-mvc-controllers-actions http://stackoverflow.com/questions/90451/why-would-one-use- servicios de descanso en lugar de web – Daveo

Respuesta

8

Realmente depende del tipo de aplicación que está escribiendo. De hecho, discutiría lo contrario de la posición de LukLed: los servicios basados ​​en SOAP son más adecuados para los clientes internos cuando se quiere admitir cosas como la Autenticación de Windows o diferentes protocolos como TCP o MSMQ.

El uso de un estilo más web de GET y POST alrededor de "recursos" específicos comienza a entrar en el REST architectural style. Esta técnica tiene algunas ventajas claras para mí:

  • La respuesta es generalmente más pequeños, especialmente cuando se utilizan formatos ligeros como JSON
  • Debido a la simplicidad de las solicitudes y respuestas, esto hace que sea mucho más fácil de usar en aplicaciones móviles/nativa (véase Twitter's API, por ejemplo)
  • El servicio se crea puede ser auto-descripción y visible, porque se puede enlazar a otras partes de su API al igual que las páginas web normales.

Un artículo que ayudó particularmente a entender las ventajas y desventajas de aquí es "Steps Toward the Glory of REST." Dicho Martin Fowler, que puede o no ser el más adecuado para su aplicación.

Si elige construir un servicio basado en REST, definitivamente considere usar el ASP.NET Web API integrado en MVC4 como lo han mencionado otros. Actualmente está en versión beta, pero Microsoft se sintió lo suficientemente bien como para darle una licencia de puesta en marcha.

ACTUALIZACIÓN:

Desde ASP.NET núcleo, ASP.NET Web API se ha integrado en el proyecto MVC 6. https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

8

Si desea utilizar GET y POST llamadas simples, MVC será buena opción. ASP.NET MVC 4 tendrá soporte para crear API basadas en HTTP. Puede leer sobre ello aquí: http://www.asp.net/web-api

servicio web creado en el proyecto de servicio Web puede ser más fácil de consumir, ya que puede generar el archivo WSDL, que puede ser leído y utilizado en muchos idiomas diferentes (utilizando el protocolo SOAP) fácilmente. Por otro lado, WS puede crear enormes respuestas XML, que podrían ser muchas veces más pequeñas, si utilizó su propio formato.

Si desea extender su servicio web en todo el mundo, permitiendo que el jabón hará la vida más fácil para muchos desarrolladores. SOAP puede ser utilizado por personas que casi no tienen idea de programación. Si lo usa internamente, prefiere la velocidad y las solicitudes y respuestas simples, puede usar MVC.

2

Nueva ASP.NET MVC incluye sistema de identificación API Web, que puede hacer exactamente lo que quiere. Con la versión actual todavía puede usarlo. No existen inconvenientes reales

Cuestiones relacionadas