<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Pubblications</title>
        <link>http://blogs.ugidotnet.org/rucka/category/Pubblications.aspx</link>
        <description>Pubblications</description>
        <language>it-IT</language>
        <copyright>Gianluca Carucci</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>TFS, Checkin Policy e TestManager</title>
            <link>http://blogs.ugidotnet.org/rucka/archive/2007/01/29/69024.aspx</link>
            <description>&lt;p&gt;Come ci racconta benissimo &lt;a href="http://blogs.ugidotnet.org/lbarbieri/"&gt;Lorenzo&lt;/a&gt; nei suoi &lt;a href="http://blogs.ugidotnet.org/lbarbieri/articles/WebCast_VSTS_MSF_TFS_2006.aspx"&gt;webcast&lt;/a&gt;, le &lt;strong&gt;checkin policy&lt;/strong&gt; 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. &lt;/p&gt;
&lt;p&gt;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 &lt;strong&gt;List of&lt;/strong&gt; &lt;strong&gt;Tests&lt;/strong&gt;) 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 &lt;strong&gt;Test Manager&lt;/strong&gt; che purtroppo è contenuto solo nelle versioni &lt;a onclick="javascript:Track('ctl00_ctl01|ctl00_ctl07',this);" href="http://msdn2.microsoft.com/en-us/teamsystem/aa718822.aspx"&gt;&lt;strong&gt;Visual Studio 2005 Team Suite&lt;/strong&gt;&lt;/a&gt; o &lt;a onclick="javascript:Track('ctl00_ctl01|ctl00_ctl15',this);" href="http://msdn2.microsoft.com/en-us/teamsystem/aa718823.aspx"&gt;&lt;strong&gt;Visual Studio 2005 Team Edition for Software Testers&lt;/strong&gt;&lt;/a&gt; (questa limitazione dovrebbe essere risolto in Orcas). Chiunque usi la versione &lt;a onclick="javascript:Track('ctl00_ctl01|ctl00_ctl13',this);" href="http://msdn2.microsoft.com/en-us/teamsystem/aa718809.aspx"&gt;&lt;strong&gt;Visual Studio 2005 Team Edition for Software Developers&lt;/strong&gt;&lt;/a&gt; (la versione più diffusa da chi sviluppa e quindi da chi deve essere controllato che il codice scritto sia testato correttamente) &lt;strong&gt;non può&lt;/strong&gt; 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 &lt;a href="http://ognjenbajic.com/blog/2006/12/test-manager-add-in.html"&gt;Test Manager Add-in&lt;/a&gt; di cui è possibile trovare una versione trial &lt;a href="http://www.ekobit.com/download/EkobitTestManagerSetup.zip"&gt;qui&lt;/a&gt;. 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.  &lt;/p&gt;
&lt;p&gt;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 &lt;strong&gt;tutti i test creati siano &lt;em&gt;sottoposti&lt;/em&gt; automaticamente alla policy di checkin&lt;/strong&gt;. E se lo sviluppatore non scrive alcun test? In questo caso voglio (o vorrei:P) che &lt;strong&gt;il checkin sia bloccato se il codice sorgente non è &lt;em&gt;coperto&lt;/em&gt; adeguatamente dai test&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Visto che sono maleducato e tutte queste cose le voglio (non 'le vorrei'), la soluzione è stata quella di scrivermi una custom policy checkin:D &lt;strong&gt;&lt;a href="http://www.beije.it/ENG/index-1.html"&gt;CheckTestResultPolicy&lt;/a&gt;&lt;/strong&gt; 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 è &lt;a href="http://www.beije.it/download/CheckTestResultPolicy-bin.rar"&gt;qui&lt;/a&gt;, mentre se volete la versione contenente anche il codice sorgente la trovate &lt;a href="http://www.beije.it/download/CheckTestResultPolicy-src.rar"&gt;qui&lt;/a&gt;.Ovviamente il tutto è &lt;em&gt;liberamente&lt;/em&gt; scaricabile e modificabile. Qualsiasi suggerimento e/o modifica al codice è ben accetta!&lt;/p&gt;
&lt;p&gt;Sperando di aver fatto cosa gradita...&lt;/p&gt;
&lt;p&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/TFS"&gt;TFS&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Agile"&gt;Agile&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/CodeCoverage"&gt;CodeCoverage&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/TDD"&gt;TDD&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/UnitTest"&gt;UnitTest&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/rucka/aggbug/69024.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gianluca Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rucka/archive/2007/01/29/69024.aspx</guid>
            <pubDate>Mon, 29 Jan 2007 13:14:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rucka/archive/2007/01/29/69024.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rucka/comments/commentRss/69024.aspx</wfw:commentRss>
        </item>
        <item>
            <title>DavsGen Prima Versione</title>
            <link>http://blogs.ugidotnet.org/rucka/archive/2005/02/25/11479.aspx</link>
            <description>&lt;p&gt;Il codedom si sa è una delle parti più interessanti del framework. Visto che c'è, perchè non usarlo? &lt;a href="http://devarchitect.dyndns.tv/DesktopDefault.aspx?tabid=48"&gt;DavsGen &lt;/a&gt;è 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. &lt;/p&gt;
