Son muchos conceptos los que intervienen en el desarrollo de aplicaciones web, y no siempre todos los componentes del equipo de desarrollo compartimos las mismas etiquetas y conceptos. Tanto es así que hemos tenido que crear un glosario común, para así poder mantener una comunicación fluida sabiendo cada uno de lo qué está hablando el otro exactamente, definiendo y delimitando términos.
A la hora de hacer brainstorming, es inaceptable perder tiempo discutiendo qué es o qué no es tal o cual término, y por lo tanto todos los componentes del equipo debemos tener asumidas las mismas definiciones de cada concepto. La importancia y valor de un glosario interno es incalculable.Un error muy común es confundir framework con CMS, y viceversa, aunque existen otros tantos términos cuyas definiciones difícilmente coincidan entre dos personas distintas, a menos que previamente se hayan establecido las definiciones en común. Y es que framework y CMS no son sinónimos, ni mucho menos:
Framewok
Del inglés “marco de trabajo“, es un conjunto de librerías que obligan a trabajar en un patrón de diseño determinado.
Sirven para crear aplicaciones, ya que por sí mismas no tienen ninguna funcionalidad hasta que se desarrolla una aplicación. Un framework es, por tanto, el núcleo de toda aplicación web.
Por ejemplo, un framework es
Zend Framework o
Symphony, con librerías de todo tipo (envío de emails, lectura y generación de RSS, acceso a base de datos, etc) que además imponen un patrón de diseño: MVC, cada uno a su manera.
Un framework también podría ser, por ejemplo, el que incorpora Wordpress, con el que se podrían desarrollar aplicaciones totalmente distintas a una aplicación de gestión de artículos de un blog (lo que es Wordrpess). Aunque realmente no es aconsejable, ya que el framework de Wordpress se hizo pensando únicamente en gestión de blogs y en el rendimiento, no en ser tan abierto como para poder desarrollar cualquier tipo de aplicación, y por lo tanto cualquier otro framework siempre es una mejor opción.
CMS
Acrónimo en inglés “Content Management System“, o Sistema Gestor de Contenidos. Es una aplicación web cuya funcionalidad principal es gestionar contenidos.
Dependiendo de los contenidos que gestione tendrá un nombre u otro. Por ejemplo:
Gestiona artículos de una bitácora/blog:
Wordpress, Movable Type, etc.
Gestiona imágenes: una galería de imágenes como
zenphoto.
Gestiona documentos: una intranet
Gestión genérica de contenidos:
Drupal,
Joomla,
Typo3, etc.
Un CMS hará uso siempre de un framework, que normalmente viene incorporado en el propio CMS, es decir, que CMS y framework son el mismo producto (como Drupal o Wordpress, por ejemplo). Aunque es posible desarrollar un CMS usando un framework externo, como es el caso del CMS de Secuoyas, en el que usamos Zend Framework.