Vorrei riportare alcune esperienze fatte con TFS in questi ultimi giorni perchè sono degne di note e ricche di soddisfazioni.
Innanzitutto ringrazio Lorenzo per il supporto, come al solito impeccabile, di TFS ne sa una più del diavolo, e non solo di quello...
Andiamo con ordine:
Installazione: l'installazione l'ho fatta in un ambiente virtuale con Virtual Server, è filato tutto liscio seguendo la guida a corredo, i passi da compiere non sono pochi ma direi che sono decisamente semplici. Inoltre su consiglio del "Raff nazionale" ho montato i dischi virtuali su un controller scsi virtuale migliorando mostruosamente le performance della macchina virtuale.
Facendo il consulente lavoro spessimo, ormai sempre, fuori casa e per accedere a TFS dall'esterno ho deciso, causa forza maggiore, di non esporre direttamente l'application server all'esterno ma preferisco utilizzare una VPN per accedere alla mia rete e da li accedere via HTTP a TFS, su MSDN c'è un articolo che cerca di spiegare come abilitare l'accesso a TFS (e a tutti i suoi componenti: SharePoint Services e Reporting Services) via HTTPS al fine di poter esporre con maggior sicurezza l'application server senza dover passare per una VPN.
Ammetto di averci provato, ecco il motivo del cerca in corsivo e della forza maggiore, ma di non esserci riuscito...e non solo alla fine non andava più nulla... quindi ho buttato la macchina virtuale e rifatto tutto da capo ;-), benedetti "Undo Disks".
Sempre perchè sono spesso lontano dalla mia rete mi capita anche molto spesso di lavorare senza avere il collegamento ad internet, vuoi perchè non c'è proprio o perchè il cliente per policy impedisce ai consulenti l'accesso alla propria rete e vuoi perchè l'UMTS di Vodafone costa una palata..., mi sono accorto che uno dei limiti di TFS è il supporto per lavorare offline, in questa versione (che del resto è una 1.0) è limitato ad un tool da riga di comando per riallineare le modifiche fatte offline con il contenuto del server, ma il tutto è limitato al solo source control, quindi se siete offline non avete più nessun accesso a WorkItem, Bug Tracking e via dicendo.
Le soluzioni comunque ci sono anche adesso, senza dover aspettare le future versioni che si spera introdurranno questa funzionalità.
A Community Days chiaccheravo con Igor sull'uso che lui fa di Groove per accedere ai documenti del portale Share Point avendo così pieno supporto per l'uso offline e per la sincronizzazione e mi sono detto che poteva essere un'ottimo strumento per sopperire ad uno dei limiti di TFS.
WSS 3.0: il vero problema di Groove è che funziona con gli Windows SharePoint Services 3.0 o con il Portale di SharePoint in versione 2007 e non che le precedenti versioni mentre l'installazione di TFS si basa sulla versione precedente.
Armato di Google ho trovato questo post che spiega come installare WSS3.0 side by side e configurare quindi TFS per l'uso della versione nuova, ma non solo permette anche di migrare tutti i dati esistenti verso la nuova versione in modo che i Team Project già creati vengano spostati su WSS3.0.
Groove: una volta configurato WSS3.0 ho potuto collegare le liste di documenti di WSS a Groove e utilizzare quindi tutta la documentazione di TFS anche off-line.
Per quel che riguarda invece il resto, quindi WorkItem, BUG e via dicendo, mi affido a Excel 2007, comodo e funzionale.
L'uso off-line fa perdere alcune delle caratteristiche dell'accoppiata Visual Studio Team System / TFS, in particolare si perde l'integrazione degli strumenti in un solo ambiente, ma mi sento di poter dire che è un prezzo che pago volentieri.
Veniamo infine ad alcune considerazioni sull'uso: per ora sto importando tutti i progetti vecchi, nuovi e in corso in TFS e devo dire che una volta capito come e in che ordine eseguire le operazioni l'ambiente è veramente potente e permette di gestire il source control quasi come se fosse il proprio FileSystem permettendo di spostare progetti da una folder all'altra tenendo il tutto perfettamente sincronizzato con il proprio workspace locale.
Altra cosa di cui sto apprezzando la potenza è il motore di branching, uno dei tanti talloni d'achille di Source Safe, all'inizio ero un po' scettico più che altro perchè lavoro da solo quindi il concetto di Branch per gestire le reference ai progettio class library e migliorare il versioning mi toccava poco, ma poi mi sono fatto convincere dal "solito noto" e mi sono buttato, veramente soddisfatto.
.m