Información general sobre ASP.NET MVC


El modelo arquitectónico Modelo-Vista-Controlador (MVC) separa una aplicación en tres componentes principales: el modelo, la vista y el controlador. El marco de ASP.NET MVC proporciona una alternativa al modelo de formularios Web Forms de ASP.NET para crear aplicaciones web. El marco de ASP.NET MVC es un marco de presentación de poca complejidad y fácil de comprobar que (como las aplicaciones basadas en formularios Web Forms) se integra con las características de ASP.NET existentes, tales como páginas maestras y la autenticación basada en pertenencia. El marco de MVC se define en el ensamblado System.Web.Mvc.

Modelo de diseño de MVC

 

IC377947

 

<?XML:NAMESPACE PREFIX = "[default] http://www.w3.org/1999/xhtml&quot; NS = "http://www.w3.org/1999/xhtml&quot; />Algunos tipos de aplicaciones web salen beneficiados con el marco de MVC. Otras seguirán usando el modelo de la aplicación ASP.NET tradicional que está basado en formularios Web Forms y devoluciones. Otros tipos de aplicaciones web combinarán las dos estrategias; una no excluye a la otra.

El marco de MVC incluye los componentes siguientes:

  • Modelos. Los objetos de modelo son las partes de la aplicación que implementan la lógica del dominio de datos de la aplicación. A menudo, los objetos de modelo recuperan y almacenan el estado del modelo en una base de datos. Por ejemplo, un objeto Product podría recuperar información de una base de datos, trabajar con ella y, a continuación, escribir la información actualizada en una tabla Productos de una base de datos de SQL Server.

    En las aplicaciones pequeñas, el modelo es a menudo una separación conceptual en lugar de física. Por ejemplo, si la aplicación solo lee un conjunto de datos y lo envía a la vista, la aplicación no tiene un nivel de modelo físico ni las clases asociadas. En ese caso, el conjunto de datos asume el rol de un objeto de modelo.

  • Vistas. Las vistas son los componentes que muestra la interfaz de usuario de la aplicación. Normalmente, esta interfaz de usuario se crea a partir de los datos de modelo. Un ejemplo sería una vista de edición de una tabla Productos que muestra cuadros de texto, listas desplegables y casillas basándose en el estado actual de un objeto Product.

  • Controladores. Los controladores son los componentes que controlan la interacción del usuario, trabajan con el modelo y por último seleccionan una vista para representar la interfaz de usuario. En una aplicación MVC, la vista solo muestra información; el controlador administra y responde a los datos proporcionados por el usuario y su interacción. Por ejemplo, el controlador administra los valores de la cadena de consulta y pasa estos valores al modelo, que a su vez podría usarlos para consultar la base de datos.

El modelo MVC le ayuda a crear aplicaciones que separan los diferentes aspectos de la aplicación (lógica de entrada, lógica de negocios y lógica de la interfaz de usuario), a la vez que proporciona un vago acoplamiento entre estos elementos. El modelo especifica dónde se debería encontrar cada tipo de lógica en la aplicación. La lógica de la interfaz de usuario pertenece a la vista. La lógica de entrada pertenece al controlador. La lógica de negocios pertenece al modelo. Esta separación le ayuda a administrar la complejidad al compilar una aplicación, ya que le permite centrarse en cada momento en un único aspecto de la implementación. Por ejemplo, se puede centrar en la vista sin estar condicionado por la lógica de negocios.

El acoplamiento vago entre los tres componentes principales de una aplicación MVC también favorece el desarrollo paralelo. Por ejemplo, un desarrollador de software puede trabajar en la vista, un segundo desarrollador puede ocuparse de la lógica del controlador y un tercero se puede centrar en la lógica de negocios del modelo.

Compatibilidad con el desarrollo basado en pruebas

Además de administrar la complejidad, el modelo MVC hace que sea más fácil probar las aplicaciones que probar una aplicación web ASP.NET basada en formularios Web Forms. Por ejemplo, en una aplicación web ASP.NET basada en formularios Web Forms, se usa una clase única para mostrar la salida y para responder a los datos proporcionados por el usuario. Escribir pruebas automatizadas para las aplicaciones ASP.NET basadas en formularios Web Forms puede ser complejo, ya que para probar una página individual se deben crear instancias de la clase de página, todos sus controles secundarios y las clases dependientes adicionales de la aplicación. Dado que se crean instancias de tantas clases para ejecutar la página, puede ser difícil escribir pruebas que se centren exclusivamente en partes individuales de la aplicación. Las pruebas para las aplicaciones ASP.NET basadas en formularios Web Forms pueden ser por consiguiente más difíciles de implementar que las pruebas de una aplicación MVC. Es más, las pruebas en una aplicación ASP.NET basada en formularios Web Forms requieren un servidor web. El marco de MVC desacopla los componentes y hace un uso intensivo de las interfaces, lo cual hace posible probar los componentes individuales aislados del resto del marco.

Cuándo se crea una aplicación MVC

