Sistemas de desarrollo web: CMS vs Framework

Sistemas de desarrollo web: CMS vs Framework

Nuestro website puede tener diversas funciones dependiendo de nuestras necesidades: desde ser la tarjeta de presentación de nuestra actividad hasta una forma de interactuar con nuestros clientes. Todo depende del uso que queramos darle y las posibilidades son prácticamente infinitas.

Actualmente una de las formas más práctica y rápida de crear una web pasa por el uso de los CMS (Content Manage System), como WordPress o Drupal, aunque existe la posibilidad de utilizar Framewoks como Symfony para realizar aplicaciones web más complejas.

Es importante que decidamos correctamente el sistema que vamos a utilizar para que nos proporcione todas las características que le vamos a demandar a la vez que nos permita expandir nuestro site sin tener que volver a empezar desde cero.

A continuación exponemos algunos de los CMS y Frameworks más utilizados en la actualidad. Pero antes, definamos brevemente qué significan estos términos:

  • Un CMS (Content Management System) es una aplicación ya desarrollada y orientada a gestionar contenido de una forma específica. Normalmente permiten añadir “templates” y “plugins” o módulos de forma sencilla y con un desarrollo bajo un framework El desarrollo suele ser más ágil con un CMS que con el uso de un framework.
  • Los Frameworks son esquemas de desarrollo que se pueden componer de un patrón y diferentes herramientas que facilitan el desarrollo. Generalmente se utilizan para crear herramientas muy específicas ya que permiten un desarrollo mucho más libre que los CMS.

Dentro de los CMS y Frameworks más utilizados hoy en día nos podemos encontrar los siguientes:

WordPress

Nació como un sistema de blogs que se ha estandarizado hasta convertirse en el CMS de blogs más popular del momento. Cuenta con una gran variedad de plugins y templates de terceros y se pueden crear contenidos estáticos de forma fácil. Tiene algunas limitaciones como el soporte de idiomas o la gestión de diferente tipo de contenido que se puede resolver con módulos de terceros.

Drupal

Es un CMS mucho más potente que WordPress. A diferencia de este último no está orientado a los blogs si no que se puede utilizar para mostrar contenido y formularios de cualquier tipo de forma sencilla. También cuenta con una amplia variedad de templates y módulos de terceros.

Joomla

Es otro CMS similar a Drupal aunque cuenta con más popularidad que este. Su administración y gestión está pensada más hacia un usuario final en contra a como está planteado Drupal que es más orientado hacia programadores.

Magento

Es una plataforma para desarrollo de e-commerce que se basa en Zend Framework y que es muy popular hoy en día. Es tan potente como compleja aunque cuenta con muchos desarrollos de terceros que permiten ampliar sus características con poca programación.

Prestashop

Al igual que Magento, nos encontramos en una plataforma de e-commerce aunque con una gestión y posibilidades más modestas. La robustez de la plataforma es algo inferior lo que le permite ser usada más fácilmente por usuarios “no programadores”.

Symfony

El sistema de desarrollo en PHP que está de moda actualmente. Nos encontramos ante un framework robusto que se nutre de otros desarrollos conocidos como “composer”, “doctrine” o “twig” para funcionar. Es la mejor opción actualmente cuando se necesita desarrollar una aplicación específica y los CMS comentados no lo pueden solucionar.

AngularJS

Un sistema de desarrollo orientado a Javascript con lo que la programación se ejecuta en el lado del cliente en lugar del servidor, como sucede cuando se programa en un lenguaje como PHP. Este framework permite crear aplicaciones dinámicas muy fácilmente aunque normalmente necesitará de una API que gestione las peticiones a la base de datos.

La definición de cada uno de los sistemas ha sido muy breve por cuestiones lógicas de tamaño en este artículo pero más adelante iremos introduciendo cada uno de estos sistemas con más detalle y comparándolos con los demás.

También hablaremos de las valoraciones que debemos hacer a la hora de escoger un framework entre aquellos que nos permitan construir la aplicación que necesitamos.

Algunos de los aspectos que trataremos son la seguridad, robustez, soporte multi-lenguaje, recursos necesarios o complejidad de desarrollo.