<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>Visual Studio Team System</title>
        <link>http://blogs.ugidotnet.org/dotNET4ever/category/Visual Studio Team System.aspx</link>
        <description>Visual Studio Team System</description>
        <language>it-IT</language>
        <copyright>Michele Bernardi</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Power Tools: Backup TFS</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2010/08/19/power-tools-backup-tfs.aspx</link>
            <description>&lt;p&gt;Per tutti quelli che non seguono il blog di &lt;a href="http://blogs.msdn.com/b/bharry"&gt;Brian Harry&lt;/a&gt;: dalla prossima versione dei Power Tools sarà disponibile una procedura di backup VERAMENTE ALLA PORTATA DI TUTTI! Soprattutto per chi ha installato la versione Basic, i piccoli team che si aspettano una procedura di backup semplificata.&lt;/p&gt;
&lt;p&gt;Maggiori informazioni (veramente dettagliate): &lt;a href="http://blogs.msdn.com/b/bharry/archive/2010/08/18/backing-up-and-restoring-your-tfs-server.aspx"&gt;alla fonte&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/99085.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2010/08/19/power-tools-backup-tfs.aspx</guid>
            <pubDate>Thu, 19 Aug 2010 10:03:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2010/08/19/power-tools-backup-tfs.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/99085.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/99085.aspx</trackback:ping>
        </item>
        <item>
            <title>TFS Basic 2010: caratteristiche</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/10/22/tfs-basic-2010-caratteristiche.aspx</link>
            <description>Lorenzo ci ha insegnato ad installarlo, ma ancora parlato nessuno ci ha detto "perché é basic"... &lt;a title="" href="#"&gt;&lt;img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/wink_smile.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
Premessa: TFS Basic sarà un'opzione di installazione di TFS 2010 (non un prodotto a parte).&lt;br /&gt;
TFS Basic é "solo" il Source Control di TFS, ovvero rispetto a TFS "normale" vi mancano:&lt;br /&gt;
- Tutto quello che é legato a Reporting Services (quindi niente grafici ficosi per manager, niente stato di avanzamento dei lavori, statistiche, ecc.). Ovviamente anche il Warehouse non c'é (perché fare statistiche se poi non le mostri a nessuno?).&lt;br /&gt;
- Tutto quello che é legato a Sharepoint: quindi niente documentazione allegata (a meno che non vi facciate una cartellina nel SourceControl e facciate Check-Out (esclusivo, of course!) e Check-In a manina)! Ovviamente questo vi permette di girare anche su un SQLExpress (anche già presente sulla macchina) e di girare su un sistema operativo client (Vista - Seven).&lt;br /&gt;
&lt;br /&gt;
Ok, avete installato TFS Basic, ma vi siete pentiti e vorreste passare alla versione "full". NIENTE PAURA: non serve disinstallare niente, basta configurare tutto dalla Team Foundation Administration Console (però non pensate che sarà solo un Next-Next questo).&lt;br /&gt;
&lt;br /&gt;
Limite di utenti a 5? Nì: di default sì, ma se vi installate le CAL potete superare questo limite (ovviamente però dovete girare su Windows Server e SQL Server non-Express).&lt;br /&gt;
&lt;br /&gt;
TFS Web Access? Nì... Non c'é il link in Team Explorer, ma nessuno vi vieta l'accesso diretto: &lt;a mce_href="http://yourserver:8080/tfs/web" href="http://yourserver:8080/tfs/web"&gt;http://yourserver:8080/tfs/web&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Fonte: &lt;a href="javascript:void(0);/*1256198802028*/"&gt;Buckh Hodges&lt;/a&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/97328.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/10/22/tfs-basic-2010-caratteristiche.aspx</guid>
            <pubDate>Thu, 22 Oct 2009 11:07:53 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/10/22/tfs-basic-2010-caratteristiche.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/97328.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/97328.aspx</trackback:ping>
        </item>
        <item>
            <title>[TFS] Security update per Team System Web Access</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/01/27/tfs-security-update-per-team-system-web-access.aspx</link>
            <description>E' stato pubblicato un aggiornamento importante per Team System Web Access: TSWA  2008 SP1. Il &lt;a href="javascript:void(0);/*1233072798822*/"&gt;download&lt;/a&gt; é disponibile anche per la versione in italiano.&lt;br /&gt;
