Pubblications http://blogs.ugidotnet.org/rucka/category/Pubblications.aspx Pubblications it-IT Gianluca Carucci Subtext Version 2.6.0.0 TFS, Checkin Policy e TestManager http://blogs.ugidotnet.org/rucka/archive/2007/01/29/69024.aspx <p>Come ci racconta benissimo <a href="http://blogs.ugidotnet.org/lbarbieri/">Lorenzo</a> nei suoi <a href="http://blogs.ugidotnet.org/lbarbieri/articles/WebCast_VSTS_MSF_TFS_2006.aspx">webcast</a>, le <strong>checkin policy</strong> sono uno strumento che permette di assicurare che il checkin del codice sorgente su TFS sia sottoposta a determinate condizioni. E' quindi possibile obbligare lo sviluppatore a far sì che i file pending siano associati ad un workitem, soddifino la validazione del codice con FxCop, piuttosto che passino gli unit test. </p> <p>Proprio la policy fornita da TFS per validare i test soffre a mio avviso (e leggendo in giro non sono l'unico) di gravi problemi. E' infatti necessario configurare la policy in modo da associargli le liste dei test (chiamate <strong>List of</strong> <strong>Tests</strong>) di cui sarà controllato l'esito prima del checkin. Qui nascono i problemi. Le liste dei test sono contenute nel test Metadata File (*.vsdmi) ed è possibile definirle tramite il <strong>Test Manager</strong> che purtroppo è contenuto solo nelle versioni <a onclick="javascript:Track('ctl00_ctl01|ctl00_ctl07',this);" href="http://msdn2.microsoft.com/en-us/teamsystem/aa718822.aspx"><strong>Visual Studio 2005 Team Suite</strong></a> o <a onclick="javascript:Track('ctl00_ctl01|ctl00_ctl15',this);" href="http://msdn2.microsoft.com/en-us/teamsystem/aa718823.aspx"><strong>Visual Studio 2005 Team Edition for Software Testers</strong></a> (questa limitazione dovrebbe essere risolto in Orcas). Chiunque usi la versione <a onclick="javascript:Track('ctl00_ctl01|ctl00_ctl13',this);" href="http://msdn2.microsoft.com/en-us/teamsystem/aa718809.aspx"><strong>Visual Studio 2005 Team Edition for Software Developers</strong></a> (la versione più diffusa da chi sviluppa e quindi da chi deve essere controllato che il codice scritto sia testato correttamente) <strong>non può</strong> creare in modo comodo le liste dei tests utilizzate dal Testing Checkin Policy. Per risolvere questo "piccolo" inconveniente, la strada più semplice è quella di utilizzare un  tool di terze parti che offra le stesse funzionalità del Test Manager. Ad oggi l'unico che conosco (e funziona egregiamente) è il <a href="http://ognjenbajic.com/blog/2006/12/test-manager-add-in.html">Test Manager Add-in</a> di cui è possibile trovare una versione trial <a href="http://www.ekobit.com/download/EkobitTestManagerSetup.zip">qui</a>. E' anche possibile scriversi un proprio programma che editi i file vsdmi ma credo che il tempo necessario superi i 90 dollari del costo del tool.  </p> <p>Problemi finiti? Direi di no. Ammesso che riuscissimo a creare/modificare le liste dei test in modo agevole, esiste il forte rischio (anzi deve essere così altrimenti vuol dire che il codice non è testato) che più sviluppatori aggiornino in locale le liste dei test (e di conseguenza il file dei metadati). Poichè il file vsdmi fa parte dei file sotto source control, ci troveremmo di fronte a dover effettuare di continuo merge del file contenente i metadati dei test. Peggio ancora, se lo sviluppatore si dimentica di aggiungere i test appena creati nella lista dei test usata dalla policy, c'è il rischio che sia possibile il checkin di codice con test potenzialmente non passati (sperando che ci siano strumenti di continuos integration che mi segnalino il problema il più velocemente possibile). Io voglio (lo so sono maleducato si dice 'vorrei') che <strong>tutti i test creati siano <em>sottoposti</em> automaticamente alla policy di checkin</strong>. E se lo sviluppatore non scrive alcun test? In questo caso voglio (o vorrei:P) che <strong>il checkin sia bloccato se il codice sorgente non è <em>coperto</em> adeguatamente dai test</strong>.</p> <p>Visto che sono maleducato e tutte queste cose le voglio (non 'le vorrei'), la soluzione è stata quella di scrivermi una custom policy checkin:D <strong><a href="http://www.beije.it/ENG/index-1.html">CheckTestResultPolicy</a></strong> controlla se esistono risultati di test validi (ovvero posteriori all'ultima modifica dei sorgenti), li analizza e nega il checkin se esistono dei test non passati e se la percentuale di code coverage non è almeno pari a quella richiesta (definibile in fase di configurazione). Il link per scaricare la versione installabile è <a href="http://www.beije.it/download/CheckTestResultPolicy-bin.rar">qui</a>, mentre se volete la versione contenente anche il codice sorgente la trovate <a href="http://www.beije.it/download/CheckTestResultPolicy-src.rar">qui</a>.Ovviamente il tutto è <em>liberamente</em> scaricabile e modificabile. Qualsiasi suggerimento e/o modifica al codice è ben accetta!</p> <p>Sperando di aver fatto cosa gradita...</p> <p>Technorati Tags: <a rel="tag" href="http://technorati.com/tags/TFS">TFS</a>, <a rel="tag" href="http://technorati.com/tags/Agile">Agile</a>, <a rel="tag" href="http://technorati.com/tags/CodeCoverage">CodeCoverage</a>, <a rel="tag" href="http://technorati.com/tags/TDD">TDD</a>, <a rel="tag" href="http://technorati.com/tags/UnitTest">UnitTest</a></p><img src="http://blogs.ugidotnet.org/rucka/aggbug/69024.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2007/01/29/69024.aspx Mon, 29 Jan 2007 13:14:00 GMT http://blogs.ugidotnet.org/rucka/archive/2007/01/29/69024.aspx#feedback 4 http://blogs.ugidotnet.org/rucka/comments/commentRss/69024.aspx DavsGen Prima Versione http://blogs.ugidotnet.org/rucka/archive/2005/02/25/11479.aspx <p>Il codedom si sa è una delle parti più interessanti del framework. Visto che c'è, perchè non usarlo? <a href="http://devarchitect.dyndns.tv/DesktopDefault.aspx?tabid=48">DavsGen </a>è la prima versione versione di una serie di wizard integrati nel visual studio. Quando si aggiunge una classe ad un progetto di vs (sia esso in csharp che in vb) potrebbe essere utile avere una GUI  per dichiarare i membri della classe e  associargli automaticamente le propietà  senza doversele scrivere ogni volta a mano. </p> <p>Il <a href="http://devarchitect.dyndns.tv/DesktopDefault.aspx?tabid=48">wizard </a>è liberamente scaricabile dal <a href="http://www.devarchitect.tk">sito</a>. DavsGen è distribuito sotto forma di file di installazione per semplificare il deploy del wizard. Ovviamente ogni feedback, idea o commento è ben accetto!</p> <p align="center"><a href="http://devarchitect.dyndns.tv/Portals/57ad7180-c5e7-49f5-b282-c6475cdb7ee7/wizard.JPG"><img height="600" src="http://devarchitect.dyndns.tv/Portals/57ad7180-c5e7-49f5-b282-c6475cdb7ee7/wizard.JPG" /></a></p><div style="margin: 0px; padding: 0px; display: inline;" contenteditable="false" class="wlWriterSmartContent">Technorati tags: <a rel="tag" href="http://technorati.com/tags/codedom">codedom</a>, <a rel="tag" href="http://technorati.com/tags/code%20generator">code generator</a></div><img src="http://blogs.ugidotnet.org/rucka/aggbug/11479.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2005/02/25/11479.aspx Fri, 25 Feb 2005 13:06:00 GMT http://blogs.ugidotnet.org/rucka/archive/2005/02/25/11479.aspx#feedback 1 http://blogs.ugidotnet.org/rucka/comments/commentRss/11479.aspx Mono 1.0 Finalmente ci siamo! http://blogs.ugidotnet.org/rucka/archive/2004/06/30/404.aspx <P>Nuovo sito, nuovo look e nuova release! Finalmente &#232; uscita la versione 1.0 di <A href="http://www.go-mono.org">Mono</A>!</P> <P>Cosa c'&#232; di nuovo?</P> <LI>A cross platform ECMA CLI runtime engine. <LI>A cross platform <A href="http://www.ikvm.net/">IKVM</A> Java runtime engine. <LI>C# 1.0 compiler. <LI>Development toolchain. <LI>Class libraries implementing the .NET 1.1 profile. <LI>The Gtk# 1.0 GUI programming toolkit. <LI>Mono specific libraries. <LI>Third party convenience libraries bundled with the release. <LI>GNU Classpath for the CLI. <LI>Visual Basic runtime. </LI> <P>Non rimane che dare il <A href="http://www.mono-project.com/downloads/">link </A>per il download:) </P> <P>Sono giorni caldi per il framework .NET. Ieri l'uscita della beta 1 della versione 2.0 e oggi mono.... Non c'&#232; che dire.... c'&#232; solo da codare:P</P><img src="http://blogs.ugidotnet.org/rucka/aggbug/404.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2004/06/30/404.aspx Wed, 30 Jun 2004 21:27:00 GMT http://blogs.ugidotnet.org/rucka/archive/2004/06/30/404.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/404.aspx Come faccio a inglobare nelle mie applicazioni il QueryDesigner che si trova nell'Enterprise Manager http://blogs.ugidotnet.org/rucka/archive/2004/03/08/397.aspx <P><A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vdbref/html/dvconquerydesignerlayout.asp">La risposta &#232; non si pu&#242;</A>. O almeno questa &#232; la risposta che mi &#232; stata data da tutti gli sviluppatori a cui ho rivolto questa domanda... La soluzione?  </P> <P>L'unica soluzione che mi &#232; venuta in mente &#232; stata farselo... Armato solo di <A href="http://www.ugidotnet.org/PermaLink.aspx?guid=60ffe923-bfaa-4cc5-b12b-7bd09c9f8c29">QueryDOM</A> e Visual Studio mi sono messo sotto un paio di settimane e il risultato prodotto si chiama <A href="http://gianluca.europe.webmatrixhosting.net/DesktopDefault.aspx?tabid=47">QueryBuilder</A>... Sicuramente seguiranno altre versioni (mancano ancora da implementare un po' di feature) ma il risultato mi sembrava carino &#232; voluto proporvelo. Come al solito sono ben accette critiche e feedback:)</P><img src="http://blogs.ugidotnet.org/rucka/aggbug/397.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2004/03/08/397.aspx Mon, 08 Mar 2004 18:36:00 GMT http://blogs.ugidotnet.org/rucka/archive/2004/03/08/397.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/397.aspx MonoDevelop 0.1 http://blogs.ugidotnet.org/rucka/archive/2004/03/05/396.aspx <P>Ora anche mono ha il suo IDE!!! Si chiama <A href="http://www.monodevelop.com">MonoDevelop </A>ed &#232; il portinig di SharpDevelop per GTK#... c'&#232; ancora molto lavoro da fare ma come si dice, &#232; sempre meglio di....:)</P><img src="http://blogs.ugidotnet.org/rucka/aggbug/396.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2004/03/05/396.aspx Fri, 05 Mar 2004 11:26:00 GMT http://blogs.ugidotnet.org/rucka/archive/2004/03/05/396.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/396.aspx Atom 0.4 Release http://blogs.ugidotnet.org/rucka/archive/2004/02/25/395.aspx <P>Ormai siamo alla versione 0.4 della libreria di Lawrence che sta avendo un ottimo successo. Questa release introduce parecchie<A href="http://cvs.sourceforge.net/viewcvs.py/atomnet/Atom.NET/CHANGES.txt?view=markup"> novit&#224; </A>rispetto alla precedente soprattutto per quanto riguarda l'architettura e il parser. </P> <P>Atom.NET: <A href="http://atomnet.sourceforge.net/">http://atomnet.sourceforge.net/</A></P><img src="http://blogs.ugidotnet.org/rucka/aggbug/395.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2004/02/25/395.aspx Wed, 25 Feb 2004 10:22:00 GMT http://blogs.ugidotnet.org/rucka/archive/2004/02/25/395.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/395.aspx QueryDOM versione 0.3 http://blogs.ugidotnet.org/rucka/archive/2004/02/11/392.aspx <P>Dopo molto lavoro e dopo un ultimo refactoring lampo, &#232; con piacere che sottopongo al critico giudizio del pubblico QueryDOM. Query Document Object Model (QueryDOM) &#232; una libreria open source che espone un modello ad oggetti per manipolare query sql. Tra le altre cose la libreria espone una serie di interfaccie per aggangiare tools di parsing al QueryDOM. Attualmente &#232; stato sviluppato un wrapper per il parser <A href="http://www.devincook.com/goldparser/">GParser</A>.</P> <P>Home Page: <A href="http://qdom.sourceforge.net">http://qdom.sourceforge.net</A></P> <P>Project Page: <A href="http://sourceforge.net/projects/qdom">http://sourceforge.net/projects/qdom</A></P><img src="http://blogs.ugidotnet.org/rucka/aggbug/392.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2004/02/11/392.aspx Wed, 11 Feb 2004 01:14:00 GMT http://blogs.ugidotnet.org/rucka/archive/2004/02/11/392.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/392.aspx Nuova release di Atom.NET http://blogs.ugidotnet.org/rucka/archive/2004/02/04/390.aspx <P>Il nostro Lawrence ha pubblicato la release 0.3 di Atom.NET. Oltre a qualche bugfix, tra le novit&#224; spicca il parser dei feed atom. </P> <P>Atom.NET potete trovarlo al link <A href="http://atomnet.sourceforge.net">http://atomnet.sourceforge.net</A> .</P><img src="http://blogs.ugidotnet.org/rucka/aggbug/390.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2004/02/04/390.aspx Wed, 04 Feb 2004 10:26:00 GMT http://blogs.ugidotnet.org/rucka/archive/2004/02/04/390.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/390.aspx Mono: siamo alla release 0.29! http://blogs.ugidotnet.org/rucka/archive/2003/12/03/388.aspx <P><SPAN class=TEXTBLOCK_J id=lblTesto>Il <A href="http://www.go-mono.org/" target=_blank>sito ufficiale</A> annuncia la disponibilit&#224; della versione 0.29 di <STRONG>Mono</STRONG>, tra le novit&#224; proposte dalla <A href="http://www.go-mono.com/archive/mono-0.29.html" target=_blank>lista</A> degli aggiornamenti spicca il completamento delle feature di ASP.NET e l'inizio del supporto del JIT per il PowerPC.</SPAN> </P> <P> </P><img src="http://blogs.ugidotnet.org/rucka/aggbug/388.aspx" width="1" height="1" /> Gianluca Carucci http://blogs.ugidotnet.org/rucka/archive/2003/12/03/388.aspx Wed, 03 Dec 2003 10:18:00 GMT http://blogs.ugidotnet.org/rucka/archive/2003/12/03/388.aspx#feedback http://blogs.ugidotnet.org/rucka/comments/commentRss/388.aspx