do more with less
news, esperienze, esempi da condividere e qualcosa su di me

martedì 1 marzo 2011

Nuovo sito in versione beta utilizzando Sitefinity 4.0

Il mio nuovo sito è live anche se ancora in versione beta. I problemi di pubblicazione legati allo spazio di hosting che utilizzo, Winhost, sono stati tali da farmi iniziare a pensare che devo trovare un’altra soluzione il che non mi rende assolutamente felice. Comunque l’importante è che la nuova grafica sia su e che l’unificazione di blog e sito sia avvenuta come voluto. Ora mi aspettano ancora alcune attività che potrò svolgere solo se il mio hosting provider riuscirà a capire come risolvere i problemi che gli ho evidenziato in questi giorni. Spero anche che la SP1 di Sitefinity, che promette di ridurre l’utilizzo della memoria che al momento è decisamente eccessiva, mi aiuti a restare in Winhost dove sinceramente il supporto e la disponibilità del personale è decisamente di buona qualità. Un grazie particolare al team Telerik del prodotto Sitefinity che mi ha supportato in questi giorni. Ma dove sta il problema? La parte amministrativa della versione 4 si Sitefinty si basa in parte su servizi WCF che per qualche motivo, in Winhost, non funzionano come nell’ambiente di sviluppo e test che io utilizzo. Questo mi impediva di impostare la pagina home del sito con la conseguenza che navigando all’url del mio sito o del mio blog si otteneva il classico messagio di “Sito in costruzione”. Fortunatamente le Fluent API di Sitefinity e Radoslav Georgiev, valida risorsa di Telerik, mi sono venuti in aiuto permettendomi di impostarla programmaticamente risolvendo così almeno il problema di visibilità pubblica. Se vi trovate in queste condizioni può essere utile il codice seguente:

var fluent = App.WorkWith();
fluent.Pages().GetManager().Provider.SuppressSecurityChecks = true;
//look for a page by its name 
var page = fluent.Pages().LocatedIn(Telerik.Sitefinity.Fluent.Pages.PageLocation.Frontend)
           .Where(p => p.Title == "YourDesignatedHomePage")
           .Where(p => p.Page.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live)
            .Get().First();
ConfigManager configManager = Config.GetManager();
configManager.Provider.SuppressSecurityChecks = true;
PagesConfig pagesConfig = configManager.GetSection<PagesConfig>();
pagesConfig.HomePageId = page.Id;
configManager.SaveSection(pagesConfig);

Ora non mi resta che affrontare il prossimo problema per arrivare quanto prima dalla versione Beta alla versione RTM.