Debe considerar cuidadosamente si desea implementar una aplicación web mediante el marco de ASP.NET MVC o el modelo de formularios Web Forms de ASP.NET. El marco de MVC no reemplaza el modelo de formularios Web Forms; puede usar cualquiera de los dos marcos para las aplicaciones web. (Si ya tiene aplicaciones basadas en formularios Web Forms, estas seguirán funcionando exactamente igual que siempre).

Antes de decidir usar el marco de MVC o el modelo de formularios Web Forms para un sitio web concreto, sopese las ventajas de cada método.

Ventajas de una aplicación web basada en MVC

El marco de ASP.NET MVC ofrece las ventajas siguientes:

  • Facilita la administración de la complejidad, al dividir una aplicación en el modelo, la vista y el controlador.

  • No usa el estado de vista ni formularios basados en servidor. Esto hace que el marco de MVC sea ideal para los desarrolladores que deseen un control completo sobre el comportamiento de una aplicación.

  • Usa un modelo de controlador frontal que procesa las solicitudes de la aplicación web a través de un controlador único. Esto permite diseñar una aplicación que admite una infraestructura de enrutamiento avanzada. Para obtener más información, Consulte Controlador frontal.

  • Proporciona una mayor compatibilidad con el desarrollo basado en pruebas (TDD).

  • Funciona bien para las aplicaciones web en las que trabajan equipos grandes de desarrolladores y para los diseñadores web que necesitan un alto grado de control sobre el comportamiento de la aplicación.

Ventajas de una aplicación web basada en formularios Web Forms

El marco basado en formularios Web Forms ofrece las ventajas siguientes:

  • Admite un modelo de eventos que conserva el estado sobre HTTP, lo cual favorece al desarrollo de la aplicación web de línea de negocio. La aplicación basada en formularios Web Forms proporciona docenas de eventos que se admiten en centenares de controles de servidor.

  • Usa un modelo de controlador de página que agrega funcionalidad a las páginas individuales. Para obtener más información, Consulte Controlador de página.

  • Usa el estado de vista de los formularios basados en servidor, lo cual puede facilitar la administración de la información de estado.

  • Funciona bien para los equipos pequeños de desarrolladores web y los diseñadores que deseen aprovechar el gran número de componentes disponible para el desarrollo rápido de aplicaciones.

  • En general, es menos complejo para el desarrollo de aplicaciones, puesto que los componentes (la clase Page, controles, etc.) se integran estrechamente y suelen requerir menos código que el modelo MVC.

Características del marco de ASP.NET MVC

El marco de ASP.NET MVC ofrece las características siguientes:

  • Separación de tareas de aplicación (lógica de entrada, lógica de negocios y lógica de la interfaz de usuario), facilidad para pruebas y desarrollo basado en pruebas (TDD). Todos los contratos principales del marco de MVC se basan en interfaz y se pueden probar mediante objetos ficticios, que son objetos simulados que imitan el comportamiento de objetos reales en la aplicación. Puede hacer una prueba unitaria de la aplicación sin tener que ejecutar los controladores en un proceso de ASP.NET, lo cual hace que las pruebas unitarias sean rápidas y flexibles. Puede usar cualquier marco de pruebas unitarias que sea compatible con .NET Framework.

  • Un marco extensible y conectable. Los componentes del marco de ASP.NET MVC están diseñados para que se puedan reemplazar o personalizar con facilidad. Puede conectar su propio motor de vista, directiva de enrutamiento de URL, serialización de parámetros de método y acción, y otros componentes. El marco de ASP.NET MVC también admite el uso de los modelos de contenedor Inyección de dependencia (DI) e Inversión de control (IOC). DI permite insertar objetos en una clase, en lugar de depender de que la clase cree el propio objeto. IOC especifica que si un objeto requiere otro objeto, el primer objeto debe obtener el segundo objeto de un origen externo como un archivo de configuración. Esto facilita las pruebas.

  • Amplia compatibilidad para el enrutamiento de ASP.NET, un eficaz componente de asignación de direcciones URL que le permite compilar aplicaciones que tienen direcciones URL comprensibles y que admiten búsquedas. Las direcciones URL no tienen que incluir las extensiones de los nombres de archivo y están diseñadas para admitir patrones de nombres de direcciones URL que funcionan bien para la optimización del motor de búsqueda (SEO) y el direccionamiento de transferencia de estado representacional (REST, Representational State Transfer).

  • Compatibilidad para usar el marcado en archivos de marcado de páginas de ASP.NET existentes (archivos .aspx), de controles de usuario (archivos .ascx) y de páginas maestras (archivos .master) como plantillas de vista. Puede usar las características de ASP.NET existentes con el marco de ASP.NET MVC, tales como páginas maestras anidadas, expresiones en línea (<%= %>), controles de servidor declarativos, plantillas, enlace de datos, localización, etc.

  • Compatibilidad con las características de ASP.NET existentes. ASP.NET MVC le permite usar características, tales como la autenticación de formularios y la autenticación de Windows, la autorización para URL, la pertenencia y los roles, el caching de resultados y datos, la administración de estados de sesión y perfil, el seguimiento de estado, el sistema de configuración y la arquitectura de proveedor.

Publicado en NelsoN. Leave a Comment »

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: