Venerdì ho partecipato all’evento organizzato dai ragazzi di DomusDotNet su Caliburn.Micro (CM), un framework per l’implementazione del pattern MVVM su WPF, Silverlight e Windows Phone 7.
CM è il “fratellino” di Caliburn, un noto framework esistente da anni per gestire sia MVVM che UI Composition, spesso confrontato con Prism per la sua completezza (e purtroppo complessità).
Caliburn.Micro, invece, implementa solo le principali e più comuni caratteristiche che servono alle applicazioni in questo contesto, e grazie ad un sistema basato su convenzioni (convention over configuration) risulta piuttosto semplice da utilizzare, permettendo così di eliminare molto codice infrastrutturale (o meglio… ripetitivo codice di plumbing), che altrimenti il povero sviluppatore dovrebbe scrivere e manutenere per ogni “form”.
Già da quando Rob Eisenberg presentò al MIX 2010 un progettino per costruirsi un framework MVVM in casa, che sarebbe poi diventato proprio Caliburn.Micro, rimasi piuttosto colpito dalle sue potenzialità (trovate qui il video), perciò dopo averlo anche utilizzato in alcuni progetti, ho approfittato dell’occasione per partecipare al workshop romano, dove tra gli speaker c’era anche Marco, che oltre ad essere uno dei fondatori di DomusDotNet, fa anche parte del team di sviluppo di Caliburn e CM.
Inutile dire che le sessioni sono state molto interessanti, unico rammarico avere solamente un pomeriggio per parlarne :)
Dopo una introduzione al pattern MVVM, ed una sua applicazione “manuale” ad un progettino di esempio, entrambe fatte da Massimo, è entrato in scena Marco che ci ha mostrato come sfruttare Caliburn.Micro per semplificarci di molto la vita nello sviluppo.
Interessanti sono stati pure i “trucchetti” mostrati per semplificare lo sviluppo di un paio di situazioni su WP7, in particolare quelle legate a tombstoning e launchers: anche in questo caso CM ci viene in aiuto con soluzioni che definieri “smart”.
Purtroppo Marco ha dovuto tagliare, per mancanza di tempo, su un paio di importanti argomenti gestiti da Caliburn.Micro: quello dell’EventAggregator, un’implementazione del Message Broker, e sopratutto sulle coroutine, un meccanismo che permette di fare da molto tempo, in Caliburn, ciò che sarà possibile con la nota istruzione async di c# 5!
Fortunatamente il video di Rob già segnalato spiega questi argomenti, perciò diciamo che si completa molto bene com quanto ci ha fatto vedere Marco durante le sue sessioni.
Non sono mancante domande, in particolare quella “scontata” che chiede come Caliburn.Micro si posiziona nei confronti del (forse più noto) MVVM Light: da quanto è emerso, probabilmente MVVM Light ha un supporto migliore per il design-time (quindi realizzazione della UI tramite Blend), ma Caliburn.Micro semplifica molto di più lo sviluppo grazie alle sue convenzioni e a strumenti come le coroutine. Se poi qualcuno vuole aggiungere qualche informazioni in più su questo confronto, tramite i commenti, è il benvenuto :)
Progetto di esempio: Shared Bookshelf Manager (http://sbm.codeplex.com/)
Un’altra cosa interessante che ho scoperto durante il workshop è stata l’esistenza di un progetto opensource che i ragazzi di DomusDotNet hanno realizzato per “giocare” con le tecnologie (che presenteranno poi presumibilmente ai workshop).
Mi ha fatto piacere questa cosa anche perchè con DotNetMarche abbiamo parlato per molto tempo di una cosa del genere e non siamo mai riusciti a concretizzarla fino in fondo, principalmente per mancanza di tempo… almeno qualcuno ce l’ha fatta :)
Video dell’evento
Come diceva qualcuno, “two è meglio che one”, così avevamo ben due telecamere… e di conseguenza il doppio dei video.
Potete trovarli, con formati e risoluzioni diverse, sia su http://vimeo.com/25364908 (video ufficiale) che su http://vimeo.com/album/1625563 (bootleg :), che segnalo solo perchè il codice degli esempi potrebbe essere più leggibile.. in attesa di spostare eventualmente anche questi video sull’account di DomusDotNet).
ETGF
Per il capitolo ETGF (http://etgf.org/), si segnalano degli spaghetti alle cozze e pecorino, presi alla mensa Microsoft, che per quanto possono sembrare un abbinamento strano, erano piuttosto buoni :)
Meglio non citare poi il nome del bar in cui il barista dalla mano pesante ci ha praticamente stesi con un solo aperitivo!!
Frase della giornata
“La view fa la guardona […] sul model” (cit. Massimo per spiegare MVC)