In questi giorni ho avuto l'occasione di realizzare un sito (di 
cui appena possibile fornirò il link), utilizzando il CMS open source Umbraco. 
Il primo impatto con il CMS non è dei più felici. Di primo acchito, pur se molto 
curato esteticamente nell'interfaccia da l'impressinone di essere un po' 
instabile e soprattutto complesso e di difficile uso. Ma si tratta solo di una 
impressione, infatti approfondendo la conoscenza per mezzo dei video presenti 
sul sito del CMS (http://www.umbraco.org) 
in breve si intuisce da che parte iniziare e come strutturare le cose perchè 
funzionino bene. L'instabilità poi, pur essendo presente in qualche caso, si 
concretizza esclusivamente in qualche errore javascript nella parte di 
amministrazione mentre, quello che conta veramente, ovvero l'engine di front-end 
pare davvero solido come una roccia. Nonostante l'interfaccia manchi di qualche 
traduzione dal danese all'inglese, la cosa non da alcuna noia, ma porta alla uce 
quelli su ci si sono concentrati gli autori e quello che hanno preferito 
tralasciare, almeno per ora.
Umbraco è un software open source danese, giunto alla versione 
2.0 e in procinto di uscire con la 2.1, che ha dalla sua parte soprattutto la 
flessibilità che permette di realizzare facilmente dei siti i cui contenuti 
siano personalizzabili dal cliente stesso. Il CMS permette di definire e 
organizzare dei documenttype. Un documenttype è a tutti gli effetti un 
contenitore di dati di qualunque genere, che può avere un output generato 
dall'applicazione di uno o più template annidati gli uni negli altri. Per 
intenderci, se dovete definire una pagina del vostro sito, questa sarà basata su 
un documenttype e i vari dati potranno contenere il titolo, piuttosto che un 
testo o un'immagine che appare nella stessa. Si potrà così definire un 
documenttype per l'home page, uno per le pagine istituzionali, uno per quelle 
dei prodotti e poi creare le istanze che saranno organizzate in un albero di 
navigazione gerarchico. Poi si potranno definire dei template, che saranno 
utilizzati dai documenttype per generare l'output della pagina stessa. Nel mio 
caso, un primo template conteneva la parte di head, con tutte le definizioni 
degli stili comuni a tutte le pagine, fino al tag body compreso, al cui interno 
vengono inseriti i template figlio. Poi altri template derivano da questo 
defininendo varie tipologie di pagine all'interno delle quali possono essere 
inseriti i contenuti provenienti dal documenttype.
Tutto ciò può sembrare complesso, ma vi assicuro che dopo un 
po' vi apparirà talmente naturale da chiedervi come facevate a lavorare prima. 
Ma se fosse tutto qua probabilmente non varrebbe la pena di usare Umbraco, ma se 
si considera la possibilità di scrivere delle macro basate su xsl che generano 
dei contenuti dinamici sulla base dei dati presenti nei documenttype o della 
struttura gerarchica del sito, la cosa assume un altro aspetto. Personalmente ho 
realizzato per intero il motore di news del sito web usando esclusivamente le 
macro e organizzando opportunemente dei documenttype in un nodo appositamente 
creato per questo scopo. L'utente è così in grado di creare nuove news 
aggiungendo nodi figlio ad esso e così facendo pubblicare nuovi contenuti. Un 
documenttype infatti non è necessariamente una pagina, ma può essere anche una 
porzione di essa oppure un link o ancora una notizia da mostrare in un elenco 
cronologico. 
Ho lavorato per un tempo equivalente a circa 5 giorni 
ottenendo dei risultati interessanti nonostante la mia scarsa conoscenza dello 
strumento. Mentre usavo Umbraco mi rendevo conto con piacere delle sue 
potenzialità ma allo stesso tempo anche del fatto che ne nasconde molte altre 
che non ho avuto tempo di scoprire. Umbraco ha solamente due difetti: non 
supporta il multilingua direttamente, anche se con un po' di ingegno si può 
aggirare l'ostacolo, come ho fatto io sempre negli stessi 5 giorni. L'alto 
difetto e che la sua documentazione è praticamente inesistente. C'è un forum da 
cui attingere la maggior parte delle informazioni, alcuni whitepaper nel sito, e 
un paio di video che alla fine si rivelano la maggiore fonte di informazioni. Il 
wiki è praticamente deserto, mentre non c'è traccia di documentazione ufficiale, 
nemmeno in lingua danese.
La mia impressione finale è che pur se ancora non del tutto 
esaustivo, Umbraco è un software da prendere in seria considerazione per 
realizzare siti di piccole o medie dimensioni, mentre non è certo adatto per 
portali e super-siti che richiedono il trattamento di una mole enorme di 
pubblicazioni. Umbraco è fatto per semplificare la vita allo sviluppatore e al 
cliente che non vuole dover chiamare il proprio fornitore ogniqualvolta debba 
aggiornare l'indirizzo nella home-page. Lo fa bene e con arguzia. Se poi si 
vuole fare qualcosa di più complesso si può estendere con usercontrols e macro 
scritte in ognuno dei linguaggi CLR-compliant. Usando questi ultimi si può 
arrivare anche a fare un piccolo sito di e-commerce affiancando un backoffice 
tradizionale per i prodotti e tutto quello che vi gira intorno. Sul sito di 
Umbraco si trovano anche delle estensioni adatte a questo scopo. Personalmente 
userò Umbraco il pù possibile, e consiglio anche a chiunque si riconosca nel 
target che ho descritto a fare lo stesso. Non mancheranno le 
soddisfazioni.