No estoy completamente seguro de cuál es la diferencia entre CMS y un lenguaje de fondo + base de datos.

Puedes usar un CMS. WordPress es bastante popular.

Pero use un servicio que administre WordPress por usted y lo mantenga seguro. De lo contrario, es un trabajo a tiempo completo que puede incluir actualizaciones de parches de emergencia durante el fin de semana o, alternativamente, una restauración de emergencia desde la copia de seguridad después de que el sitio ha sido pirateado.

Dejé de usar un CMS y comencé a usar la generación de sitios estáticos. Escribí un artículo sobre los problemas que he visto [1], pero en resumen mi sitio murió sin ninguna razón que pudiera detectar y no me di cuenta por un tiempo.

He ayudado a las personas a mantener sitios CMS, pero nunca más. No vale la pena. Y entre la existencia de grandes generadores de sitios estáticos como Jekyll • Sitios estáticos, sencillos, conscientes de los blogs y Un motor de sitios web estático rápido y moderno, y servicios como Forestry.io que le permiten editar su sitio como un CMS, personalmente creo que El 85% de casos de uso para un CMS ya no vale la pena.

Sin mencionar el rendimiento. Aloje un sitio de WordPress sin hacer toda la optimización y almacenamiento en caché del sitio, y podría ser 100 veces más lento que alojar un sitio estático. Hospede en Amazon S3 + CloudFront y estará listo para escalar a cargas extremas.

Si ve mi sitio, tiene páginas de índice de etiquetas, páginas de archivo y comentarios asociados con cada entrada de blog. Si necesita algo más dinámico, puede usar un marco moderno como Angular y obtener datos de un servicio como Google Firebase.

Como escribí en mi blog, creo que la edad del CMS está muerta. ¡Viva la generación de sitios estáticos y JAMStack!

Notas al pie

[1] Drupal está muerto; Larga vida a la generación de sitios estáticos · RealMensch

Los CMS están diseñados para ser utilizados por no desarrolladores .

Eso significa:

  • Contienen mucha terminología específica de CMS. Lo cual puede ser bastante extraño para un desarrollador profesional. Drupal es una bestia muy diferente a cualquier marco MVC (independiente del lenguaje)
  • Contienen la mayor parte de la configuración a través de la interfaz de usuario web. Cuál es, la forma más horrible de configurar algo. Debido a que no hay control de versiones, no se ve todo junto, no hay forma de serializar y producir en masa estas configuraciones
  • Son terriblemente no flexibles. Y si desea que su CMS sea flexible, debe aprender a trabajar con él a nivel de código. En este punto, un marco es diez veces mejor, porque está diseñado para ampliarse con código personalizado. (Manejará el esquema, las migraciones o lo que sea por usted)
  • Son lentos Sí, la aplicación específica de dominio es más rápida que el CMS de propósito general que existe.

Descubrí que Django Admin + milagros de trabajo front-end / aplicación personalizados .

  1. Es tan rápido de configurar como un CMS (15–20 minutos para escribir sus modelos y ya está listo)
  2. Maneja casi todo lo que CRUD necesita fuera de la caja. (Eso es increíble, odio escribir CRUD)
  3. Es lo más flexible posible. (A veces, incluso puede deshacerse de todo el manejo de Django ORM y trabajar con la base de datos a nivel de aplicación) Buena suerte con eso con los CMS

Un CMS utiliza un lenguaje de fondo y una base de datos para ofrecer su funcionalidad.

Digamos que tiene ese sitio web y desea agregar nuevas páginas. Ya ha decidido que agregar un nuevo archivo HTML para cada página es demasiado engorroso, por lo que ha decidido utilizar una base de datos para almacenar la información de la página y un poco de lenguaje de fondo para consultar y mostrar eso.

Ahora podría escribir todo el código para eso, y luego ingresar y escribir manualmente instrucciones de inserción o utilizar algo como PHPmyadmin para agregar contenido. Pero, eso también parece muy contrario a la intuición. Entonces, en su lugar, escribe un pequeño formulario protegido de inicio de sesión que le permite ingresar en el contenido de la página y almacenarlo en la base de datos para una recuperación más fácil. También puede agregar la capacidad de retirar y editar publicaciones en esa misma área.

¡Felicitaciones, acaba de construir un CMS muy simple! Eso es todo lo que es un CMS en su núcleo, una aplicación que abstrae ese código y la lógica de la base de datos, dejándote con una manera simple de agregar y editar publicaciones. Muchos de los CMS de hoy en día tienen muchas otras características, como tipos de publicaciones, varios complementos y permisos de usuario, pero en esencia, la función principal es simplemente el proceso de almacenamiento de contenido más fácil.

Bien podría usar el idioma que elija para corregir y leer en una base de datos. Pero apuesto a que después de un tiempo de hacerlo, naturalmente evolucionará su proceso en una especie de CMS.

La principal diferencia es que el CMS ya está escrito para usted.

Elige el CMS. WordPress es un comienzo decente en muchos casos.

El caso de uso que describe es lo que hace un CMS.

Ciertamente puede hacerlo utilizando un lenguaje de fondo y una base de datos. Pero terminarás escribiendo tu propio CMS. Por ejemplo, WordPress es el lenguaje backend PHP con una base de datos MySQL. Nada mas. Pero tiene cientos de miles de líneas de PHP, JavaScript, html y CSS ya escritas, probadas, depuradas y aseguradas para usted.

Pero hay momentos para construir el tuyo.

Actualmente trabajo para AutoTraderUK, en un equipo que ejecuta un CMS personalizado. Utiliza Java, html5, JavaScript, css, Apache SOLR y Spring para realizar un CMS único. Es mejor para nuestro propósito que cualquier CMS existente, ya que está diseñado para nuestros usuarios de manera muy precisa.

Igualmente, personalmente tengo un blog de aficionados Learn Rock Worship Guitar que es solo WordPress y algunos complementos. Es una plataforma muy efectiva y ahorra muchos años de tiempo de desarrollo.

Las alternativas a WordPress incluyen Ghost, Drupal y Joomla.

Si puede usar un CMS, le sugiero que lo haga. No tiene sentido reinventar una rueda bastante estándar.

En un sentido tecnológico típico, no hay mucha diferencia entre un CMS y el combo backend language + database. Un CMS no es más que una colección de dichos componentes de lenguaje + base de datos que le ayudan a acelerar su actividad de desarrollo.

CMS es solo un “estándar” (no podría encontrar una palabra mejor, tómalo a la ligera) de idiomas de backend + bases de datos con un conjunto de “características”.

Vea lo que Wikipedia dice al respecto: un sistema de gestión de contenido (CMS) es una aplicación informática que admite la creación y modificación de contenido digital. A menudo se usa para admitir múltiples usuarios que trabajan en un entorno colaborativo.

Si el sistema permite la gestión de contenido, puede llamarlo un CMS y terminar de una vez.

Podrías hacerlo de cualquier manera. Un CMS generalmente es solo una aplicación de fondo que facilita la publicación y administración de contenido.

También podría tener más capacidades integradas como optimizaciones para SEO, enrutamiento, administración de archivos, seguimiento, etc.