Posts
83
Comments
165
Trackbacks
11
January 2009 Blog Posts
VisualStudio e i progetti temporanei

Oggi, giochicchiando con VisualStudio, ho scoperto una feature decisamente interessante, della quale ero assolutamente all'oscuro: la possibilità di creare progetti temporanei (ovvero non salvati sul disco contestualmente alla loro creazione). Quante volte mi è capitato di dover fare una prova veloce, che non necessitava di un progetto vero e proprio, ma che non potevo non fare con VisualStudio? Ecco la soluzione ai miei problemi:

Dalla solita voce Options del menu Tools…

Enable temporary projects 

Altre utili informazioni all’url seguente: http://msdn.microsoft.com/en-us/library/ms165252.aspx

melkio

posted @ Monday, January 26, 2009 10:09 PM | Feedback (1)
Di ritorno dalla III UgiAlt.Net conference

Eccomi di ritorno dalla III UgiAlt.Net conference tenutasi ieri presso la sede di Milano di SourceSense.

Ecco a ruota libera le mie impressioni:
Scrittura delle User Stories e Planning Game: una rapida carrellata nella quale i due moderatori, Emanuele DelBono e Antonio Carpentieri (non lo conoscevo di persona…ottima impressione!!!), hanno introdotto l’argomento delineando le linee guida. Anche se l’utilizzo delle user stories è diventato per il team uno standard, è sempre utile il confronto e la possibilità di interagire con le esperienze sul campo degli altri.
La sessione, in stile open-space, ha permesso a tutti di partecipare. Ottimo

DomainDrivenDesign: la sessione, trattando di un argomento vasto e soprattutto ricco di sfaccettature, ha mancato, secondo il mio modesto parere, di un cappello introduttivo che permettesse a tutti i partecipanti (di provenienza professionale fortemente eterogenea) di inquadrare l’argomento definendo i contorni della discussione. Alcuni spunti sono stati sicuramente utili, ma un po’ confusionari, andando a scapito di un argomento veramente interessante.

Ruby <3 .Net: la sessione, tenuta da Ivan Porto Carrero, ha introdotto il contesto dei DLR e come sfruttarne i vantaggi (duck typing e quant’altro). La mia ritrosia per la libertà che i linguaggi dinamici hanno, probabilmente ha condizionato la mia attenzione in questa sessione (o forse era il dopo pranzo?), ma alcuni spunti di riflessione me li sono portati a casa…DLR + test: ci devo pensare ;-)

Advance UnitTest in the real world: ancora una volta azzeccata la modalità di presentazione con i due moderatori, Emanuele e Claudio, che introducevano l’argomento, lasciando successivamente libero sfogo alle esperienze della sala. La sessione si è fortemente incentrata, o almeno ha preso spunto, dall’introduzione degli unit-test in codice legacy e come approcciare il testing di soluzioni software non pensate per essere testabili. E qui ha fatto capolino la pratica del TDD e il grosso vantaggio che porta nella definizione del design.

Test di accettazione (Fitnesse): tra tutti gli argomenti, questo era quello che mi interesava di più, avendolo sfiorato più e più volte, ma mai approfondito. Jacopo si è dimostrato veramente molto preparato sull’argomento e ha dato spunti interessanti su come/dove utilizzare uno strumento di questo tipo. Sottolinenando che, ovviamente, non è sostitutivo degli unit-test, ma complementare, credo che in taluni contesti sia veramente un ottimo strumento di interazione con il cliente/utente/esperto di dominio. Non avendo una profonda conoscenza dell’argomento e  del tool (FitNesse, appunto) ne vedo, per ora, un utilizzo pratico e concreto in quelle parti di applicazioni che hanno una forte componente algoritmica: l’esperto di dominio definisce su un foglio excel (quindi con uno strumento a lui congeniale) i parameteri di ingresso e i loro valori e i relativi risultati, FitNesse esegue la batteria di test, fornendo in stile wiki i risultati…da valutare

Che altro dire…ottima giornata, ottima compagnia e mi sono pure portato a casa una licenza di Resharper…cosa voglio di più dalla vita?

melkio

posted @ Sunday, January 25, 2009 10:39 AM | Feedback (1)
[WPF] Stili e template…un po’ di confusione?

Sempre più spesso mi trovo a che fare con chi, alle prime armi, incontra parecchie difficoltà ad approcciare WPF e capire per esempio la differenza tra stili e template. E tante volte non è semplice nemmeno per me riuscire a far capire bene, partendo da un livello piuttosto basilare, questi concetti.

Girovagando per la rete ho trovato un po’ di risorse introduttive sull’argomento…e quindi, perchè non condividerle ;-)

-melkio-

posted @ Thursday, January 15, 2009 4:38 PM | Feedback (0)
Framework di test: MbUnit vs NUnit

Da un paio di anni la mia scelta sul framework di test da utilizzare nello sviluppo delle applicazioni è ricaduta su MbUnit per vari motivi: soprattutto per la possibilità di eseguire test parametrici e per alcune funzionalità molto utili tipo la possibilità di eseguire i test di integrazione in modalità transazionale tramite l’attributo Rollback, garantendomi la “pulizia” del mio db di test, tra uno unit-test e l’altro.

Ultimamente però, come altri hanno sottolineato anche in un thread sulla mailing list di UgiAlt.Net, ho avvertito la necessità di “guardarmi” un po’ attorno. MbUnit sta prendendo una direzione un po’ strana (la versione 3.0, per esempio, è fortemente accoppiata con Gallio) che non condivido, partendo dalla necessità di un’installazione vera e propria (con tanto di cartella MbUnit in Program Files) per poter usufruire di una semplice dll.
Il primo requisito che un framework di test deve rispettare è la semplicità di start-up e mi sembra che MbUnit si stia sempre più allontanando da questa “strada maestra”.

Dato che oggi ho avuto un po’ di tempo libero ho provato a riguardare NUnit, che avevo abbandonato un paio di anni fa proprio per MbUnit. Siamo arrivati alla versione 2.4.8 (2.5 Beta1) e, con mio sommo piacere, ho appreso che dalla versione 2.4.7 hanno integrato un nuovo namespace (nunit.framework.extension) che espone l’attributo RowTest e quindi la possibilità di eseguire test parametrici.

Molto bene…scarico la versione in beta e provo!!!
Molto male…il namespace nunit.framework.extension della versione 2.5 non contiene gli attributi RowTest e Row…cominciamo bene :-S
Facendo il downgrade alla versione attualmente “in produzione” (la 2.4.8) tutto inizia a funzionare…molto bene.

Una novità, che ho molto apprezzato, è la nuova modalità di “scrivere” gli assert dei nostri metodi di test: il constraint model.
Affiancata alla modalità “classica”, mantenuta per retrocompatibilità, di eseguire asserzioni (n metodi della classe Assert), ora tutto passa attraverso un unico metodo e un insieme di constraints (integrabile a piacere) che, secondo me, rendono il test molto più leggibile:

[NUnit] Assert.That

Da una prima valutazione molto veloce, l’unico “disguido” (di non poco conto) è la mancata integrazione con il runner di ReSharper per l’attributo RowTest.
Indagherò più approfonditamente nei prossimi giorni…comunque l’impressione è assolutamente buona!

melkio

posted @ Monday, January 5, 2009 10:19 PM | Feedback (0)