MoniMisi Framework y el patrón MVC

El modelo de abstracción de desarrollo MVC viene pegando fuerte en el mundo de los desarrolladores. Para los que todavía no oyeron hablar del patrón Modelo Vista Controlador (MVC) les recomiendo este link.
Confieso que no había escuchado hablar de este concepto mientras desarrollaba el Framework. Sin embargo, al conocerlo, me identifiqué inmediatamente con él, y me di cuenta que, sin saber, lo estaba siguiendo.
Recuerdo el punto de inflexión que me llevó a pensar que todo lo que había hecho y aprendido hasta el momento no servía para nada. Fue cuando un desarrollo, que tenía que ver con la atención al público, de un par de años de trabajo, no logró la performance esperada, la decepción fue enorme.
Había que empezar de cero, pero esta vez deberíamos controlar cada byte que viajaba. Para esto era necesario deshacerse del ViewSatate, del HTML innecesario, y nunca mas hacer un Postback.
No había tiempo de implementar ninguna nueva herramienta y menos de aprenderla. Por suerte ya había estado experimentando con algo de tecnología AJAX y JSON, así que la primera versión salió de manera totalmente artesanal y la performance fue increíble.
Desde ese momento me enamoré de esta idea y me puse a pensar como crear una herramienta que aprovechara todas estas ventajas, y a la vez, no fuera muy diferente de utilizar a lo que estábamos acostumbrados.
He aquí el resultado.

Veamos ahora como MoniMisi Framework se inscribe en el paradigma MVC.

Modelo:
Como ya saben el Framework no se mete con el modelo. O sea, no te obliga a usar uno u otro sistemas para hacerse con los datos. Hoy por hoy solo nos pide un DataAdapter (SQL,Oracle,ODBC, etc.) ya configurado por la regla de negocios deseada. De todas maneras esta funcionalidad se irá ampliando a medida que aparezcan nuevas formas de obtener datos.

Vista:
Es el conjunto de controles desarrollados hasta ahora, excepto el ProveedorDatosServidor, que sirven para crear la interfaz con el usuario.
Estos controles, a diferencia de los clásicos de ASP.Net, no mantienen su estado en el servidor, lo que nos ahorra muchos bytes a la hora de viajar. No quiere decir que no se pueda utilizar los controles clásicos también, siempre que tengamos en cuenta que los eventos de servidor que ellos exponen quedarán obsoletos.
Si bien es bueno conocer algo de Javascript para crear mejores aplicaciones, no es estrictamente necesario, ya que todos los controles cuentan con propiedades y métodos que les permiten adaptarse a las situaciones que comúnmente se presentan. Además están diseñados para interactuar entre si, haciendo que el mantenimiento y creación de páginas sea aún mas fácil.

Controlador:
Es el control ProveedorDatosServidor.
Este control es el encargado de llevar y traer los datos entre cliente y servidor, y adaptarlos de ambos lados. Se buscó que su funcionamiento sea lo mas silencioso posible, que el desarrollador se olvide de como y cuando viajan los datos. Simplemente deberá proveer y consumir los datos de ambos lados sin preocuparse por la performance y/o adaptación.

He visto algunas herramientas que siguen este patrón. Todas tienen sus ventajas y desventajas.
Lo que puedo decir a favor de MoniMisi Framework es que puede ser una herramienta muy útil para desarrollar aplicaciones siguiendo el paradigma MVC, y que no necesita demasiado tiempo de aprendizaje para desarrolladores que vienen de trabajar con WebForms tradicionales.
Por último, si tuviera que convencer a alguien para que haga el esfuerzo de cambiar su manera de pensar para hacer uso de esta tecnología, le diría: Si buscas resultados distintos, no hagas siempre lo mismo. Albert Einstein.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

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