3 luglio 2008  5

BlogEngine.NET 1.4: guida rapida all'aggiornamento

Logo sito BlogEngine.NETIl 29 giugno 2008 è stata rilasciata, forse in maniera un pò inaspettata, la versione 1.4 di BlogEngine.NET. A dire il vero, secondo la roadmap comunicata in precedenza dal team di sviluppo, il rilascio era stato previsto salvo ritardi, già per la fine di maggio. L'evento, quindi non avrebbe dovuto suscitare sorpresa, se non fosse per l'assenza di alcune funzionalità (richieste a gran voce da tempo) che erano state pianificate appunto con la distribuzione ufficiale di questa versione.

Sfortunatamente la delusione maggiore è costituita dalla mancanza della gestione dell'editing commenti che, a tutt'oggi e con ben quattro release alle spalle, rappresenta l'handicap più significativo di un sistema di blog authoring decisamente promettente e che sta raccogliendo un numero sempre maggiore di estimatori in tutto il mondo, Italia compresa.

Senza entrare troppo nei dettagli, per i quali consiglio la lettura dell'articolo dedicato sul sito del progetto, sintetizzo brevemente le funzionalità più rilevanti che sono state introdotte con quest'ultima versione.

  • Un nuovo database provider completamente personalizzabile: in tal modo si potrà scegliere il database preferito su cui appoggiare la registrazione dei dati relativi al blog sia esso Microsoft AccessW, MySQLW, Microsoft SQL ServerW o Express, VistaDB o altro. L'impostazione predefinita resta sempre quella basata su file XMLW.
  • Miglior gestione della sicurezza con un potenziato controllo anti spam sui commenti e la criptazione delle password.
  • Un nuovo modello per la gestione delle estensioni (extensions), del tutto retrocompatibile con il precedente.
  • Supporto ai widgetW nella sidebar con relativa possibilità di drag and drop e gestione parametrica consimile a quella delle estensioni.
  • Supporto al web semantico (web 3.0): ora è possibile gestire i formati SIOC, FOAF e APML in maniera del tutto trasparente per consentire l'autodiscovery, oltre che la propagazione automatica, dei contenuti pubblicati sul proprio blog. Allo stesso modo è stato previsto il supporto ai profili degli autori, utilizzabile all'interno dei documenti FOAF.
  • Altre funzionalità quali il supporto alle sottocategorie, la selezione dei tag dalla lista di quelli già utilizzati durante la scrittura dei post e l'anteprima automatica potenziata durante la scrittura dei commenti.

Grandi assenti, come già detto, la gestione avanzata dei commenti ed il supporto multi-blog.

La procedura di aggiornamento

L'installazione di BlogEngine.NET ex novo è, come sempre, assolutamente immediata e, con quest'ultima relase, ancora più semplice, dato che sono state da subito rimosse alcune impostazioni dal web.config che, con particolari hosting potevano impedire l'avvio immediato dell'applicazione.

Purtroppo la stessa cosa non si può dire per la procedura di aggiornamento da una versione precedente, soprattutto se sono state fatte delle personalizzazioni importanti non solo sul tema, ma anche sulle pagine standard presenti nella root. Discorso a parte merita poi la retrocompatibilità delle estensioni, che affronteremo più avanti e che in futuro meriterà senz'altro un articolo dedicato.

Ad ogni modo consiglio caldamente anche la lettura della guida all'upgrade che è stata realizzata da Al Nyveldt.

Premetto che la procedura descritta assume che si utilizzi come base dati il provider XML di default, quindi non prenderà in considerazione eventuali operazioni da effettuare nel caso in cui sia utilizzato un provider differente.

