La sigla CMS è composta dalle iniziali di “Content Management System”, che tradotto significa “Sistema di Gestione dei Contenuti”.
I CMS sono
siti dinamici veri e propri che contengono al loro interno tutti gli strumenti necessari per la creazione, la modifica e la cancellazione dei contenuti di un sito Web.
L'aspetto “dinamico” di questi software è quindi progettato, prima di tutto, per permettere la fruizione di tali strumenti al proprietario del sito.
I risultati prodotti da un CMS possono essere semplici pagine statiche, oppure pagine dinamiche molto più complesse.
Un CMS elementare dovrebbe avere il compito di alleviare le fatiche del Webmaster prima - e del proprietario del sito in seguito - nella gestione dello stesso, presentando strumenti intuitivi che permettano la creazione in automatico di semplici pagine statiche (o a queste assimilabili) senza conoscere nemmeno una riga di codice HTML o di linguaggio di programmazione.
UN CMS più evoluto, oltre a quanto sopra esposto, non solo dovrebbe permettere la costruzione di alcune semplici pagine statiche, ma dovrebbe consentire di organizzare, raggruppare e presentare i contenuti in modi diversi e produrre - a sua volta - pagine dinamiche in grado di mostrare questi contenuti nelle forme richieste dal navigatore.
Un CMS presenta sempre due interfacce.
La prima riguarda tutto il complesso sistema di pannelli che compongono l'area riservata ad accesso esclusivo del Webmaster o del proprietario del sito.
Questa interfaccia è la plancia di comando di tutto il sistema e può essere più o meno complessa a seconda delle funzioni a cui il sito è destinato. Ad esempio, il CMS che governa un semplice sito vetrina di un professionista, potrebbe avere solo i pannelli che permettono la creazione, la modifica e la cancellazione delle pagine; un'area di upload per immagini e documenti ed alcuni semplici strumenti per la gestione della password di accesso.
Se il CMS deve gestire un Blog o un Forum, agli strumenti sopra descritti dovrebbero essere aggiunti i pannelli per la gestione anagrafica delle registrazioni degli utenti e per la moderazione dei vari post.
Se invece il CMS deve gestire un negozio di e-commerce, il numero dei pannelli di controllo aumenta considerevolmente, visto che si rende necessaria una gestione degli articoli, dei prezzi, delle offerte, degli ordini, dei pagamenti e delle spedizioni.
La seconda interfaccia è rappresentata dal sito pubblico e visibile ai navigatori; e comprende sia le pagine informative, che possono essere sia statiche che dinamiche, sia le pagine che interagisco dinamicamente con gli utenti del sito per le varie funzioni (prima registrazione, modifica account, invio post e commenti, carrello, pagamenti, ecc.), che sono necessariamente pagine dinamiche.
I contenuti di tutte le pagine che costituiscono questa seconda interfaccia sono creati e gestiti con tutti gli strumenti messi a disposizione dalla prima.
Questa interfaccia è in genere personalizzata per l'azienda proprietaria del sito e – sempre graficamente - non ha spesso niente a che vedere con l'altra interfaccia che contiene i pannelli di controllo.
Tuttavia, dal punto di vista tecnologico, le due interfacce sono strettamente connesse tra loro per quanto riguarda il codice di programmazione, in quanto spesso condividono tutta o buona parte del codice.
In linea generale, possiamo dire che la difficoltà nella realizzazione di un CMS è tanto maggiore quanto diversa è la varietà dei dati che questo software deve immagazzinare, e quanto è complessa l'interazione che questi dati devono avere nella resa al navigatore.
Più un CMS è evoluto e più facile è la gestione dei contenuti, la modifica di un testo, l'inserimento e la sostituzione di immagini ed elementi grafici.
Un CMS evoluto deve anche permettere una certa libertà e versatilità nella gestione.
A meno che un CMS non sia espressamente progettato per una specifica funzione, imporre un contenitore standard al proprietario del sito per la relativa gestione può rappresentare un grave limite per l'utilizzo di questi sistemi.
Usare un CMS comporta l'accettazione di un compromesso, tanto più lieve da accettare quanto più il software è personalizzato sulla base delle specifiche esigenze del sito...
Esistono centinaia di CMS, sia con
codice propretario, sia
Open Source.
Alcune agenzie Web sviluppano il proprio CMS, molte sono invece specializzate nell'installazione e nella personalizzazione di CMS Open Source. Tra queste ultime, alcune hanno una buona conoscenza di questi prodotti e possono intervenire a livello di codice ottenendo funzioni personalizzate.
Ho costruito il mio primo CMS nel 1997, in linguaggio di programmazione ASP e appoggiandomi ad un database Access. Oggi sono arrivato alla settima versione, realizzata in PHP, HTM5 e Javascript, con base dati MySql.
Questo sito è stato realizzato con il mio CSM e produce pagine dinamiche in PHP che, per esigenze di posizionamento sui Motori di Ricerca e di compatibilità con vecchie versioni di questo sito, vengono magicamente rinominate in ASP...
La scrittura di un CMS è un'esperienza bellissima ma estremamente lunga e difficoltosa.
Scrivere un software molto complesso che è in grado di produrre pagine che a loro volta producono risultati è, per la mia personale esperienza di informatico, il massimo atto creativo.
Oggi, per un programmatore, scrivere un CMS di proprio pugno e di propria iniziativa è veramente un lusso, dati i tempi che servono e la concorrenza impossibile di prodotti Open Source gratuiti, veramente completi e universalmente diffusi.
Tuttavia, conoscere tutti i segreti di un meccanismo così complesso, credo che possa permettere di affrontare qualsiasi problema informatico e possa dare le competenze necessarie per offrire soluzioni con un livello di personalizzazione impossibile da ottenere con altri strumenti.
Con la diffusione capillare di CMS gratuiti e Open Source mi si è posto davanti, già da alcuni anni, il dilemma di scegliere tra due strade: abbandonare la programmazione creativa ed adeguarmi, per motivi economici e commerciali, alla personalizzazione e all'installazione di questi strumenti; oppure alimentare la “fiamma creativa” tuffandomi continuamente in missioni informatiche impossibili...
Ho fatto la mia scelta: sono nato creativo, morirò creativo.