<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>Per tutti quelli che non seguono il blog di Brian Harry: 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.
Maggiori informazioni (veramente dettagliate): alla fonte.&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"... 
Premessa: TFS Basic sarà un'opzione di installazione di TFS 2010 (non un prodotto a parte).
TFS Basic é "solo" il Source Control di TFS, ovvero rispetto a TFS "normale" vi mancano:
- 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?).
- 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).

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).

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).

TFS Web Access? Nì... Non c'é il link in Team Explorer, ma nessuno vi vieta l'accesso diretto: http://yourserver:8080/tfs/web.

Fonte: Buckh Hodges&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 download é disponibile anche per la versione in italiano.
Fate attenzione: non si tratta di un update, ma di una full release per cui dovete prima disinstallare la vecchia versione.

Fonte: Hakan Eskic&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:
- Il TFSWarehouse non subirà alcuna modifica, i dati relativi al progetto rimarranno caricati. Per eliminare questi dati é necessario fare il rebuild del TFSwarehouse (vedi Setupwarehouse)
- Le cartelle dove viene fatto il drop delle build non vengono toccate
- Metadati dei workitem condivisi tra più progetti
- Shelveset che contengono file provenienti da un altro progetto

Maggiori informazioni: qui
Fonte: neno's blog&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?
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 qui) vi segnalo che é stata creata una guida per risolvere i problemi più ricorrenti. La trovate qui.

Fonte: bharry's blog&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>...se dovesse servirvi, per eliminare i riferimenti al Source Control da una solution VS2003 dovete: 

    eliminare tutti i file con estensione: vssscc, vspscc, scc, suo 
    aprire i file di Solution ed eliminare la section "GlobalSection(SourceCodeControl)" 
    aprire i file di progetto, navigare nel tag &amp;lt;VisualStudioProject&amp;gt; &amp;lt;VisualBasic (o &amp;lt;VisualStudioProject&amp;gt; &amp;lt;CSHARP) ed eliminare gli attributi: SccProjectName, SccLocalPath, SccProvider
&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>Con la doverosa premessa che la paternità di questo post va condivisa con il buon Janky. 
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. 
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!). 
 
Nulla di buono viene dopo questa schermata (annulla vi salta il caricamento del progetto Web in questione, ok vi porta ad una schermata di richiesta di creazione di un binding all'interno di un workspace, che si rileva impossibile da creare). 
Tutto questo, in buona sostanza, succede per due motivi: 

    VS2003 memorizza la locazione dei progetti Web in base alla loro posizione nel web stesso (quindi http://localhost/VirtualDirectory 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). 
    Le solution sono accompagnate da un file ".suo" 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 

La procedura da adottare (la cui paternità é, appunto, di Janky) per ricostruire il binding in maniera corretta é: 

    Ceare la cartella che conterrà il progetto Web e impostarla come Virtual Directory 
    Aprire VS 2003, Menù File, Source Control, Open from Source Control e infine selezionare server e percorso della solution 

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: 

    Creare da codice i file .suo con il binding corretto 
    Usare il Visual Studio SDK per automatizzare l'apertura 
    Scaricare i sorgenti e rimuoverne il collegamento con il Source Control da codice 
    Prendere un dipendente-scimmietta (offesa riferita al lavoro non al dipendente) che faccia il lavoro a mano al posto vostro 

Dicevo che non tutte le strade sono praticabili: 

    I file suo, a differenza di sln e ((cs)|(vb))proj sono in formato proprietario binario. Non sono riuscito a trovare documentazione su come crearli/modificarli 
    Il comando File.OpenFromSourceControl da invocare con: EnvDTE.ExecuteCommand("File.OpenFromSourceControl") sembra non accettare alcun parametro (e manca completamente documentazione ufficiale in merito) 
    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. 
    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;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>Sempre sulla scia della mia indagine sugli oggetti TeamFoundationServer creati mediante TeamFoundationServerFactory ho notato un altro dettaglio: se creiamo più oggetti con la Factory e poi si invoca Dispose su uno di essi tutti gli oggetti diventano inutilizzabili (perché sono banalmente lo stesso oggetto)!!! 
TeamFoundationServer tfs1 = TeamFoundationServerFactory.GetServer("http://tfsrtmsp1:8080");
tfs1.Authenticate();
TeamFoundationServer tfs2 = TeamFoundationServerFactory.GetServer("http://tfsrtmsp1:8080");
tfs2.Authenticate();
tfs1.Dispose();
VersionControlServer vfs2 = (VersionControlServer)tfs2.GetService(typeof(VersionControlServer));
L'ultima linea, infatti, genera una bella NullReferenceException!
In effetti basta verificare che object.ReferenceEquals(tfs1, tfs2) é effettivamente true!
Quindi, se usate la Factory NON fate il dispose del TeamFoundationServer fino alla fine del programma a quando non siete certi che non ne usate più da nessuna parte!!!&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>La documentazione MSDN in merito al metodo QueryLabels della classe VersionControlServer mi sembra poco chiara. In particolare esistono 3 overloads del metodo:
public
			VersionControlLabel[] QueryLabels(string labelName, string labelScope, string owner, bool includeItems);public
			VersionControlLabel[] QueryLabels(string labelName, string labelScope, string owner, bool includeItems, string filterItem, VersionSpec versionFilterItem);public
			VersionControlLabel[] QueryLabels(string labelName, string labelScope, string owner, bool includeItems, string filterItem, VersionSpec versionFilterItem, bool includeDownloadInfo);
I parametri sono in parte comuni, ma secondo me poco chiari:
labelName: Nome della label cercata, se sconosciuta indicare null.
labelScope: Il teamproject a cui é applicata la label. Potete anche indicare un folder del versioncontrol, ma verrà tenuto conto solo del team project, null se sconosciuto
owner: Utente proprietario dell'etichetta, null se sconosciuto.
includeItems: Se true carica da subito anche i riferimenti agli item che sono etichettati cone le etichette trovate.
filterItem: Un 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. Null se non vi interessa (ma a questo punto vi conveniva un altro overload).
versionFilterItem: La versione del filterItem che deve essere inclusa. Non sono presenti una versione iniziale e una finale perché questo argomento dovrebbe eliminare possibili ambiguità dovuti a rename. In realtà questo argomento non funziona come ci si aspetta:
1: da eccezione se passate null (mentre dovrebbe cercare in tutte le versioni)
2: pare che se passate una qualsiasi versione cerchi comunque in tutte le versioni
3: passate VersionSpec.Latest per cercare in tutte le versioni
includeDownloadInfo: Se true vengono incluse delle informazioni che servono a scaricare il file&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>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.
public
			virtual
			VersionControlLabel CreateLabel(VersionControlLabel label, ItemSpec items, VersionSpec version)
{
VersionControlServer vcs = label.VersionControlServer;
LabelItemSpec item = new
			LabelItemSpec(items, version, false);
LabelResult[] res = vcs.CreateLabel(label, new
			LabelItemSpec[] { item }, LabelChildOption.Replace);
if (res.Length &amp;gt; 0 &amp;amp;&amp;amp; res[0].Status == LabelResultStatus.Created)
{
//Reload label per ottenere l'ID giusto!
label = vcs.QueryLabels(label.Name, label.Scope, label.OwnerName, false)[0];
return label;
}
return
			null;
}&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>