I passi da seguire sono sostanzialmente i seguenti:

  1. Fare un backup in locale di tutta l'installazione esistente di BlogEngine.NET dal proprio server remoto, prestando particolare attenzione alla cartella App_Data/ (che ospita TUTTI i contenuti e le impostazioni del proprio blog).
  2. Effettuare il download di BlogEngine.NET 1.4 da CodePlex.
  3. Decomprimere il file scaricato in una cartella chiamata BlogEngine (o come meglio preferite, ma da questo momento sarà il path di riferimento per i passi successivi), quindi assicurarsi di rimuovere il flag di sola lettura dalla cartella medesima accertandosi che la modifica venga propagata a tutti i file e cartelle in essa contenuti, per evitare problemi successivi con i privilegi di accesso in fase di esecuzione dell'applicazione.
    La versione 1.4 modifica la gerarchia ed il posizionamento delle cartelle dell'applicazione per cui, per poter fare un aggiornamento corretto, è necessario lavorare direttamente sulla cartella Blogengine appena creata.
  4. La prima cosa da fare è verificare la presenza di cartelle o file aggiunti successivamente alla precedente versione 1.3, in seguito all'installazione di estensioni, file javascriptW o quant'altro. Le cartelle aggiuntive vanno ricreate all'interno della cartella Blogengine appena creata compresi i file in esse contenuti: i file aggiuntivi vanno anch'essi ovviamente copiati nelle posizioni precedenti ma solo se non vanno a sovrascrivere degli omonimi (cosa che non dovrebbe accadere se si tratta di oggetti aggiunti successivamente e non facenti parte del pacchetto di installazione). In questa fase la cartella BlogEngine/App_Data/ non deve essere oggetto di alcuna modifica.
  5. Copiare all'interno della cartella BlogEngine/App_Code/Extensions/ solo le estensioni che sono state aggiunte successivamente e che, comunque, non sono già presenti in essa.
  6. Copiare all'interno della cartella BlogEngine/App_Code/Controls/ solo i controlli che sono stati aggiunti successivamente e che, comunque, non sono già presenti in essa.
  7. Copiare all'interno della cartella BlogEngine/Themes/ la cartella contenente il tema usato dal proprio blog.
  8. Copiare il file /App_Data/users.xml nella cartella BlogEngine/App_Data/ sovrascrivendo l'esistente. Aprire il file users.xml appena copiato e rimuovere da ciascun utente la password reperibile all'interno della coppia di tag <Password>...</Password>; i tag menzionati non dovranno contenere nemmeno spazi e presentarsi quindi nella forma <Password></Password>. Questa operazione è necessaria in quanto la nuova release supporta le password esclusivamente in formato criptato e quindi non le riconoscerebbe impedendovi di effettuare il login. In questo modo sarà possibile effettuare ugualmente tale operazione inserendo il proprio nome utente e la password standard admin.
  9. Copiare il file /App_Data/settings.xml nella cartella BlogEngine/App_Data/ sovrascrivendo l'esistente.

A questo punto si può procedere ad effettuare un primo test in locale dell'installazione effettuata nella cartella BlogEngine, usando ad esempio Visual web Developer Express. Se si verificano dei malfunzionamenti, è necessario controllare che i file copiati siano stati posizionati nelle cartelle corrette e che non si abbia malauguratamente sovrascritto un file esistente. In tal caso effettuare le opportune correzioni.

Eseguire in locale l'applicazione web almeno una volta per consentire alla stessa di ricreare tutti i file di configurazione necessari per ciascuna estensione aggiuntiva installata rispetto a quelle già presenti di default. Inoltre è necessario effettuare il login e modificare la password per ciascun utente che, ricordo, dopo la modifica effettuata al file users.xml, è per tutti admin. Sfortunatamente non è possibile editare gli utenti, per cui è necessario prima rimuoverli e poi ricrearli ex novo con tutti i dati del caso.

E' opportuno notare che, in questa fase, non sono state copiate le cartelle contenute in /App_Data/ relative alle pagine ed ai post (rispettivamente /App_Data/posts/ e /App_Data/pages).

Nonostante la versione 1.4 sia perfettamente compatibile con le estensioni realizzate per le release precedenti, non è in grado di importare eventuali parametri di configurazione necessari per alcune di esse, fatta eccezione per quelli impostati di default via codice tramite le procedure di inizializzazione delle stesse.