&lt;p&gt;Il &lt;a href="http://devarchitect.dyndns.tv/DesktopDefault.aspx?tabid=48"&gt;wizard &lt;/a&gt;è liberamente scaricabile dal &lt;a href="http://www.devarchitect.tk"&gt;sito&lt;/a&gt;. DavsGen è distribuito sotto forma di file di installazione per semplificare il deploy del wizard. Ovviamente ogni feedback, idea o commento è ben accetto!&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://devarchitect.dyndns.tv/Portals/57ad7180-c5e7-49f5-b282-c6475cdb7ee7/wizard.JPG"&gt;&lt;img height="600" src="http://devarchitect.dyndns.tv/Portals/57ad7180-c5e7-49f5-b282-c6475cdb7ee7/wizard.JPG" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="margin: 0px; padding: 0px; display: inline;" contenteditable="false" class="wlWriterSmartContent"&gt;Technorati tags: &lt;a rel="tag" href="http://technorati.com/tags/codedom"&gt;codedom&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/code%20generator"&gt;code generator&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/rucka/aggbug/11479.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gianluca Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rucka/archive/2005/02/25/11479.aspx</guid>
            <pubDate>Fri, 25 Feb 2005 13:06:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rucka/archive/2005/02/25/11479.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rucka/comments/commentRss/11479.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Mono 1.0 Finalmente ci siamo!</title>
            <link>http://blogs.ugidotnet.org/rucka/archive/2004/06/30/404.aspx</link>
            <description>&lt;P&gt;Nuovo sito, nuovo look e nuova release! Finalmente &amp;#232; uscita la versione 1.0 di &lt;A href="http://www.go-mono.org"&gt;Mono&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;Cosa c'&amp;#232; di nuovo?&lt;/P&gt;
&lt;LI&gt;A cross platform ECMA CLI runtime engine. 
&lt;LI&gt;A cross platform &lt;A href="http://www.ikvm.net/"&gt;IKVM&lt;/A&gt; Java runtime engine. 
&lt;LI&gt;C# 1.0 compiler. 
&lt;LI&gt;Development toolchain. 
&lt;LI&gt;Class libraries implementing the .NET 1.1 profile. 
&lt;LI&gt;The Gtk# 1.0 GUI programming toolkit. 
&lt;LI&gt;Mono specific libraries. 
&lt;LI&gt;Third party convenience libraries bundled with the release. 
&lt;LI&gt;GNU Classpath for the CLI. 
&lt;LI&gt;Visual Basic runtime. &lt;/LI&gt;
&lt;P&gt;Non rimane che dare il &lt;A href="http://www.mono-project.com/downloads/"&gt;link &lt;/A&gt;per il download:) &lt;/P&gt;
&lt;P&gt;Sono giorni caldi per il framework .NET. Ieri l'uscita della beta 1 della versione 2.0 e oggi mono.... Non c'&amp;#232; che dire.... c'&amp;#232; solo da codare:P&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rucka/aggbug/404.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gianluca Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rucka/archive/2004/06/30/404.aspx</guid>
            <pubDate>Wed, 30 Jun 2004 21:27:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rucka/archive/2004/06/30/404.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rucka/comments/commentRss/404.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Come faccio a inglobare nelle mie applicazioni il QueryDesigner che si trova nell'Enterprise Manager</title>
            <link>http://blogs.ugidotnet.org/rucka/archive/2004/03/08/397.aspx</link>
            <description>&lt;P&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vdbref/html/dvconquerydesignerlayout.asp"&gt;La risposta &amp;#232; non si pu&amp;#242;&lt;/A&gt;. O almeno questa &amp;#232; la risposta che mi &amp;#232; stata data da tutti gli sviluppatori a cui ho rivolto questa domanda... La soluzione?  &lt;/P&gt;