Fate attenzione: non si tratta di un update, ma di una full release per cui dovete prima disinstallare la vecchia versione.&lt;br /&gt;
&lt;br /&gt;
Fonte: &lt;a href="javascript:void(0);/*1233072774831*/"&gt;Hakan Eskic&lt;/a&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/95314.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/01/27/tfs-security-update-per-team-system-web-access.aspx</guid>
            <pubDate>Tue, 27 Jan 2009 18:13:34 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/01/27/tfs-security-update-per-team-system-web-access.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/95314.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/95314.aspx</trackback:ping>
        </item>
        <item>
            <title>[TFS] TFSDeleteProject non (sempre) cancella tutto il progetto</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/01/21/tfs-tfsdeleteproject-non-sempre-cancella-tutto-il-progetto.aspx</link>
            <description>In TFS l'unico metodo per cancellare un progetto é tramite un tool a linea di comando: TFSDeleteProject. Alcune informazioni relative al progetto poterbbero però sopravvivere anche a questa operazione, in particolare:&lt;br /&gt;
- Il TFSWarehouse non subirà alcuna modifica, i dati relativi al progetto rimarranno caricati. Per eliminare questi dati é necessario fare il rebuild del TFSwarehouse (vedi &lt;a href="javascript:void(0);/*1232526226784*/"&gt;Setupwarehouse&lt;/a&gt;)&lt;br /&gt;
- Le cartelle dove viene fatto il drop delle build non vengono toccate&lt;br /&gt;
- Metadati dei workitem condivisi tra più progetti&lt;br /&gt;
- Shelveset che contengono file provenienti da un altro progetto&lt;br /&gt;
&lt;br /&gt;
Maggiori informazioni: &lt;a href="javascript:void(0);/*1232526811884*/"&gt;qui&lt;/a&gt;&lt;br /&gt;
Fonte: &lt;a href="javascript:void(0);/*1232526793299*/"&gt;neno's blog&lt;/a&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/95262.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/01/21/tfs-tfsdeleteproject-non-sempre-cancella-tutto-il-progetto.aspx</guid>
            <pubDate>Wed, 21 Jan 2009 10:33:54 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/01/21/tfs-tfsdeleteproject-non-sempre-cancella-tutto-il-progetto.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/95262.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/95262.aspx</trackback:ping>
        </item>
        <item>
            <title>[TFS] Problemi con l'installazione di TFS?</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/01/07/tfs-problemi-con-linstallazione-di-tfs.aspx</link>
            <description>Problemi con l'installazione di TFS?&lt;br /&gt;
TFS non é il classico pacchetto Microsoft con un installazione "Avanti-Avanti-Fine" e spesso possono esserci dei problemi. Oltre al solito consiglio di attenervi scrupolosamente alla guida d'installazione (da scaricare nella versione più aggiornata &lt;a href="javascript:void(0);/*1231337645998*/"&gt;qui&lt;/a&gt;) vi segnalo che é stata creata una guida per risolvere i problemi più ricorrenti. La trovate &lt;a href="javascript:void(0);/*1231337717269*/"&gt;qui&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Fonte: &lt;a href="javascript:void(0);/*1231337440258*/"&gt;bharry's blog&lt;/a&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/95122.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/01/07/tfs-problemi-con-linstallazione-di-tfs.aspx</guid>
            <pubDate>Wed, 07 Jan 2009 16:16:37 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2009/01/07/tfs-problemi-con-linstallazione-di-tfs.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/95122.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/95122.aspx</trackback:ping>
        </item>
        <item>
            <title>[Team System] Rimuovere i riferimenti al Source Control</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/09/12/team-system-rimuovere-i-riferimenti-al-source-control.aspx</link>
            <description>&lt;p&gt;...&lt;a href="http://blogs.ugidotnet.org/dotnet4ever/archive/2007/09/10/team-system-vs-2003-e-progetti-web.aspx"&gt;se dovesse servirvi&lt;/a&gt;, per eliminare i riferimenti al Source Control da una solution VS2003 dovete: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;eliminare tutti i file con estensione: vssscc, vspscc, scc, suo &lt;/li&gt;
    &lt;li&gt;aprire i file di Solution ed eliminare la section "&lt;em&gt;GlobalSection(SourceCodeControl)&lt;/em&gt;" &lt;/li&gt;
    &lt;li&gt;aprire i file di progetto, navigare nel tag &lt;em&gt;&amp;lt;VisualStudioProject&amp;gt; &amp;lt;VisualBasic&lt;/em&gt; (o &lt;em&gt;&amp;lt;VisualStudioProject&amp;gt; &amp;lt;CSHARP&lt;/em&gt;) ed eliminare gli attributi: &lt;em&gt;SccProjectName, SccLocalPath, SccProvider&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/88288.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/09/12/team-system-rimuovere-i-riferimenti-al-source-control.aspx</guid>
            <pubDate>Wed, 12 Sep 2007 19:37:58 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/09/12/team-system-rimuovere-i-riferimenti-al-source-control.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/88288.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/88288.aspx</trackback:ping>
        </item>
        <item>
            <title>[Team System] VS 2003 e progetti Web</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/09/10/team-system-vs-2003-e-progetti-web.aspx</link>
            <description>&lt;p&gt;Con la doverosa premessa che la paternità di questo post va condivisa con il buon &lt;a href="http://blogs.ugidotnet.org/janky/"&gt;Janky&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Visual Studio .NET 2003 (credo anche 2002, ma, grazie a Dio, non devo pormi questa domanda) ha un comportamento che potrebbe sembrare piuttosto strano rispetto l'interazione tra i progetti Web e il Source Control. &lt;/p&gt;