In realtà sarebbe possibile inserire a mano questi dati andando a prelevarli dal file /app_data/extensions.xml (che con la 1.4 non è più necessario e pertanto obsoleto) e copiandoli all'interno di ciascun file di configurazione xml dedicato ad ogni estensione e contenuto ora nella cartella BlogEngine/app_data/datastore/extensions. Ogni file prende il nome dalla rispettiva estensione. L'operazione, benchè banale, richiede un minimo di attenzione: il mio consiglio è quello di reinserire i parametri desiderati dal pannello di configurazione di ogni singola estensione per evitare probabili errori durante la modifica dei file.

Una volta effettuata anche questa procedura, è possibile dopo aver nuovamente testato in locale il corretto funzionamento dell'applicazione, procedere al trasferimento della stessa sull'hosting remoto.

Queste le operazioni da seguire:

  1. Eliminare dal proprio spazio web remoto tutti i file e le cartelle contenuti nella root, fatta eccezione per la cartella /App_Data/, il file robots.txt e le eventuali cartelle di sistema (a seconda del hosting utilizzato, ad esempio ARUBA) presenti che NON possono essere eliminate: cgi_bin, aspnet_client, _vti_log, _private, mdb-database, public, images.
  2. Copiare dalla cartella di installazione BlogEngine (precedentemente preparata e sulla quale sono stati i fatti di test di esecuzione in locale) tutte le cartelle ed i files in essa contenuti, fatta eccezione per la cartella /App_Data/ e il file robots.txt.
  3. Copiare da BlogEngine/App_Data/ le cartelle /Data_Store/ e /Profiles/ nella cartella /App_Data/ in remoto.

A questo punto provare ad eseguire l'applicazione in remoto; se non sono stati fatti errori durante le procedure di eliminazione e copia dei file tutto dovrebbe funzionare correttamente. In caso contrario, ripetere ogni singolo passaggio avendo cura di non eliminare mai la cartella /App_Data/.

Considerazioni sui Widget e sulla Widget-bar

Per poter usufruire dei widget e, naturalmente della widget-bar, è necessario modificare il tema utilizzato. Attualmente solo il tema Default ed il tema Indigo sono stati adeguati al proposito (infatti adesso sono gli unici forniti in dotazione con la 1.4).

Al momento non sento la necessità di usare i widget quindi ho deciso di non adeguare ancora il tema usato da questo blog. A breve pubblicherò una guida su come aggiungere tale funzionalità (che è comunque di una semplicità estrema).

Contemporanemente rilascerò le versioni widget dei componenti (controls) che ho già realizzato per l'inserimento in sidebar, i quali sono perfettamente compatibili con la versione 1.4 fatta eccezione probabilmente per la versione estesa di CategoryList.cs di cui non ho verificato la compatibilità per il semplice motivo che è stata cambiata la gestione delle Categorie. Al più presto la aggiornerò di conseguenza.

Considerazioni sulle Estensioni e sull'Anteprima Immediata del commento

Tutte le estensioni che ho rilasciato fin'ora sono perfettamente compatibili con la versione 1.4. Quest'ultima release offre di default una BBCode Toolbar (realizzata da Ruslan Tur) simile a quella rilasciata dal sottoscritto ma hard-coded all'interno dello user control CommentView e direttamente collegata all'estensione BBCode di Mads Kristensen.

Personalmente non ho apprezzato la soluzione adottata e ho preferito continuare ad usare la mia estensione con delle modifiche minimali al codice di CommentView.ascx.

Al tempo stesso ho riscontrato dei bug nella gestione della nuova anteprima immediata in fase di scrittura del commento, sia per quanto riguarda la visualizzazione che nella gestione dei tag HTML. Ho provveduto pertanto a fare delle correzioni al codice.

Chi volesse continuare ad utilizzare la mia estensione BBCode Toolbar ed avere la gestione corretta dell'anteprima immediata può scaricare lo user control CommentView e sostituire i file CommentView.ascx e CommentView.ascx.cs agli originali nella cartella /User controls/ presente nella root del proprio blog.

Considerazioni SEO

