agile

NHibernate 2.1.0 Beta2

Oggi è stata rilasciata la beta 2 della versione 2.1.0 di NHibernate. All’interno di questa release tra le varie cose c’è una fix che permette di risolvere il problema tra NHibernate, SQL Server ed piani di esecuzione (per maggiori dettagli relativi al problema si può cominciare a leggere questo post). Per chi usa query HQL il problema ancora persiste ma in quel caso una soluzione ottimale potrebbe non essere sempre possibile. Il problema è noto, gli unit-test che lo identificano ci sono quindi credo che a breve verrà fissato anche questo. Qui il download Technorati Tag:...

LINQ to NHibernate

Leggendo qui sembra che ci siamo! Time for another update; it's been a while since the last one. Good progress has been made on the new HQL AST Parser port from Hibernate, and it's now in a state where it's usable, passing the vast majority of the tests within the NHibernate test suite. Of those that are failing (around 8 out of over 1600), we are currently discussing on the developers group whether we will live with these minor breaking changes, or do continued work on the parser to get everything passing. Technorati Tag: LinqToNHibernate,Linq,NHibernate

Addio NAnt. Benvenuto Rake

In questi giorni ho iniziato la migrazione degli scripts che utilizziamo per eseguire le build. Come si capisce bene dal titolo del post fino ieri il build runner era NAnt quindi gli scripts dei file xml. Da oggi ho iniziato a convertire i file in xml in scritps ruby che poi vengono eseguiti da Rake. Il motivo principale per fare questo è il passaggio da un Domain Specific Language esterno verso un Domain Specific Language interno. Un Domain Specific Language è un mini-linguaggio adatto ad un problema specifico, in questo caso serve per descrivere i task necessari...

UGI Alt.net conference III

Sabato 24 Gennaio 2009 si terrà a Milano la terza conferenza UGI Alt.net: si tratta di una conferenza gratuita di un giorno dedicata alla filosofia ALT.NET. Seguire la filosofia ALT.NET equivale a seguire i propri gusti sul design delle applicazioni e usare la piattaforma .NET per supportare le proprie idee invece che doverle plasmare per adattarle al framework. Sebbene nessuna di queste cose sia un requisito per “essere ALT.NET” la community abbraccia metodologie agili come Scrum, XP. Usa strumenti open source e segue pratiche come Test Driven Development/Design, Behavior Driven Development/Design, Domain Driven Development/Design. ...

Lanciare MbUnit usando NAnt e Gallio

Gallio ha un buon supporto per NAnt! L'unica pecca è la documentazione a riguardo che attualmente è un po' scarna. Di seguito quindi posto le istruzioni per portare a buon fine l'operazione senza grossi sforzi. Prima di tutto bisogna caricare i Tasks di Gallio in NAnt inserendo la riga nel file di progetto <loadtasks assembly=".\tools\Gallio\Gallio.NAntTasks.dll" /> Poi grazie a questo frammento di xml possiamo lanciare gli unit tests contenuti in un assembly chiamato Data.Fixture.dll <target name="test" depends="build"> <gallio result-property="exitCode" failonerror="false" > <runner-extension value="TeamCityExtension,Gallio.TeamCityIntegration" /> ...

UgiAlt.net (mini)conference - 23 Febbraio 2008

Come scritto da Ema qualche tempo fa, come ugialt.net stiamo organizzando una giornata di conferenza. Dopo il sondaggio fatto sulla lista è emerso che il giorno preferito è 23 Febbraio 2008. La conferenza si svolgerà presso la sede di ABSistemi che gentilmente ci supporta in questa iniziativa. Abbiamo già alcune proposte che a breve metteremo ai voti per capire quali siano più interessanti e quindi meritano essere i primi temi di discussione. La partecipazione è completamente gratuita! Il formato delle sessioni sarà di tipo open space, quindi chi propone gli argomenti non ha il ruolo dello "speaker classico" ma ha...

L'importanza delle persone nello sviluppo software

Stasera mentre leggevo un post sulla mailing-list extremeprogramming-it ho letto un passaggio che condivido pienamente e che quindi mi permetto di riportare qui: .... per una società che si occupa di sviluppo software l'attività con il maggior ritorno economico è la selezione del personale e la crescita delle persone al suo interno, quindi su questo dovrebbero aversi i maggiori investimenti e a questo dovrebbero essere assegnate le persone più affidabili.Là dove una fabbrica di automobili da per scontato un grosso investimento per acquisire la tecnologia e il macchinario necessari, una software-house deve dare per scontato un grosso sforzo ed esborsonell'acquisizione...

