Talking about a Revolution...

...And it sounds like a whisper (cit.) Revolution è il codename della nuova versione del sito UGIdotNET, (in parte) pre-pre-pre-visionabile qui: http://vnext.ugidotnet.org. Perchè "Revolution"? Perchè è riscritto "from scratch", da zero. Tempo addietro provai a portare la codebase attuale verso la v2 del framework, ma ad un certo punto capii che sarei riuscito "solo" ad introdurre alcune feature del nuovo framework, senza goderne davvero dei benefici. Ed allora... Revolution. Revolution perchè oggi posso "barare" e partire nello sviluppo da basi differenti rispetto a quelle a mia disposizione nel lontano 2001, quando realizzai il "core" della codebase che, in un modo o nell'altro, "regge" comunque l'elevato traffico del sito. Dico "barare" perchè oggi posso:

  • Realizzare un Domain Model in maniera più consapevole e con una comprensione decisamente maggiore dei "requisiti" dell'applicazione
  • Usare NHibernate per mappare il modello sul db e vivere felice. Peggio (o "meglio", dipende dai punti di vista) ancora, posso fare "copia&incolla" della Unit of Work e del Query Object implementati per NSK e aver strutturalmente eliminato in pochissimo tempo il "problema" dell'acceso ai dati (la licenza di NSK lo permette previa citazione degli autori originali, ma che credibilità avrebbe una codebase che dovesse citare il mio nome? )
  • Usare  MVC per la GUI, generalizzando il controller quanto baste per poterlo condividere tra view differenti ma simili dal punto di vista del ruolo (template method anyone?)

Non ho ancora integrato i fix in NSK, ma lo farò ASAP. Sviluppando quanto (poco) ad oggi pubblicato, ho anche avuto la fortuna di:

  • Completare l'implementazione del Query Object aggiungendo la possibilità di esprimere clausole di ordinamento. Mi fa piacere, perchè in vista della imminente nuova edizione del corso "OOD e architettura delle soluzioni .NET" mi ritrovo bello pronto un esempio di UoW più circoscritto rispetto a qllo di NSK, e sicuramente più utile in quel contesto. (BTW, visto che ho richieste in tal senso ne approfitto per comunicare che ci sono ancora alcuni -pochi- posti liberi per il succitato corso)
  • Trovare un paio di bug nel provider Hibernate-based di NSK, e fixarli. E' la chiara dimostrazione che ultimamente Janky dedica troppo tempo a Supertangas (il sito) e si distrae, ma lo perdoniamo perchè lo fa per una buona causa. 

E veniamo ai lati "spinosi" della vicenda... Già sento qualcuno chiedere: "Ma perchè non metti mano prima al blog engine?" Facile: perchè il blog engine non fa storia a sè, ma è integrato nel sito. Avete mai notato (gusto per fare un esempio) che:

  • registrandosi al sito, in realtà si crea contestualmente il proprio blog?
  • sono ancora supportati indirizzi quali questo? http://www.ugidotnet.org/myprofile/blog/BlogReader.aspx?MemberID=4 In pratica, ci sono degli handler che mantengono validi gli url di 4 anni addietro, quando "varammo" il supporto ai blog mentre .Text nemmeno esisteva. Potete non crederci, ma vi assicuro che le sottoscrizioni che usano i vecchi indirizzo sono *tante*.

Ergo, per cambiare il motore di blog (pur adottandone uno già pronto, come -per esempio- SubText) bisogna in ogni caso mettere mano al sito, e allora tanto vale farlo su una codebase decente. L'uso della UoW e del Query Object, infine, mi permette di non far emergere il dialetto di query (SQL o HQL che sia) fino al livello applicativo rendendo praticabile, se ADO.NET EF dovesse mantenere le "promesse" (ossia se sarà *diverso* da DLINQ),  lo spostamento da NH all'ORM integrato nella vnext del framework.

Non ci sono tempistiche, ma spero cmq di "togliermi dalle scatole" questo "lavoro" nel minor tempo possibile :-)

Infine... "Revolution" perchè lo sanno tutti che dopo "Reloaded" c'è, appunto, "Revolution" <g>

Technorati tags:

Sono stato taggato!

Il colpevole è Roberto, che se ne assume quindi la responsabilità (mai usare Reflection su una persona: non sai mai ciò che trovi <g>).

  1. Interista per passione, ma soprattutto per... Caso: ero piccolissimo e sdraiato sui sedili posteriori dell'auto di papà (una mitica Fiat 124 rossa) e osservando all'esterno vidi una bandiera esposta da una finestra. Chiesi (senza quasi nemmero sapere cosa fosse il calcio, poichè ero *molto* piccolo): "Papà, quella è la nostra bandiera?" Mio padre, inorridito alla vista di un vessillo rossonero, mi rispose che non lo era, e che me la avrebbe mostrata appena possibile. Il che significò circa 300 metri più avanti: FORZA INTER!!!!
  2. Perchè, caro Roberto, ti meravigli se ascolto "Siamese Twins" mentre lavoro? Probabilmente non lo faresti, se sapessi che da bimbo i miei insegnanti riportavano a mia madre che durante le ore di disegno libero io non facevo altro che "rappresentare" degli... Ameni luoghi di riposo per dipartiti
  3. Per quanto appassionato di calcio, i miei "veri" sport sono (stati) pallavolo (praticato nel ruolo di palleggiatore) e savate (o boxe francese, che dir si voglia), della quale sono anche allenatore (ho lavorato per un paio di palestre). Di entrambi gli sport sono arbitro CONI, avendo diretto anche gare valide per i titoli nazionali.
  4. Il primo approccio al "mestiere di programmatore" si deve al tentativo di sviluppare per il mio VIC-20 un gioco di calcio, poichè non ve ne erano ed invidiavo Enrico (il ragazzo del piano di sotto) per il suo C64. Fallii. E ci credo, il VIC-20 aveva 3.5 kb di RAM libera. Acquistai una espansione da 3kb (grande quasi come una cassetta VHS) e ritentai, nuovamente fallendo. Ne dedussi che vi era un motivo se non c'erano giochi di calcio disponibili per il mio computer. Avevo 9 anni (o forse 10).
  5. Sono stato un anti-Microsoft di quelli (molto) duri e, per esempio, non vedevo l'ora che arrivasse lo SMAU per assaltare il padiglione MS: un paio di volte sono anche riuscito a far fare una brutta figura allo speaker dei vari "teatrini". Una vera peste (ma i miei "compari" erano anche peggio). Ho installato sul mio Amiga (dotato di regolare scheda acceleratrice) una delle prime "distro" Linux disponibili per Motorola, ed anche per gli esami universitari usavo esclusivamente Amiga per emulare DOS (mediante A-Transformer prima e PC-Task poi) e sono riuscito a resistere fino al 486 prima di comprare il primo PC. Cosa è cambiato? Beh, a tutt'oggi non sono nè "pro" nè "contro" MS o altri vendor, ma... .NET rulez e tanto basta.

Roberto... soddisfatto? :-) I miei "fortunati", invece, sono (in rigoroso ordine alfabetico): CorradoDaniele, Ghizzo, Markino, Mario.

«gennaio»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910