¿Qué aporta MVC al desarrollo de aplicaciones Web?

MVC viene del Model, View, Controller y está basado en un patrón de diseño que separa la arquitectura de una aplicación en tres componentes principales: los datos, la interfaz de usuario y la lógica de negocio. ASP.NET MVC nos proporciona una alternativa en el diseño de la aplicación que no sustituye a la arquitectura ASP.NET WebForms tradicional. Además ASP.NET MVC está completamente integrado con las características de ASP.NET, cómo Paginas Maestras, Roles, Autenticación, MemberShip, Cache, etc… De tal forma que podremos combinar ambos patrones MVC y WebForms en nuestras aplicaciones.

Actualmente el Framework para ASP.NET MVC está disponible en la versión 4.0 Developer Preview, permitiendo el desarrollo Web usando el framework 4.0 y Visual Studio 2010 o Visual Web Developer 2010. ASP.NET MVC no viene incluido de serie y debemos descargarlo de forma independiente.

 

Definición de los componentes principales del patrón Modelo-Vista-Controlador:

Modelo: Representa las reglas de negocio de nuestra aplicación. Se encarga de mantener la persistencia de los datos, guardando o recuperando la información independiente de medio utilizado (ficheros XML, bases de datos, etc…).

Vista: Representa los componentes que muestran la interfaz de la aplicación, mostrando la información obtenida a partir del modelo, de manera que el usuario pueda visualizarla. Básicamente las vistas contienen el código de presentación que se va a enviar al navegador.

Controlador: Representa los componentes que se encargan de la interacción del usuario, actuando de intermediario entre el usuario, el modelo y la vista. El controlador recoge las peticiones del usuario, interacciona con el modelo y finalmente selecciona que vista es la adecuada para mostrar los datos en cuestión.

 

¿Qué ventajas nos proporciona ASP.NET MVC?

Separación clara de dónde tiene que ir cada tipo de lógica, facilitando el mantenimiento y la escalabilidad de nuestra aplicación.

Sencillez para crear distintas representaciones de los mismos datos.

Facilidad para la realización de pruebas unitarias de los componentes, así como de aplicar desarrollo guiado por pruebas (Test Driven Development o TDD).

Reutilización de los componentes.

No hay ViewState ni ciclo de vida de las páginas. Con menos peso, menos complejidad.

Motor de Routing asociando una URL concreta con su correspondiente controlador, permitiendo URL semánticas (es decir que tengan la forma “http://servidor/catalogos/sandalias” en lugar de “http://servidor/catalogos/articulos.aspx?familia=sandalias”). Las URL semánticas se indexan mejor en los buscadores, siendo más adecuadas para el posicionamiento web.

Recomendable para el diseño de aplicaciones web compatibles con grandes equipos de desarrolladores y diseñadores web que necesitan gran control sobre el comportamiento de la aplicación.

 

Cómo principal inconveniente hay que tener en cuenta que la distribución de componentes obliga a crear y mantener un mayor número de ficheros.

Recordar que MVC no sustituye a WebForms, simplemente se trata de una alternativa que hay que tener en cuenta según la situación y el tipo de proyecto. No olvidemos que ASP.NET WebForms nos ofrece también un modelo de eventos muy familiar, mantenimiento del estado entre diferentes peticiones, numerosos controles disponibles, etc…

Sobre Jose Andrés Camarasa

Analista programador de aplicaciones en Clavei

2 comentarios
  1. sa
    sa says:

    Hola,
    me gustaría saber qué aporta mvc en el desarrollo de aplicaciones web en ajax? y si podría ser útil uwe para moderlar en una aplicación que use la arquitectura mvc?

    Si alguien puede ayudarme con estas dos preguntas, sería de gran ayuda porque estoy trabajando para el proyecto fin de carrera y llevo unos días atascada en este tema.

    Gracias de antemano

  2. José A. Camarasa
    José A. Camarasa says:

    MVC proporciona las clases Ajax Helpers para el desarrollo con Ajax. Las mismas permiten generar elementos HTML “ajax-enabled”. Todavía no las he usado en arquitectura MVC pero entiendo que sí que serían útiles.

Los comentarios están desactivados.