Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

[HappySign] Un passo alla volta, Giollino cresce

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ì!

Print | posted on sabato 11 novembre 2006 20:21 | Filed Under [ I miei freeware ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET