¿Por qué esta serie?
La semana pasada me surgió la necesidad de hacer un sistema de gestión de eventos para el DotNetClub del que formo parte y, aprovechando que lo estábamos estudando en la carrera, decidí emplear el patrón Modelo-Vista-Controlador (MVC).
El problema era que no me decidía si desarrollarlo en ASP.net o en Ruby on Rails, así que se me ha ocurrido hacer una pequeña implementación de la misma interfaz en los dos modelos para ver las diferencias, y ya que estaba, compartirlo con vosotros.
Como en un solo artículo es imposible dar siquiera una primera aproximación a cada una de las herramientas, lo hemos dividido en una serie, titulada Monográfico MVC.
A lo largo de esta serie, veremos cómo partiendo de un diseño básico, podemos agregar la lógica MVC, y apreciar las diferencias entre dos tecnologías concretas, y muy diferentes:
- Ruby on Rails
- ASP.net MVC3
Comencemos pues la introducción al patrón MVC.
Introducción: ¿Qué es MVC?
De acuerdo con la definición de Wikipedia es:
Patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos.
Esto significa que tendremos tres componentes principales en nuestra aplicación:
Modelo
El modelo lo podemos ver como la base de datos, o el sistema relacional que controla cómo se leen y se guardan los datos, así como cierta lógica de validación y relaciones entre ellos (Lo podemos llamar modelo relacional, si estamos trabajando con bases de datos)
Vista
La vista es lo que se muestra al usuario o a un servicio web, es decir, una vista puede ser una página HTML para que el usuario acceda a los datos, una interfaz en Silverlight, o incluso un fichero XML que se consuma desde un programa externo.
Controlador
El controlador es el enlace entre la vista y el modelo, se encarga de recibir los eventos desde la vista (por ejemplo un botón “Enviar” de un formulario o de un cuadro de login) y de exponer a la vista los datos desde el modelo.
Este modelo no es nuevo, sino que fue introducido en 1987 en el lenguaje de programación SmallTalk, si quereis echar un vistazo a la especificación original, la podeis encontrar aquí: http://st-www.cs.illinois.edu/users/smarch/st-docs/mvc.html
Con el auge de las aplicaciones web, se ha demostrado ser un modo de programación que encaja bastante bien con internet, siendo tanto el modelo y el controlador ejecutados del lado del servidor, y la vista ejecutada del lado del cliente.
Diseño inicial
Para poder centrarnos en los diferentes sistemas y no centrarnos tanto en el diseño, partimos de un diseño HTML ya construido que contiene dos páginas:
- Lista de eventos
- Ventana de detalles
La lista de eventos contendrá la fecha, el título del evento, el ponente y una descripción.
La ventana de detalles contendrá, además, el edificio, el aula, y la hora, así como dos opciones para editar y/o borrar el evento.
Visto este diseño podemos extraer el conjunto de datos necesario, y su tipo:
- Id: Integer
- Titulo: String
- Fecha: Date
- Edificio: String
- Ponente: String
- Descripcion: String
A partir de este diseño, y usando técnicas de scaffolding, comprobaremos lo sencillo que puede ser empezar a trabajar.
En la próxima entrega veremos cómo agregamos lógica a esta web usando el primero de los jugadores: Ruby on Rails.
¡Nos vemos en la próxima publicación!
Related posts: