La strana storia di Quartz, Castle ed NHibernateFacility nel mondo di Lucilla
Pubblicato da admin in NHibernate , MVC , Opensource il 12 gennaio 2011 alle 0.08
C’era una volta una applicazione web che aveva in cui i servizi di business logic si godevano beati il loro lifestyle PerWebRequest… finchè un giorno irruppe il prode cavaliere oscuro pronto a prestare i suoi servizi in background… e a scombinare il regno di Lucilla mettendo in crisi i servizi resi orfani del fido custone in HttpContext che teneva gelosamente la session al sicuro…
Panico nel Castello… ed ora che si fa? Calma e gesso disse il re (e chi sarà mai questo re? ;D).. che i servizi cambino stile di vita e diventino Transient(i)!
oohhhhh (questo è vs dopo l’estenuante modifica di 1 parametro nel regno di Lucilla)
Ora il prode Quartz era pronto a sfoderare tutta la sua potenza schierando nelle seconde file i servizi di supporto e le attività pianificate. Ma ecco che allo scoccare della mezzanotte il primo cavaliere cade sconfitto: il custode della session non c’e’ più, è rimasto prigioniero nelle segrete dell’HttpContext.
Panico nel castello… la signora facility giace nel letto di HttpContext e non può soddisfare contemporaneamente anche il CallContext… HttpContext o CallContext, IsWeb=true o IsWeb=False? (http://stw.castleproject.org/Windsor.NHibernate-Facility.ashx)
“IsWeb ‘sta cippa” tuonò il re.. “Facility fa quello che dico io. Si costruisca una nuova stanza per ospitare sia HttpContext che CallContext e che Facility sia sempre pronta a svegliare il custode della session appropriato”…
E tutti vissero felici e contenti.. https://gist.github.com/775282
Intepreti in ordine sparso..
Il re : io me medesimo
Il regno di Lucilla: Lucilla.Framework
Facility: http://stw.castleproject.org/Windsor.NHibernate-Facility.ashx
Il custode in HttpContext: Castle.Facilities.NHibernateIntegration.SessionStores.WebSessionStore
Il custode in CallContext: Castle.Facilities.NHibernateIntegration.SessionStores.CallContextSessionStore
Il cavaliere oscuro: http://quartznet.sourceforge.net/
La nuova stanza dei custodi: Lucilla.Framework.Core.Data.NHFacility.LucillaSessionStore
Tempo di realizzazione: 1/10 di quello impiegato a scrivere questo post.. possibile solo nel regno dell’opensource.
Pubblicato da admin in NHibernate , MVC , Opensource il 12 gennaio 2011 alle 0.08
