Anche se si tratta di un software tutto sommato "leggero", lo sviluppo di Happy Sign ci mette davanti a problematiche interessanti, sulle quali dobbiamo ragionare per capire se è la strada migliore. Come è normale che sia, d'altra parte. Lo sviluppo di Happy Sign codename Giollino, sono molto orgoglioso nel dirlo, prosegue a gonfie vele. Principalmente abbiamo a che fare con nuove features e nuove persone nel team (diamo il benvenuto ad Alessandro Melchiori, che avete già avuto modo di conoscere attraverso il suo blog). La cosa cruciale - purtroppo - è che abbiamo dovuto cambiare il controllo principale dell'interfaccia utente, e vi spiego il perchè.
Happy Sign è nato poco più di un anno fa, e all'inizio ci lavoravo da solo. Volevo ottenere una UI simile a quella del Messenger, ed avevo trovato ed utilizzato il controllo ExplorerBar distribuita da vbAccelerator.com. Questo controllo è favoloso, non ci sono bisogno di parole. Ma ne ho trovato un'altro che fa molto, molto di più. Si chiama XPExplorerBar. Per analizzare i pro e i contro, ho scritto appositamente un post sul forum di CodePlex.com. Graficamente parlando, si presenta in modo analogo al vecchio, solo che questo ha qualche features in più:
- completo supporto a design time
- ogni container si chiama Expando. All'interno di ogni Expando, posso infilare ogni tipo di Control che voglio, mentre prima ero limitato ad un certo numero di controlli
- completo supporto al drag'n'drop. E questo è davvero comodo, perchè adesso è possibile riordinare le categorie di Happy Sign a piacere
- effetti grafici notevoli (gradienti, font, background image, etc.).
La cosa che mi spaventa un po' di questo controllo è il suo legame con l'OS sottostante. Leggendo il source-code, infatti, ho notato che va ad utilizzare i Themes del mio Windows XP, leggendo le risorse contenute nel file C:\WINDOWS\Resources\Themes\Luna\Shell\NormalColor\shellstyle.dll. Non vorrei che sotto Windows Vista questo controllo si arrenda. Adesso provo Happy Sign nel mio Virtual PC e vediamo un po'.
Una delle nuove features su cui stiamo lavorando è l'import/export delle signature verso la Cina....ehm, no...cioè...su file. Nel layer HSPersistance abbiamo previsto un engine di serializzazione/deserializzazione per salvare su disco e ricaricare le signature. Tale engine prende il nome di exporter, e funziona con lo stesso meccanismo di quanto abbiamo fatto tempo fa con il persister. Dalla UI istanziamo un exporter e lo usiamo tramite interfaccia, quindi possiamo in un futuro creare exporter aggiuntivi che vadano oltre il semplice file. Mi piacerebbe permettere l'importazione anche tramite drag'n'drop: l'utente trascina un file sulla UI, Happy Sign lo valida, lo deserializza e lo inserisce - prima ne parlo al team.
Un'altra features importante è il completo refactoring della form per editare il codice della class-behind che sta dietro ad una firma dinamica. Abbiamo deciso di eliminare la PropertyGrid e di creare un nostro Reference Manager, sul quale sta lavorando Matteo. Adesso abbiamo in scaletta la creazione di una serie di firme dinamiche, e su questo tema Alessandro spero che ci potrà dare davvero una mano.
Poi la lingua inglese della UI, poi questo, poi c'è quest'altro. Come dimostrano i WorkItem, di lavoro da fare ce n'è, ma procediamo alla grande! Meglio così!