&lt;p&gt;Avete mai provato a scaricare per la prima volta una Web application .NET 1.1 da Team Foundation Server e successivamente aprirla con Visual Studio? Quasi sicuramente vi sarà comparsa una schermata che vi propone di creare il binding tra il vostro codice sorgente ed il famigerato progetto web (che non viene trovato!). &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://mksoft.interfree.it/UGI/091007_1614_TeamSystemV1.png" /&gt; &lt;/p&gt;
&lt;p&gt;Nulla di buono viene dopo questa schermata (&lt;em&gt;annulla&lt;/em&gt; vi salta il caricamento del progetto Web in questione, &lt;em&gt;ok&lt;/em&gt; vi porta ad una schermata di richiesta di creazione di un binding all'interno di un workspace, che si rileva impossibile da creare). &lt;/p&gt;
&lt;p&gt;Tutto questo, in buona sostanza, succede per due motivi: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;VS2003 memorizza la locazione dei progetti Web in base alla loro posizione nel web stesso (quindi &lt;a href="http://localhost/VirtualDirectory"&gt;http://localhost/&lt;em&gt;VirtualDirectory&lt;/em&gt;&lt;/a&gt; se sviluppate in una macchina locale), mentre il Source Control li memorizza in base alla struttura logica della solution (quindi la cartella Web sotto a quella della solution). &lt;/li&gt;
    &lt;li&gt;Le solution sono accompagnate da un file "&lt;em&gt;.suo&lt;/em&gt;" che contiene le "user options" della solution. Questo, ovviamente, non viene inserito nel Source Control in quanto varia da utente a utente, ma contiene le informazioni mancanti per il binding tra TFS e progetto Web &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La procedura da adottare (la cui paternità é, appunto, di &lt;a href="http://blogs.ugidotnet.org/janky/"&gt;Janky&lt;/a&gt;) per ricostruire il binding in maniera corretta é: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Ceare la cartella che conterrà il progetto Web e impostarla come Virtual Directory &lt;/li&gt;
    &lt;li&gt;Aprire VS 2003, Menù &lt;em&gt;File&lt;/em&gt;, &lt;em&gt;Source Control&lt;/em&gt;, &lt;em&gt;Open from Source Control&lt;/em&gt; e infine selezionare server e percorso della solution &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Fin qui tutto bene, ma supponiamo ora che voi dobbiate scaricare su un computer qualche centinaio di applicazioni. Ho cercato di trovare qualche soluzione, ma non tutte si sono rivelate praticabili: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Creare da codice i file &lt;em&gt;.suo&lt;/em&gt; con il binding corretto &lt;/li&gt;
    &lt;li&gt;Usare il Visual Studio SDK per automatizzare l'apertura &lt;/li&gt;
    &lt;li&gt;Scaricare i sorgenti e rimuoverne il collegamento con il Source Control da codice &lt;/li&gt;
    &lt;li&gt;Prendere un dipendente-scimmietta (offesa riferita al lavoro non al dipendente) che faccia il lavoro &lt;strong&gt;a mano&lt;/strong&gt; al posto vostro &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Dicevo che non tutte le strade sono praticabili: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;I file suo, a differenza di sln e &lt;em&gt;((cs)|(vb))proj&lt;/em&gt; sono in formato &lt;strong&gt;proprietario binario&lt;/strong&gt;. Non sono riuscito a trovare documentazione su come crearli/modificarli &lt;/li&gt;
    &lt;li&gt;Il comando &lt;em&gt;File.OpenFromSourceControl&lt;/em&gt; da invocare con: EnvDTE.ExecuteCommand("File.OpenFromSourceControl") sembra non accettare alcun parametro (e manca completamente documentazione ufficiale in merito) &lt;/li&gt;
    &lt;li&gt;Io ho deciso di praticare questa via perché ai miei fini non era importante che il codice rimanesse collegato al Source Control (non veniva modificato, ma solo analizzato). Nella parte 2 vi do le dritte necessarie. &lt;/li&gt;
    &lt;li&gt;Beh... Questa é la soluzione che ho visto praticare più spesso... Per altro vi consiglio di procurarvi quantomeno una persona socievole e piacevole d'aspetto altrimenti impazzirete a sentire i suoi sbuffi dopo la prima giornata!&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/88224.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/09/10/team-system-vs-2003-e-progetti-web.aspx</guid>
            <pubDate>Mon, 10 Sep 2007 19:16:14 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/09/10/team-system-vs-2003-e-progetti-web.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/88224.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/88224.aspx</trackback:ping>
        </item>
        <item>
            <title>[Team System] TeamFoundationServerFactory e TeamFoundationServer.Dispose</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/09/04/team-system-teamfoundationserverfactory-e-teamfoundationserver.dispose.aspx</link>
            <description>&lt;p&gt;Sempre sulla scia della &lt;a href="http://blogs.ugidotnet.org/dotnet4ever/archive/2007/09/03/team-system-teamfoundationserverfactory-e-authentication.aspx"&gt;mia indagine sugli oggetti&lt;/a&gt; &lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: Courier New"&gt;TeamFoundationServer&lt;/span&gt; creati mediante &lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: Courier New"&gt;TeamFoundationServerFactory&lt;/span&gt; ho notato un altro dettaglio: se creiamo più oggetti con la Factory e poi si invoca Dispose su uno di essi &lt;strong&gt;tutti&lt;/strong&gt; gli oggetti diventano inutilizzabili (perché sono banalmente lo stesso oggetto)!!! &lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;span style="COLOR: #2b91af"&gt;TeamFoundationServer&lt;/span&gt; tfs1 = &lt;span style="COLOR: #2b91af"&gt;TeamFoundationServerFactory&lt;/span&gt;.GetServer(&lt;span style="COLOR: #a31515"&gt;"http://tfsrtmsp1:8080"&lt;/span&gt;);&lt;br /&gt;
tfs1.Authenticate();&lt;br /&gt;
&lt;span style="COLOR: #2b91af"&gt;TeamFoundationServer&lt;/span&gt; tfs2 = &lt;span style="COLOR: #2b91af"&gt;TeamFoundationServerFactory&lt;/span&gt;.GetServer(&lt;span style="COLOR: #a31515"&gt;"http://tfsrtmsp1:8080"&lt;/span&gt;);&lt;br /&gt;
tfs2.Authenticate();&lt;br /&gt;
tfs1.Dispose();&lt;br /&gt;
&lt;span style="COLOR: #2b91af"&gt;VersionControlServer&lt;/span&gt; vfs2 = (&lt;span style="COLOR: #2b91af"&gt;VersionControlServer&lt;/span&gt;)tfs2.GetService(&lt;span style="COLOR: blue"&gt;typeof&lt;/span&gt;(&lt;span style="COLOR: #2b91af"&gt;VersionControlServer&lt;/span&gt;));&lt;br /&gt;
&lt;/span&gt;L'ultima linea, infatti, genera una bella NullReferenceException!&lt;br /&gt;
In effetti basta verificare che &lt;font color="#0000ff" size="2"&gt;object&lt;/font&gt;&lt;font size="2"&gt;.ReferenceEquals(tfs1, tfs2) é effettivamente true!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Quindi, se usate la Factory NON fate il dispose del &lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: Courier New"&gt;TeamFoundationServer&lt;/span&gt; fino &lt;strike&gt;alla fine del programma&lt;/strike&gt; a quando non siete certi che non ne usate più da nessuna parte!!!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/88114.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/09/04/team-system-teamfoundationserverfactory-e-teamfoundationserver.dispose.aspx</guid>
            <pubDate>Tue, 04 Sep 2007 16:16:08 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/09/04/team-system-teamfoundationserverfactory-e-teamfoundationserver.dispose.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/88114.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/88114.aspx</trackback:ping>
        </item>
        <item>
            <title>[Team System] Consultare le label presenti</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/08/28/team-system-consultare-le-label-presenti.aspx</link>
            <description>&lt;p&gt;La &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.versioncontrolserver.querylabels(VS.80).aspx"&gt;documentazione MSDN&lt;/a&gt; in merito al metodo QueryLabels della classe VersionControlServer mi sembra poco chiara. In particolare esistono 3 overloads del metodo:
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;&lt;span style="color:blue"&gt;public&lt;/span&gt;
			&lt;span style="color:#2b91af"&gt;VersionControlLabel&lt;/span&gt;[] QueryLabels(&lt;span style="color:blue"&gt;string&lt;/span&gt; labelName, &lt;span style="color:blue"&gt;string&lt;/span&gt; labelScope, &lt;span style="color:blue"&gt;string&lt;/span&gt; owner, &lt;span style="color:blue"&gt;bool&lt;/span&gt; includeItems);&lt;br /&gt;&lt;span style="color:blue"&gt;public&lt;/span&gt;
			&lt;span style="color:#2b91af"&gt;VersionControlLabel&lt;/span&gt;[] QueryLabels(&lt;span style="color:blue"&gt;string&lt;/span&gt; labelName, &lt;span style="color:blue"&gt;string&lt;/span&gt; labelScope, &lt;span style="color:blue"&gt;string&lt;/span&gt; owner, &lt;span style="color:blue"&gt;bool&lt;/span&gt; includeItems, &lt;span style="color:blue"&gt;string&lt;/span&gt; filterItem, &lt;span style="color:#2b91af"&gt;VersionSpec&lt;/span&gt; versionFilterItem);&lt;br /&gt;&lt;span style="color:blue"&gt;public&lt;/span&gt;
			&lt;span style="color:#2b91af"&gt;VersionControlLabel&lt;/span&gt;[] QueryLabels(&lt;span style="color:blue"&gt;string&lt;/span&gt; labelName, &lt;span style="color:blue"&gt;string&lt;/span&gt; labelScope, &lt;span style="color:blue"&gt;string&lt;/span&gt; owner, &lt;span style="color:blue"&gt;bool&lt;/span&gt; includeItems, &lt;span style="color:blue"&gt;string&lt;/span&gt; filterItem, &lt;span style="color:#2b91af"&gt;VersionSpec&lt;/span&gt; versionFilterItem, &lt;span style="color:blue"&gt;bool&lt;/span&gt; includeDownloadInfo);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;I parametri sono in parte comuni, ma secondo me poco chiari:
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;labelName&lt;/span&gt;: Nome della label cercata, se sconosciuta indicare &lt;em&gt;null&lt;/em&gt;.
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;labelScope&lt;/span&gt;: Il &lt;strong&gt;teamproject&lt;/strong&gt; a cui é applicata la label. Potete anche indicare un folder del versioncontrol, ma verrà tenuto conto &lt;strong&gt;solo del team project&lt;/strong&gt;, &lt;em&gt;null&lt;/em&gt; se sconosciuto
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;owner&lt;/span&gt;: Utente proprietario dell'etichetta, &lt;em&gt;null&lt;/em&gt; se sconosciuto.
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;includeItems&lt;/span&gt;: Se true carica da subito anche i riferimenti agli item che sono etichettati cone le etichette trovate.
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;filterItem&lt;/span&gt;: &lt;strong&gt;Un&lt;/strong&gt; item (uno solo, no wildcards) che deve essere etichettato dale etichette cercate. Se cercate le etichette che sono applicate su (anche su) un certo file mettelo come filterItem. &lt;em&gt;Null&lt;/em&gt; se non vi interessa (ma a questo punto vi conveniva un altro overload).
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;versionFilterItem&lt;/span&gt;: La versione del filterItem che deve essere inclusa. Non sono presenti una versione iniziale e una finale perché questo argomento &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=967728&amp;amp;SiteID=1"&gt;dovrebbe eliminare possibili ambiguità dovuti a rename&lt;/a&gt;. In realtà questo argomento non funziona come ci si aspetta:
&lt;/p&gt;&lt;p&gt;1: da eccezione se passate &lt;em&gt;null&lt;/em&gt; (&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=638233&amp;amp;SiteID=1"&gt;mentre dovrebbe cercare in tutte le versioni&lt;/a&gt;)
&lt;/p&gt;&lt;p&gt;2: pare che se passate una qualsiasi versione cerchi comunque in tutte le versioni
&lt;/p&gt;&lt;p&gt;3: passate VersionSpec.Latest per cercare in tutte le versioni
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;includeDownloadInfo&lt;/span&gt;: Se true vengono incluse delle informazioni che servono a scaricare il file&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/87997.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/08/28/team-system-consultare-le-label-presenti.aspx</guid>
            <pubDate>Tue, 28 Aug 2007 21:27:03 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/08/28/team-system-consultare-le-label-presenti.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/87997.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/87997.aspx</trackback:ping>
        </item>
        <item>
            <title>[Team System] VersionControlServer.CreateLabel()</title>
            <link>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/08/28/team-system-versioncontrolserver.createlabel.aspx</link>
            <description>&lt;p&gt;Una piccola nota sul metodo CreateLabel della classe VersionControlServer: l'ID della label da creare passata ovviamente non viene aggiornato, pertanto per avere l'oggetto label corretto é necessario ricaricarlo.
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;&lt;span style="color:blue"&gt;public&lt;/span&gt;
			&lt;span style="color:blue"&gt;virtual&lt;/span&gt;
			&lt;span style="color:#2b91af"&gt;VersionControlLabel&lt;/span&gt; CreateLabel(&lt;span style="color:#2b91af"&gt;VersionControlLabel&lt;/span&gt; label, &lt;span style="color:#2b91af"&gt;ItemSpec&lt;/span&gt; items, &lt;span style="color:#2b91af"&gt;VersionSpec&lt;/span&gt; version)
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;&lt;span style="color:#2b91af"&gt;VersionControlServer&lt;/span&gt; vcs = label.VersionControlServer;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;&lt;span style="color:#2b91af"&gt;LabelItemSpec&lt;/span&gt; item = &lt;span style="color:blue"&gt;new&lt;/span&gt;
			&lt;span style="color:#2b91af"&gt;LabelItemSpec&lt;/span&gt;(items, version, &lt;span style="color:blue"&gt;false&lt;/span&gt;);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;&lt;span style="color:#2b91af"&gt;LabelResult&lt;/span&gt;[] res = vcs.CreateLabel(label, &lt;span style="color:blue"&gt;new&lt;/span&gt;
			&lt;span style="color:#2b91af"&gt;LabelItemSpec&lt;/span&gt;[] { item }, &lt;span style="color:#2b91af"&gt;LabelChildOption&lt;/span&gt;.Replace);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;&lt;span style="color:blue"&gt;if&lt;/span&gt; (res.Length &amp;gt; 0 &amp;amp;&amp;amp; res[0].Status == &lt;span style="color:#2b91af"&gt;LabelResultStatus&lt;/span&gt;.Created)
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="color:green; font-family:Courier New; font-size:10pt"&gt;//Reload label per ottenere l'ID giusto!
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;label = vcs.QueryLabels(label.Name, label.Scope, label.OwnerName, &lt;span style="color:blue"&gt;false&lt;/span&gt;)[0];
&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt"&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;&lt;span style="color:blue"&gt;return&lt;/span&gt; label;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;&lt;span style="color:blue"&gt;return&lt;/span&gt;
			&lt;span style="color:blue"&gt;null&lt;/span&gt;;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dotNET4ever/aggbug/87989.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michele Bernardi</dc:creator>
            <guid>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/08/28/team-system-versioncontrolserver.createlabel.aspx</guid>
            <pubDate>Tue, 28 Aug 2007 11:58:59 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/dotNET4ever/archive/2007/08/28/team-system-versioncontrolserver.createlabel.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dotNET4ever/comments/commentRss/87989.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dotNET4ever/services/trackbacks/87989.aspx</trackback:ping>
        </item>
    </channel>
</rss>