
State pensando di utilizzare un CMS in .NET? Volete utilizzare Umbraco per creare il vostro sito dinamico? Non ve lo consiglio e vi spiego il perchè.
Anni fa, durante un lavoro di analisi sui CMS .NET open-source, ho avuto l'occasione di analizzare Umbraco e dopo averlo installato, dopo appena 10 minuti, l'ho subito escluso dalla lista dei possibili cms da usare per eventuali clienti. Nelle ultime settimane lo stiamo utilizzando per la creazione di un grosso portale e le mie considerazioni fatte negli anni scorso non sono affatto cambiate, anzi si sono rinforzate!
IT IS NOT CMS FRIENDLY!
Al contrario di quanto dicono, è un CMS complicato da utilizzare, è più indirizzato a sviluppatori .NET e non agli utenti finali. Muoversi nel backoffice non è affatto semplice e capire quale è l'iter da seguire per creare le pagine diventa dispensioso in termini di tempo se non te lo spiega qualcun'altro. E' da tenere molto in considerazione la formazione informatica dell'utente finale che più delle volte è un libero professionista che fa tutt'altro di mestiere.
Infatti Umbraco ti obbliga ad eseguire diversi passaggi prima di creare una semplice pagina:
- bisogna creare come prima cosa un Document Type ossia un documento dove andare ad inserire tutte le proprietà da rendere dinamiche e che devono essere ereditate dalla pagine;
- poi associare ad esso uno o più templates (una master page in sostanza) dove inserire il codice html (o meglio aspx);
- poi bisognerà creare un contenuto che utilizzi quel document type e quel template che rappresenterà la nostra pagina;
- se vi serve una dropdown list con dei dati da far selezionare all'utente dovrete creare un nuovo Data type partendo da una drop down già esistente.
E' vero che queste operazioni si dovrebbero fare una sola volta ma bisogna tener presente che se io cancello un data type già collegato ad un documento e quindi usato come contenuto... si spacca tutto! Quindi occhio agli aggiornamenti!
Attenzione a non confondersi! Umbraco non lavora con file e cartelle! I contenuti sono solo nodi annidati da una relazione padre-figlio nel database. Quindi da non confondere le icone delle cartelle con delle vere e proprie cartelle fisiche.
E i css?
Non esiste un editor interno, i css vengono gestiti come files esterni da collegare ai templates.
E le immagini?
Non si ha modo di importarle senza l'ausilio di plugin (che neanche funzionano bene). Esiste una gestione delle immagini nella cartella Media ma qui conviene inserire solo le immagini che possono essere condivise dagli utenti ed inserite tramite gli html editor.
E il multi-lingua?
Gestione pessima che non permette di collegare semplicemente un traduttore automatico e non ci sono plugin ad hoc per farlo. Io ho creato un event handler che ad ogni pubblicazione duplica il contenuto nelle altre lingue facendolo tradurre prima a Bing translator tramite un web service.
La parte positiva è la gestione di multi-domini che permette di assegnare ad una singola root di contenuti il dominio corrispondente con gli alias hostname. Ma anche qui attenti a due cose:
- se volete gestirvi le diverse lingue sullo stesso dominio (tipo www.miosito.it/en/) diventa complesso farlo funzionare e complicato gestirlo nel caso di grossi progetti. Purtroppo tutti i consigli trovati sul forum non mi sono serviti, non sono riuscito a farlo funzionare; meglio lavorare su diversi domini (www.miosito.com) o terzi livelli (english.miosito.it);
- prima di cancellare un nodo dove c'è un dominio assegnato, ricordatevi di rimuovere prima il dominio (sempre tramite alias hostname) e procedere poi con la cancellazione, altrimenti il sistema va in tilt e non vi permetterà di utilizzare quel dominio su altri nodi. Per risolvere bisogna andare a ripulire il dato sul database.
NON E' UN VERO OPEN SOURCE!
"Ma come, ci sono i sorgenti" direste voi!
Vero, ma il fatto di rilasciare i sorgenti per me non vuol dire essere "open". Infatti, se:
- non c'è molta documentazione valida, sia per utenti che per gli sviluppatori;
- non c'è una community organizzata che sa dare risposte concrete ai suoi utenti (c'è un forum dove ci sono tante domande e poche risposte).
- la maggior parte dei plugin utili (o meglio, packages) sono compilati e non rilasciano i sorgenti (a meno che non paghi...);
- i video tutorial più interessanti (umbraco-tv) sono a pagamento (19 € al mese) e non fanno altro che mostrarti come funziona il cms;
- il supporto costa un bel pò (si arriva finoa 2000 €)
...per me, questo NON E' OPEN SOURCE!
D'altronde, sono rari i prodotti Microsoft che hanno una bella community dietro paragonabile a Wordpress o Joomla e sarà per questo che il settore web del colosso di Redmond è più orientato ai professionisti.
Dimenticavo: se cercate argomenti in italiano, gli sviluppatori della community di umbracoitalia.org sono momentaneamente assenti o non pervenuti!
POCHI PLUGIN (PACKAGES) E TANTI PROBLEMI!
Scordatevi tutti i plugin presenti su Wordpress, qui la lista è molto più limitata. E non pensate che basti installarli per farli funzionare: i packages di Umbraco "potrebbero" essere installati on-fly dalla sezione Developer, peccato che il più delle volte il sistema non funziona e vi lascia la sua bella schermata gialla di errore.
Come fare allora?
Bisogna scaricare il plugin in locale dal repository e provare ad installarlo, incrociando tutte le dita, piedi inclusi. Perchè potrebbe andarti anche bene ma molte volte non riesce a salvarti tutti i files nelle cartelle giuste e, salvandoteli solo in parte, ti impedisce di reinstallarlo!
Per risolvere?
Se non è un problema sistemistico di permessi, armarsi di pazienza, tanta pazienza, e cercare nei forum come metterlo a posto!
PREGI?
Unico aspetto interessante per me è l'utilizzo di Script RAZOR.
Razor è un implementazione di Microsoft che permette di scrivere in un solo script sia la parte di design (html) e sia la parte di code-behind (c#); questo in Umbraco evita di creare diverse User Controls per ogni minima implementazione dinamica scrivendo semplici script.
Al primo avvio, Umbraco si carica in cache tutta la struttura nodi e contenuti attraverso un file xml. Questo da un punto di vista può essere un vantaggio poichè si può continuare a lavorare sui contenuti nel back-office senza rallentare le prestazioni nel front-end (la cache scade solo in caso di pubblicazione dei contenuti) ma da altro canto se le informazioni gestite sono tante il file xml di cache diventa troppo pesante poichè include tutti, html area comprese, i dati presenti nel database e la loro relazione.
In conclusione posso dire che è un CMS adatto agli sviluppatori con un bel background tecnico sulle tecnologie .NET ed è da utlizzare solo nel caso di semplici applicativi. In caso di grandi applicativi assicuratevi di avere una buona struttura sistemistica con hosting dedicato perchè ad ogni crash dovrete essere in grado di agire su files, cartelle e su configurazione IIS.
Ovviamente queste sono solo mie opinioni e considerazioni scaturite dopo alcune settimane di lavoro con Umbraco, quindi prendetele come tali e che nessuno si offenda!
Prima che me lo chiedete: io ci lavoro non per mia scelta, per questo progetto e cliente avrei preferito fare un CMS ad hoc dato che le variabili sono molteplici. Ma questa è la dura vita del programmatore!
Libri consigliati per approfondire l'argomento
21707b18-3b15-4fd6-841e-855f7e1f1391|1|5.0