La nuova release effettua delle modifiche importanti ai titoli (tag <title></title> all'interno della sezione <head></head>) delle pagine generate, siano esse post o pagine statiche. Mentre infatti prima il tag <title></title> veniva impostato semplicemente con il titolo stesso del post o della pagina, adesso ad esso viene anteposto anche il nome del blog: questa operazione può essere disastrosa dal punto di vista dell'indicizzazione da parte di Google, soprattutto se si ha un nutrito numero di pagine già indicizzate.

Personalmente ho rimosso questa caratteristica, ripristinando quella originaria, solo per la generazione dei post (anche perchè sul mio blog sono pubblicate solo 2 pagine statiche). Consiglio pertanto a tutti di fare altrettanto.

Esprimi il tuo giudizio

Commenti (5) -

Alessandro Rossetto
Alessandro Rossetto
19 apr 2009 alle 15:52  01
Ciao,
  ho letto questo interessante post e siccome hai citato ARUBA come provider, ho pensato che forse potresti aiutarmi a configurare un  Blog con BlogEngine.NET su questo provider.... Non riesco a configurare come Data Storage Provider  SQLite su ARUBA (in locale funziona tutto correttamente..)... per caso hai qualche suggerimento?

Ti ringrazio tanto.

Ciao

Alessandro Rossetto
Cristiano
Cristiano
20 apr 2009 alle 00:23  02
@ Alessandro Rossetto:
Sfortunatamente non ho esperienze dirette di utilizzo di BlogEngine.NET con provider SQLite più Aruba, ma so che, con qualche piccolo accorgimento può funzionare correttamente.
Provare a dare uno sguardo a questo thread sul forum italiano dedicato a BlogEngine.NET:
forum.italianbloggers.it/viewtopic.php

Non trascurare anche di guardare questo screencast realizzato dall'amico Al Nyveldt proprio sull'installazione con SQLite (è in inglese ovviamente):
nyveldt.com/.../...-BlogEngineNET-with-SQLite.aspx

Alessandro Rossetto
Alessandro Rossetto
20 apr 2009 alle 10:44  03
Ciao Cristiano,  
grazie per avermi risposto. Per il momento ho installato la versione XML standard e sembra funzionare quasi tutto.... Due cose non riesco a farle funzionare:
1) le impostazioni (ovvero la pagina settings del pannello di amministrazione) che mi restituisce sempre errori sul gruppo linguistico (Nome di gruppo linguistico 'sv\_vti_cnf' non supportato. ). Ho già provato di tutto: ho impostato IT come linguaggio di default.. eliminato tutti gli altri linguaggi (il Blog sarà solo in Italiano), ricompilato e ritrasferito... niente !
2) La pagina di contatti. Non mi spedisce nulla, ma non restituisce errori...

Grazie per i suggerimenti...
Alessandro
Cristiano
Cristiano
21 apr 2009 alle 00:00  04
@ Alessandro Rossetto:
L'errore di localizzazione non mi è mai capitato: secondo me è un problema di permessi sulle cartelle.
Assicurati di aver rimosso da TUTTI i files di BlogEngine.NET l'attributo ReadOnly (quando si carica il pacchetto e lo si decomprime non sempre il SO assegna i giusti attributi ai file).
Non devi inoltre assolutamente rimuovere i file di risorse da App_GlobalResources, soprattutto il file labels.resx che è quello di default (senza il sistema può dare errori)

Il problema sul form contatti è noto: devi scaricare la versione 1.5.08 (che è quella che attualmente in uso su questo blog).

Per quanto riguarda i permessi usa il pannello di controllo di Aruba per il ripristino di tutti i permessi standard sulle cartelle dopo aver fato l'upload dei file (c'è da attendere un pò dopo aver fatto la richiesta).

Vedrai che dopo tutto funzionerà correttamente Wink
Alessandro Rossetto
Alessandro Rossetto
21 apr 2009 alle 12:38  05
Ciao Cristiano,

   grazie per le "dritte" ora le provo !!!

Grazie ancora

Alessandro

Aggiungi Commento

biucitecode
  • Commento
  • Anteprima
Loading


| |   |  

Codice QR

Codice QR - cristianofino.net

Ultimi Commenti