Con los controladores ASP.NET MVC puede exponer sus datos en diferentes formatos. AspNetWebAPI está diseñado explícitamente para crear API, pero puedo hacerlo fácilmente con los controladores MVC, no tengo claro en qué casos sería mejor que los controladores MVC tradicionales. Estoy interesado en escenarios donde los beneficios de WebApi son obvios y valdría la pena agregar otra capa de complejidad a mis aplicaciones.
Pregunta: ¿cuáles son las ventajas y / o desventajas de usar asp.net WebApi con respecto a MVC?
asp.net-mvc
asp.net-web-api
Hugo Zapata
fuente
fuente
Respuestas:
WebApi permite crear servicios que pueden exponerse a través de HTTP en lugar de a través de un servicio formal como WCF o SOAP. Otra diferencia está en la forma en que WebApi utiliza el protocolo Http y lo convierte en un verdadero ciudadano Http de primera clase.
ACTUALIZACIÓN: El ASP.NET Core, API web se ha integrado en el tipo de proyecto MVC. La
ApiController
clase se consolida en laController
clase. Más en: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6Un enlace relevante de comparación, debates y tutoriales:
fuente
WebAPI escupe OData, por lo que obtiene todas las ventajas de usar OData. Por ejemplo, con WebAPI obtienes:
fuente
Asp.Net Web API VS Asp.Net MVC 1 . Asp.Net MVC se usa para crear aplicaciones web que devuelven vistas y datos, pero la API web de Asp.Net se usa para crear servicios HTTP completos con una manera fácil y simple que solo devuelve datos, no vistas.
2 . Web API ayuda a crear servicios REST-ful sobre .NET Framework y también admite la negociación de contenido (se trata de decidir los mejores datos de formato de respuesta que podrían ser aceptables por el cliente. Podrían ser JSON, XML, ATOM u otros datos formateados ), autohospedaje que no están en MVC.
3 . Web API también se encarga de devolver datos en un formato particular como JSON, XML o cualquier otro basado en el encabezado Aceptar en la solicitud y no se preocupe por eso. MVC solo devuelve datos en formato JSON usando JsonResult.
4 . En la API web, la solicitud se asigna a las acciones basadas en verbos HTTP, pero en MVC se asigna al nombre de las acciones.
5 . Asp.Net Web API es un nuevo marco y parte del marco central de ASP.NET. El enlace del modelo, los filtros, el enrutamiento y otras características de MVC que existen en la API web son diferentes de MVC y existen en el nuevo ensamblado System.Web.Http. En MVC, estas características existen en System.Web.Mvc. Por lo tanto, la API web también se puede usar con Asp.Net y como una capa de servicio independiente.
6 . Puede mezclar API web y controlador MVC en un solo proyecto para manejar solicitudes AJAX avanzadas que pueden devolver datos en formato JSON, XML o cualquier otro y construir un servicio HTTP completo. Por lo general, esto se llamará Web API self hosting.
7 . Cuando ha mezclado MVC y el controlador de API web y desea implementar la autorización, debe crear dos filtros, uno para MVC y otro para API web, ya que ambos son diferentes.
8 . Además, la API web es una arquitectura ligera y, excepto la aplicación web, también se puede usar con aplicaciones de teléfonos inteligentes.
La fuente original está aquí.
fuente
Similitudes
1) ambos heredan de ihhtphandler para la solicitud asíncrona, por lo que, básicamente, un controlador o controlador de mvc son el envoltorio de la web.
Diferencias: 1) el controlador mvc es muy pesado si pudieras revisar su definición, puedes ver cuántas interfaces y el código base que ha usado, la API web es un controlador más ligero y distinguir la solicitud por sus parámetros pasados (¡sí, también podemos cambiarla! )
2) El controlador MVC tiene demasiadas características como devolver vistas, resultados de acciones, resultados de JavaScript, etc. pero en la API web tiene JSON o XML
3) API es para implementar servicios Restful (obtener, publicar, poner, eliminar, opciones) que pueden alojar de forma independiente en cualquier lugar sin depender de las vistas, el controlador MVC no puede soportar eso ya que se integra estrechamente con las vistas.
fuente
Esta imagen parece mostrar las diferencias y similitudes en la forma del asunto. Espero que la ayuda sea interesante para mí.
fuente
En algún momento, es posible que desee olvidar ASP.NET MVC por completo. Si usted es un desarrollador de .NET pero desea crear una aplicación de una sola página (usando Angular, por ejemplo), querrá los beneficios de un servicio RESTful (WebAPI) sin toda la hinchazón innecesaria que viene con ASP.NET MVC.
fuente
ASP.NET MVC y ASP.NET Web api ambos están utilizando para diferentes propósitos
ASP.NET
ASP.NET ofrece tres marcos para crear aplicaciones web: formularios web, ASP.NET MVC y páginas web ASP.NET. Los tres marcos son estables y maduros, y puede crear excelentes aplicaciones web con cualquiera de ellos. No importa qué marco elija, obtendrá todos los beneficios y características de ASP.NET en todas partes.
Cada marco apunta a un estilo de desarrollo diferente. El que elija depende de una combinación de sus activos de programación (conocimiento, habilidades y experiencia de desarrollo), el tipo de aplicación que está creando y el enfoque de desarrollo con el que se sienta cómodo. Los tres marcos serán compatibles, actualizados y mejorados en futuras versiones de ASP.NET.
MVC
ASP.NET MVC le brinda una forma poderosa y basada en patrones para crear sitios web dinámicos que permite una separación clara de las preocupaciones y le brinda un control total sobre el marcado para un desarrollo ágil y agradable. ASP.NET MVC incluye muchas características que permiten un desarrollo rápido y amigable con TDD para crear aplicaciones sofisticadas que utilizan los últimos estándares web.
API web
ASP.NET Web API es un marco que facilita la creación de servicios HTTP que llegan a una amplia gama de clientes, incluidos navegadores y dispositivos móviles. ASP.NET Web API es una plataforma ideal para crear aplicaciones RESTful en .NET Framework.
puede leer más formularios aquí http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html
fuente
ASP.NET MVC se centra en facilitar la salida de HTML. ASP.NET Web API se centra en facilitar la salida de datos sin procesar.
En el mundo de WebForms, ASP.NET MVC sería equivalente a páginas .aspx y ASP.NET Web API sería .asmx
fuente
Asp.Net MVC se usa para crear aplicaciones web que devuelven vistas y datos, pero la API web de Asp.Net se usa para crear servicios HTTP completos con una manera fácil y sencilla que solo devuelve datos, no vistas.
Web API ayuda a construir servicios REST-ful sobre .NET Framework y también admite la negociación de contenido (se trata de decidir el mejor formato de respuesta de datos que podría ser aceptable para el cliente. Podría ser JSON, XML, autohospedaje que no son en MVC
Web API también se encarga de devolver los datos en un formato particular como JSON, XML o cualquier otro basado en el encabezado Aceptar en la solicitud y no se preocupe por eso. MVC solo devuelve datos en formato JSON usando JsonResult.
fuente
Por lo general, WebAPI se utiliza para servicios de datos donde MVC puede generar más tipos de resultados.
WebAPI con seguridad simplifica la forma en que podemos crear servicios de datos. Es limpio y fácil para este propósito. MVC viene con algunas herramientas más.
MVC puede generar cualquier salida que WebAPI puede generar. La generación de resultados a partir de plantillas se puede lograr fácilmente en MVC. No puedo encontrar una razón para hacerlo en WebAPI. Los desarrolladores de PHP y el antiguo programador ASP pueden conocer esta actitud del pasado, donde puedes construir archivos HTML involucrados con código C # en el interior.
WebAPI- DATA MVC - DATA, UI / HTML, XHTML, Archivos, Plantillas, etc.
fuente