febbraio 2009 Blog Posts
oggi con grande soddisfazione ho portato un cliente verso il lato oscuro ;-) Questo cliente era uno di quelli tradizionalissimi dal punto di vista della metodologia e ad esempio adorava avere un pianificazione a luuunghissssimooooo termine… che barba che noia <cit.> Dopo un lungo lavoro ai fianchi oggi mi sono preso una bella soddisfazione, ho preso i 3 manager che “mi seguono” e gli ho dato le card, all’inizio non capivano, ma poi, dopo una breve introduzione, hanno praticamente passato il pomeriggio “giocando” con le User Story, bello! è stata una bella esperienza. .m
Blogorroico sugno… :-D La SKU di Unit Testing di Visual Studio 2008 SP1 è afflitta da un bug latente, la KB relativa non è ancora pubblica, che si verifica cioè in rare e difficilmente identificabili condizioni, a causa del quale i Project System della DBPro, di BizTalk e/o di Silverlight cominciano a manifestare strani comportamenti o a far si che strani comportamenti vengano manifestati del Project System di unit testing (questo era il mio caso) quando i sopracitati project System si trovano nella stessa solution. Grazie al sempre presente Lorenzo, sono in contatto con i ragazzi del team...
All’ultimo agile day ho sentito più volte l’affermazione che il Code Coverage, che è la percentuale di codice coperta dagli Unit Test, non è necessariamente un’indicazione che i test siano dei buoni test. In linea di massima questa affermazione mi trova complessivamente d’accordo. Essendo il Code Coverage il risultato di un’analisi statica non ha necessariamente significato qualitativo.
Ritengo però che il Code Coverage dia comunque informazioni utilissime, non è tanto la percentuale di copertura che ritengo importante, annche se mi piace tendere al 100%, quanto il fatto che ad esempio a volte il Code Coverage di Visual Studio si comporta in...
Visto che abbiamo inziato a ballare… balliamo :-D Gli anonymous methods e ancor di più le lambda expressions introducono la possibilità di “scroccare” al proprio codice un’espressvità eccelsa, imho… ;-) class Program
{
static void Main( string[] args )
{
var worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler( OnWorkerDoWork );
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler( OnWorkerRunWorkerCompleted );
worker.RunWorkerAsync();
}
...
In un commento Antonio chiede: Sicuramente avrai avuto la necessità; di visualizzare un finestra di dialogo o una MessageBox dal ViewModel, come hai risolto? E’ proprio una necessità di questo genere che mi ha spinto verso il message borker, il classico esempio è: “…l’utente sta editando una entity e pigia il bottone chiudi che è in binding con un CancelCommand nel ViewModel a questo punto il ViewModel consulta il servizio di ChangeTracking e scopre che l’utente ha apportato delle modifiche alla entity e deve chiedere se salvare o meno…” natualmente non possiamo mica mettere una MessageBox nel ViewModel...
Detto fatto :-D
Pochissimo tempo fa ho fatto una lunga digressione su Model-View-ViewModel calato in applicazione complessa dove la complessità risiede principalmente lato presentation.
Una delle necessità è quella di mantenere la separazione tra i vari ViewModel al fine di consentire agili refactoring dell’interfaccia utente e volendo anche molto altro. L’inghippo purtroppo è che i ViewModel in qualche modo devono comunicare tra di loro, l’esempio potrebbe essere:
finestra principale, la Shell (terminologia presa in prestito da PRISM), che ospita 2 “region”:
Region 1: user control per la ricerca/visualizzazione...
Era un po’ di tempo che non mi divertivo così tanto a fare questo lavoro! Da un mesetto a questa parte sto lavorando ad un nuovo progetto che è nato quasi per caso. In dicembre IL mio cliente storico si presenta e mi dice che avrebbero bisogno di una semplice applicazione per fare l’inventario di una delle loro attività al pubblico. L’obiettivo è quello di avere uno strumento snello e semplice che permetta ad n operatori di lavorare insieme e funzioni senza fronzoli e soprattutto senza problemi dato che il tempo stimato per l’inventario è di 72h...