miércoles, junio 18, 2008

Framework o CMS ?

El desarrollo de aplicaciones web (y muchas veces software standalone) conlleva frecuentemente a diseñar y escribir componentes de software que se usan regularmente. Muchas aplicaciones requieren de autenticación de usuarios, permisos, registro, diseño, etc., y es muy engorroso tener que escribir código para soportar cada una de estas funcionalidades en cada desarrollo realizado. Los frameworks (por ejemplo Symphony) reducen mucho el trabajo en este sentido, pero en muchas ocasiones no lo suficiente para hacer un desarrollo de manera sencilla y rápida.

Hace poco, realicé una pequeña aplicación (aunque al final quedó incompleta (que lo diga Erwin y Pachito)) y dentro de los requerimientos del cliente figuraba el manejo de roles de usuario y permisos para el acceso a distintas partes del aplicativo. Desde luego se habían planteado muchas otras funcionalidades, pero menciono ésta, debido a que me permitió empezar a mirar hacia el lado de los CMS's y terminar por inciinarme por uno de ellos, como mi plataforma de desarrollo.

Tengo algo de experiencia en el desarrollo de aplicaciones con varios CMS, como Xoops y PHPWebsite y por ello me incliné finalmente por escoger un CMS en vez de un Framework para iniciar el desarrollo de la aplicación. La principal razón (aunque reconozco que está muy ligada al caso de estudio) es que el CMS, me provee una infraestructura de autenticación, autorización y de permisos muy buena y sencilla de implementar (aunque eso depende del CMS), lo cual me ahorró bastante tiempo de diseño y desarrollo. Después de revisar varias opciones y dado que necesitaba que el CMS tuviera soporte para base de datos PostgreSQL, me inciiné finalmente por Drupal.

Por qué Drupal ?


Las razones son sencillas:

  • Una gran API y bien documentada
  • Infraestructura de autenticación y permisos sencilla de implementar.
  • Desarrollo activo
  • Bastantes módulos disponibles y temas
  • Código claro
  • Capa de abstracción de bases de datos muy sencilla.
Entre otras razones. Mientras con el Framework, debía preocuparme por construir los componentes para manejo de permisos y sesiones de usuario, con Drupal, simplemente definó los niveles de acceso y listo, un par de clicks y ya estuvo. Mediante un método sencillo:

function modulo_perm() {

return array('reglas de acceso');

}

Y la creación de roles, fué aún más sencillo. A través del panel de administración de usuarios, su definición es muy sencilla. En resumen:

Tiempo de implementación en CMS: 1 horas
Tiempor con el Framework: 5 Horas (aprox.)

Desde luego, que mediante un framework se puede hacer reutilización de muchos componentes, pero por lo menos Drupal, la funcionalidad que ofrece el API es enorme.

En conclusión, para próximos desarrollos pienso utilizar Drupal; de hecho ahora construyo un módulo para manejo de conferencias y sencillamente ha sido muy fácil. Como punto adicional, con un CMS, el manejo de presentación se controla mediante themes, fácilmente personalizables y que puede modificar hasta un desarrollador.

No hay comentarios.: