visual tutorial studio paso net mvc example crear asp asp.net-mvc asp.net-web-api

asp.net mvc - tutorial - ASP.NET WebApi vs MVC?



web api rest c# (10)

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 controladores MVC, no tengo claro en qué casos sería mejor que los controladores MVC tradicionales. Me interesan los escenarios en los que los beneficios de WebApi son obvios y sería útil añadir 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 se centra en hacer que la salida de HTML sea fácil. ASP.NET Web API se centra en facilitar la producción de datos sin formato.

En el mundo de WebForms, ASP.NET MVC sería equivalente a las páginas .aspx y ASP.NET Web API sería .asmx


Asp.Net MVC se utiliza para crear aplicaciones web que devuelven vistas y datos, pero Asp.Net Web API se utiliza para crear servicios completos de HTTP de manera fácil y sencilla que solo devuelve datos que no se visualizan.

La API web 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 para el cliente. Podría ser JSON, XML, self hosting que no son en MVC.

Web API también se ocupa de devolver los datos en un formato particular como JSON, XML o cualquier otro basado en el encabezado Aceptar en la solicitud y no te preocupes por eso. MVC solo devuelve datos en formato JSON utilizando JsonResult.


En algún momento es posible que desee olvidar ASP.NET MVC todos juntos. Si usted es un desarrollador de .NET pero desea construir una aplicación de una sola página (usando Angular por ejemplo), querrá los beneficios de un servicio RESTful (WebAPI) sin todo el engorro innecesario que acompaña a ASP.NET MVC.


Esta imagen parece mostrar las diferencias y similitudes en la forma en que el asunto. Espero que las ayudas sean interesantes para mí.


Las aplicaciones web ASP.NET MVC y ASP.NET ambas están usando para diferentes propósitos

ASP.NET

ASP.NET ofrece tres marcos para la creación de 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. Independientemente del marco que elija, obtendrá todos los beneficios y características de ASP.NET en todas partes.

Cada marco se dirige 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 ofrece una forma poderosa y basada en patrones para crear sitios web dinámicos que permite una separación clara de las preocupaciones y que le da un control total sobre el marcado para un desarrollo agradable y ágil. ASP.NET MVC incluye muchas características que permiten un desarrollo rápido y compatible 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 lleguen a una amplia gama de clientes, incluidos navegadores y dispositivos móviles. ASP.NET Web API es una plataforma ideal para compilar aplicaciones RESTful en .NET Framework.

puedes leer más aquí http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html


Por lo general, WebAPI utiliza servicios de datos en los que MVC puede generar más tipos de resultados.

WebAPI seguramente 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 pueda generar. La generación de salidas 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 de ASP podrían conocer esta actitud del pasado, donde puedes construir archivos HTML relacionados con el código C # dentro.

WebAPI- DATA MVC - DATOS, UI / HTML, XHTML, Archivos, Plantillas etc.


Similitudes

1) ambos heredan de ihhtphandler para el asyncrequest, por lo que básicamente apicontroller o mvc controller ambos son el envoltorio alrededor de la web.http

Diferencias: 1) El controlador de mvc es muy pesado si se puede pasar por su definición, se puede ver cuántas interfaces y el código base se ha utilizado, la API web es un controlador más ligero y distingue la solicitud por sus parámetros pasados ​​(¡sí podemos cambiarlo también! )

2) El controlador MVC tiene demasiadas funciones como devolver vistas, resultado de acción, resultado 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 alojarse independientemente en cualquier lugar sin las vistas dependientes, el controlador MVC no puede admitir eso ya que está estrechamente integrado con las vistas.


WebAPI escupe OData, por lo que obtiene todas las ventajas de usar OData. Por ejemplo, con WebAPI obtienes:

  • Opciones de consulta tales como $ filter, $ top, $ orderby, etc.
    • Con los controladores MVC tradicionales, debe implementarlos usted mismo.
  • Estandarización del formato
    • Hay clientes OData que comprenderán el formato subyacente de su API RESTful.

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 usa el protocolo Http y lo convierte en un ciudadano de primera clase Http.

ACTUALIZACIÓN: ASP.NET Core, API web se ha integrado en el tipo de proyecto MVC. La clase ApiController se consolida en la clase Controller . Más en: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

Un enlace relevante de comparación, discusiones y tutoriales:


Asp.Net Web API VS Asp.Net MVC 1 . Asp.Net MVC se utiliza para crear aplicaciones web que devuelven vistas y datos, pero Asp.Net Web API se utiliza para crear servicios completos de HTTP de manera fácil y sencilla que solo devuelve datos que no se visualizan.

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 para el cliente: podría ser JSON, XML, ATOM u otros datos formateados). ), alojamiento propio que no están en MVC.

3 . Web API también se ocupa de devolver los datos en un formato particular como JSON, XML o cualquier otro basado en el encabezado Aceptar en la solicitud y no te preocupes por eso. MVC solo devuelve datos en formato JSON utilizando 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 framework y parte del núcleo del framework ASP.NET. Las características de enlace de modelo, filtros, enrutamiento y otras MVC existentes en Web API 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 combinar la API web y el controlador MVC en un único proyecto para gestionar las solicitudes AJAX avanzadas que pueden devolver datos en formato JSON, XML o de cualquier otro formato y crear un servicio HTTP completo. Por lo general, esto se denominará alojamiento web API.

7 . Cuando haya mezclado el controlador MVC y la API web y desee implementar la autorización, deberá crear dos filtros, uno para MVC y otro para la API web, ya que ambos son diferentes.

8 . Además, la API web es una arquitectura liviana y, a excepción de la aplicación web, también se puede usar con aplicaciones de teléfonos inteligentes.

La fuente original está aquí