&lt;P&gt;L'unica soluzione che mi &amp;#232; venuta in mente &amp;#232; stata farselo... Armato solo di &lt;A href="http://www.ugidotnet.org/PermaLink.aspx?guid=60ffe923-bfaa-4cc5-b12b-7bd09c9f8c29"&gt;QueryDOM&lt;/A&gt; e Visual Studio mi sono messo sotto un paio di settimane e il risultato prodotto si chiama &lt;A href="http://gianluca.europe.webmatrixhosting.net/DesktopDefault.aspx?tabid=47"&gt;QueryBuilder&lt;/A&gt;... Sicuramente seguiranno altre versioni (mancano ancora da implementare un po' di feature) ma il risultato mi sembrava carino &amp;#232; voluto proporvelo. Come al solito sono ben accette critiche e feedback:)&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rucka/aggbug/397.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gianluca Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rucka/archive/2004/03/08/397.aspx</guid>
            <pubDate>Mon, 08 Mar 2004 18:36:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rucka/archive/2004/03/08/397.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rucka/comments/commentRss/397.aspx</wfw:commentRss>
        </item>
        <item>
            <title>MonoDevelop 0.1</title>
            <link>http://blogs.ugidotnet.org/rucka/archive/2004/03/05/396.aspx</link>
            <description>&lt;P&gt;Ora anche mono ha il suo IDE!!! Si chiama &lt;A href="http://www.monodevelop.com"&gt;MonoDevelop &lt;/A&gt;ed &amp;#232; il portinig di SharpDevelop per GTK#... c'&amp;#232; ancora molto lavoro da fare ma come si dice, &amp;#232; sempre meglio di....:)&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rucka/aggbug/396.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gianluca Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rucka/archive/2004/03/05/396.aspx</guid>
            <pubDate>Fri, 05 Mar 2004 11:26:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rucka/archive/2004/03/05/396.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rucka/comments/commentRss/396.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Atom 0.4 Release</title>
            <link>http://blogs.ugidotnet.org/rucka/archive/2004/02/25/395.aspx</link>
            <description>&lt;P&gt;Ormai siamo alla versione 0.4 della libreria di Lawrence che sta avendo un ottimo successo. Questa release introduce parecchie&lt;A href="http://cvs.sourceforge.net/viewcvs.py/atomnet/Atom.NET/CHANGES.txt?view=markup"&gt; novit&amp;#224; &lt;/A&gt;rispetto alla precedente soprattutto per quanto riguarda l'architettura e il parser. &lt;/P&gt;
&lt;P&gt;Atom.NET: &lt;A href="http://atomnet.sourceforge.net/"&gt;http://atomnet.sourceforge.net/&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rucka/aggbug/395.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gianluca Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rucka/archive/2004/02/25/395.aspx</guid>
            <pubDate>Wed, 25 Feb 2004 10:22:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rucka/archive/2004/02/25/395.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rucka/comments/commentRss/395.aspx</wfw:commentRss>
        </item>
        <item>
            <title>QueryDOM versione 0.3</title>
            <link>http://blogs.ugidotnet.org/rucka/archive/2004/02/11/392.aspx</link>
            <description>&lt;P&gt;Dopo molto lavoro e dopo un ultimo refactoring lampo, &amp;#232; con piacere che sottopongo al critico giudizio del pubblico QueryDOM. Query Document Object Model (QueryDOM) &amp;#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 &amp;#232; stato sviluppato un wrapper per il parser &lt;A href="http://www.devincook.com/goldparser/"&gt;GParser&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Home Page: &lt;A href="http://qdom.sourceforge.net"&gt;http://qdom.sourceforge.net&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Project Page: &lt;A href="http://sourceforge.net/projects/qdom"&gt;http://sourceforge.net/projects/qdom&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rucka/aggbug/392.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gianluca Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rucka/archive/2004/02/11/392.aspx</guid>
            <pubDate>Wed, 11 Feb 2004 01:14:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rucka/archive/2004/02/11/392.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rucka/comments/commentRss/392.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Nuova release di Atom.NET</title>
            <link>http://blogs.ugidotnet.org/rucka/archive/2004/02/04/390.aspx</link>
            <description>&lt;P&gt;Il nostro Lawrence ha pubblicato la release 0.3 di Atom.NET. Oltre a qualche bugfix, tra le novit&amp;#224; spicca il parser dei feed atom. &lt;/P&gt;
&lt;P&gt;Atom.NET potete trovarlo al link &lt;A href="http://atomnet.sourceforge.net"&gt;http://atomnet.sourceforge.net&lt;/A&gt; .&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rucka/aggbug/390.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gianluca Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rucka/archive/2004/02/04/390.aspx</guid>
            <pubDate>Wed, 04 Feb 2004 10:26:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rucka/archive/2004/02/04/390.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rucka/comments/commentRss/390.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Mono: siamo alla release 0.29!</title>
            <link>http://blogs.ugidotnet.org/rucka/archive/2003/12/03/388.aspx</link>
            <description>&lt;P&gt;&lt;SPAN class=TEXTBLOCK_J id=lblTesto&gt;Il &lt;A href="http://www.go-mono.org/" target=_blank&gt;sito ufficiale&lt;/A&gt; annuncia la disponibilit&amp;#224; della versione 0.29 di &lt;STRONG&gt;Mono&lt;/STRONG&gt;, tra le novit&amp;#224; proposte dalla &lt;A href="http://www.go-mono.com/archive/mono-0.29.html" target=_blank&gt;lista&lt;/A&gt; degli aggiornamenti spicca il completamento delle feature di ASP.NET e l'inizio del supporto del JIT per il PowerPC.&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt; &lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rucka/aggbug/388.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gianluca Carucci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rucka/archive/2003/12/03/388.aspx</guid>
            <pubDate>Wed, 03 Dec 2003 10:18:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rucka/archive/2003/12/03/388.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rucka/comments/commentRss/388.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>