MVC: ventajas e inconvenientes

Ahora mismo estoy en plena efervescencia con el tema MVC. Como friki de la programación que soy, desde hace casi 20 años, siempre he intentado mantenerme en la ola, aunque a veces resulta muy complicado (creo que ya he perdido el tren de Python y Ruby, por poner unos casos), pero aún así hay que estar ahí. En el tema de MVC he intentado ponerme al día enseguida, pero no ha sido nada fácil.

Mi entorno de programación principal es .NET, y claro, se ha puesto de moda usar MVC en la programación orientada a web. Pero hay un problema: yo aún trabajo con la versión 2 de .NET y sólo han sacado una versión de MVC para la 3.5, con lo que mi gozo en un pozo… O no. Cansado de estar dependiendo siempre de las multinacionales, me he montado mi propio tinglado MVC para la versión 2 basándome en el framework CodeIgniter, un sistema sencillo desarrollado para PHP con el que he realizado algunos trabajos. Aún está en fase de pruebas (lo he llamado DOTMVC) y hasta que no esté bien rematadito no quiero publicarlo, pero supongo que lo haré, en algún momento.

Volviendo al tema principal, el MVC, para los que no estén al loro, significa Model-View-Controller, es decir, Modelo-Vista-Controlador. Este patrón de programación es antiguo, pero se está imponiendo con fuerza en el desarrollo web porque, reconozcámoslo todos los que estamos en este negocio, es una casa putas. Microsoft había intentado imponer un nuevo estilo con ASP.NET, y aunque reconozco que me gusta mucho, tiene muchas deficiencias en lo que a rendimiento y velocidad se refiere. De hecho intentaron algo parecido en Java (a pesar de tener Struts o Spring, un MVC también). Existen varios frameworks para distintos entornos y todos contentos… Pero por mucho que se ponga algo de moda, hay que entender las cosas.

Las ventajas de MVC son obvias: fácil y flexible estructuración del código, “separación de poderes” (datos, implementación e interfaz) rígida y si el framework está bien hecho, seguridad y ayuda para el programador. Pero también me he ido encontrando con problemas que son en realidad estructurales y dependen también del framework que se use, como es renovar completamente lo que se entiende por página web conceptualmente hablando, acostumbrarse a usar Ajax por un tubo (lo que no es un problema realmente, pero no hay costumbre), hacerse a la idea de montar aplicaciones “ricas” (en el cliente) y otras consideraciones más técnicas que problemas reales, pero que afectan en gran medida al desarrollo como tal.

Mi consideración en general sobre todo esto es que está muy bien y lo voy a seguir usando. De hecho, con lo que me he montado en plan MVC he conseguido que todo funcione al menos el doble de rápido que con las páginas ASPX tradicionales de ASP.NET, lo que está genial, y en realidad es una consecuencia lógica de librarse del montón de morralla de módulos y demás historias de las páginas ASPX. Eso sí, hecho de menos los controles de servidor, pero alguna desventaja tenía que tener…

Anuncios

  1. ¿.Net o Mono? jiji , sé que usan la misma tecnología, C# y el CLI, pero creo que es conveniente ceñirse a lo que es realmente común entre los dos sistemas para que tu framework MVC sea realmente útil y usable en ambos entornos.

    Ánimos con el proyecto.

    • En estos momentos el proyecto sólo usa el sistema subyacente de ASP.NET (es decir, cosas como los objetos de sesión, aplicación y poco más). Es decir, se supone que Mono debería soportarlo sin problemas. No lo he probado porque nunca he conseguido hacer funcionar ASP.NET en Mono, pero bueno, será cuestión de intentarlo one more time…

      De momento el proyecto es algo interno y que estoy usando de una forma personal. Cuando lo vea suficientemente maduro (al menos usable en proyectos en general), lo publicaré. De momento aún estoy subsanando cuestiones diversas aunque menores. Hasta ahora no he visto nada semejante en Internet, pero bueno, de aquí a que lo saque quien sabe…

  2. Por cierto, Mono en su versión 2.4 ya incluye el MVC de ASP.NET (gratuíto y realmente multiplataforma)

    Para trabajar con Mono también puedes usar MonoDevelop… sí, sé que VS es la caña y muy difícil de superar, pero siendo sinceros con nosotros mismos, la mayoría de gente no utiliza la mayoría de características y a cambio está atada a una tecnología propietaria.

    • Llevo años trabajando con el VS y debo decir que estoy muy contento en términos generales. Uso muchas de sus características y si me dices que cambie ahora me haces un hijo de madera… XD Además, el MonoDevelop es sólo para sistemas Unix que yo sepa, y de momento en lo que se refiere a escritorio prefiero quedarme en Windows, pero ya veremos más adelante.






A %d blogueros les gusta esto: