Tra un bug-fixing e l'altro, i check-in di Happy Sign si fanno sentire. Gli ultimi changeset non sono stati corposi in termini di numero di files modificati, ma sono stati essenziali per eliminare alcune superficiali imperfezioni. L'attuale sorgente di Happy Sign su CodePlex è piuttosto stabile - l'aggettivo "stabile" risulta da un'analisi del mio utilizzo quotidiano di Happy Sign. ;-)
Ultima feature implementata: "disponibilità di una DynamicSignature"
L'ultima feature interessante apportata in Happy Sign è stata implementata dal buon Matteo. E' stata aggiunta una proprietà Enabled alla classe DynamicSignature, che indica la disponibilità di una firma. Cosa intendiamo con il termine disponibilità? E' semplice: una firma è disponibile quando il codice .NET associato è valido, è compilabile e può produrre un assembly. Quando una firma è disponibile, l'utente può utilizzarla (tramite drag'n'drop o clipboard) e può esportarla: può fare tutto quello che vuole.
Se il codice .NET non è valido, è sintatticamente scorretto, non può essere compilato, gli manca qualche reference, allora la firma non è disponibile. Una firma non disponibile appare comunque sulla UI di Happy Sign, ma viene evidenziata da un'icona di avviso. L'utente non può usarla, non può esportarla, fino a quando non sistema il codice. :-)
Alcune idee per il futuro
Nonostante tutto quello che abbiamo fatto, le idee per l'anno prossimo sono davvero tante. Le elenco qui in breve.
- Utilizzo di una cache per migliorare le prestazioni
Quando si decide di utilizzare una DynamicSignature, l'engine di Happy Sign compila on-the-fly il codice .NET, genera un file HappySignScript.dll nella directory privata dell'utente. Inutile dire che c'è un leggero gap di tempo, dove con gap si intende un intervallo di tempo proporzionale alla complessità del codice da compilare. Onestamente, questo attualmente non rappresenta un grande problema, ma non mi piace questo tipo di approccio. L'obiettivo è quello di avere una cache privata, dove vengono salvati tutti gli assembly. In breve: se ho una firma chiamata "Il mio prossimo compleanno", dalla sua compilazione (scatenata la prima volta che verrà usata) risulterà un assembly chiamato IlMioProssimoCompleanno.dll. Se l'utente decide di usare in futuro questa firma dinamica, non verrà scatenata ogni volta una nuova compilazione, ma verrà sfruttata direttamente la dll in cache. La cache deve essere aggiornata ogni volta che si modifica il codice: su questo stiamo lavorando. - Ordinare firme e categorie
Nell'attuale release, le categorie possono essere riordinata a piacimento, mentre le firme no. Abbiamo intenzione di dare all'utente la possibilità di ordinare secondo diversi criteri: alfabetico, frequenza di utilizzo, data di ultima modifica (sono i primi che mi vengono in mente). - Parametri delle firme
Questo è un bel problemino. Supponiamo di aver creato una DynamicSignature che ritorna il numero di giorni che mancano al mio compleanno. Nel codice .NET associato alla firma avremo messo una variabile DateTime impostata sul nostro giorno di nascita. La firma va che è una meraviglia, decido di esportarla e di distribuirla. Arriva l'utente Piero, si importa la firma, la utilizza ma i conti non tornano, perchè nel codice è cablata la data di nascita dell'autore. L'utente Piero dovrebbe andare nel codice e correggere la data mettendo la sua. Brutto, non vi pare? Su questo siamo in alto mare - accettiamo idee & suggerimenti. :-) - Varie ed eventuali
Chissà quante cose adesso non mi vengono in mente.
Lunga vita ad Happy Sign! :-)
[Mancano 61 giorni al mio compleanno. Ricordatevelo!]
Powered by Happy Sign - http://www.codeplex.com/HappySign