Reflection & MbUnit

Oggi, facendo alcune prove suggerite da questo post di Antonio, ho notato che nell'assembly MbUnit.Framework.2.0 è disponibile la classe Reflector che serve per controllare lo stato di un oggetto tramite reflection in maniera molto semplice. Per esempio: [Test]public void Ctor_Always_SetFieldName(){    Foo foo = new Foo("claudio");    Assert.AreEqual("claudio", Reflector.GetField(foo, "_name"));} serve per controllare che il costruttore imposti correttamente il valore della variabile di classe che si chiama _name. Ovvero che Foo sia così: public class Foo{    private readonly string _name;     public Foo(string name)    {        _name = name;    }} Anche se generalmente un test non controlla lo stato interno di un'oggetto...

Chat UGIALT.NET: 10 Dicembre 2007 ore 21.00

Dopo gli esperimenti realizzati l'inverno scorso e le positive discussioni che hanno seguito l'open space di quest'anno all'agileday  abbiamo deciso di dare il via ad una serie di chat "tecnologiche". Dal sondaggio effettuato sulla lista risulta che la data preferita è 10 Dicembre. Quindi è confermato che ci troviamo online su GTalk alle 21.00 . I temi che tratteremo saranno: cos'è ALT.NET quali strumenti e quali metodologie usiamo progetti del gruppo? (incontri veri a gennaio e progetto open source) L'iniziativa è aperta a tutti, e tutti potranno parlare ed esprimere opinioni, consigli, esperienze,...

User stories applied [cap.7] : altri suggerimenti

Di seguito alcune linee guida addizionali per scrivere buone storie: Per identificare le storie considerare lo scopo di ogni ruolo utente del sistema. Quando si divide una storia cercare di avere storie che attraversano tutti gli strati dell'applicazione. Scrivere storie di una dimensione tale per cui lo sviluppatore, dopo averla conclusa, si senta giustificato nel prendere un caffè. Completare le storie con ogni tipo di documentazione ci sembra utile per comprendere meglio il dominio applicativo. Creare storie anche per le costanti applicative, esporle in modo...

User stories applied [cap.3]

In questo capitolo si parla della modellazione dei ruoli: In molti progetti si considera solo un tipo di utente. Questo porta ad ignorare le necessità di molti utilizzatori del prodotto. Per evitare di scrivere storie per un singolo utente è prima necessario identificare in vari tipi di utenti che interagiranno con il software. Definire attributi per ogni ruolo permette un migliore confronto e comprensione del tipo di utente. In casi alcuni i ruoli possono trovare beneficio nell'essere descritti come persona. La persona è una rappresentazione figurativa del ruolo. La persona ha un nome, una faccia ed...

Unit testing non è sicurmanente la panacea di tutti i mali!

Oddio cosa ho scritto. Ma in fondo è solo la pura verità. Stuzzicato dal post di Raffaele non ho potuto trattenermi dal postare anch'io e spendere 2 parole sull'argomento. Al mio commento Raffaele ha risposto : "Unit Testing non può essere una base per validare un software. È solo uno dei tanti sistemi che può rivelarsi più o meno utile a seconda dei casi" Io qui ribatto con: Sicuramente usare solo unit test non basta, ma se parliamo di test ce ne sono diversi tipi e riuscire ad automatizzarli invece che affidarsi ad un tester ha dei vantaggi oggettivi. Certamente non sempre è una attività...

Devo testare tutti i metodi setter e getter ?

Ieri sera mi sono imbattuto in un post che parlava di Unit Test in cui veniva data risposta alla domanda: "Should I test all getters & setters?" La risposta dell'autore del post era no. Ripensandoci mi sono chiesto perchè io che scrivo molti Unit Test non mi sono mai preoccupato molto di questo fatto. Alle fine ho realizzato che se mi pongo questo problema significa che prima scrivo il codice e poi scrivo il test. Se invece seguo un approccio TDD procedo in questo modo: scrivo un test per il getter della propietà che sto testando creo la proprietà vera e propria in sola lettura e mi assicuro che il...

Mock framework in PEX

Il nuovo framework di Unit Test che potrebbe vedere la luce insieme ad Orcas, la prossima versione di Visual Studio, dovrebbe contenere anche una funzionalità di mock objects. La notizia viene da questo post in cui è presente un piccolo esempio di cosa potremmo fare con PEX per usare oggetti "mokkati". Come per altri framwork sarà possibile creare mock objects di interfaccie e metodi virtual di classi non sealed