Technology Experience
.NET World

Usare Visual Studio 2008 e TFS come repository di documentazione

Il progetto su cui sto lavorando comprende una parte server, una parte client ed una parte admin (che comprende una serie di strumenti interni che nessuno distribuirà). Ciascuna di queste tre è quindi un progetto C#, che viene mantenuta sotto source control con TFS 2008.

Oltre a tutto questo, c’è una directory in più, docs, che – come dice il nome – contiene una serie di files PDF, immagini, piccoli documenti di testo, documenti Word ed Excel, e così via. Questa – fino a ieri – non era mantenuta sotto TFS. E quindi, mi son chiesto: è possibile farlo?

E’ possibile aggiungere una directory che non è un progetto .NET al source control di TFS 2008?
La risposta è ovviamente sì.

Ecco la procedura che ho seguito io: mi aspetto critiche e commenti, precisando che è stata inventata di sana pianta, per cui…

  1. Anche se non è una solution .NET nel vero senso del termine, dovete comunque utilizzare VS2008. Quindi, aprite VS2008 e create un nuovo progetto. Dalla finestra di dialogo New Project, selezionate il gruppo Other Project Types –> Visual Studio Solutions, selezionate Blank Solution e dategli un path ed un nome (es: X:docs).
  2. Fatto questo, VS2008, vi crea la cartella X:docs, all’interno della quale ci sono i files docs.sln e docs.suo.
  3. Ok, a questo punto potete aggiungere tutti i files che volete. Come? Se fosse un progetto .NET normalissimo, potreste drag’n’droppare i files: qui non potete. Perchè? Semplice: perchè solitamente dentro una solution c’è sempre un project, mentre qui no. E non potete nemmeno aggiungerlo, perchè non c’è un template Blank Project.

    L’unico modo che avete per aggiungere files alla solution appena creata è quella di cliccare – banalmente – col pulsante destro del mouse e fare Add –> Existing Item. VS2008 vi fa sfogliare directories e files per decidere quali di essi devono essere inclusi nella solution. Con un’altra piccola differenza rispetto ad un progetto .NET. Quando fate Add –> Existing Item in un progetto C# e selezionate un file esterno alla directory della solution, esso viene copiato in tale directory. Mi spiego meglio: se avete una console application in X:console ed aggiungete un file Main.cs preso dal desktop, esso viene copiato in X:console. Qui no. Se aggiungete files da un path esterno rispetto alla blank solution creata, i files rimangono lì dove sono. E quindi?

    Beh, è semplice. Dopo aver creato la blank solution, ho manualmente copiato tutti i files dentro la directory X:docs. A VS2008 non danno fastidio: l’importante è non pasticciare con i files docs.sln e docs.suo. Terminata la copia, fate Add –> Existing Item dalla stessa directory ed il gioco è fatto.

  4. Ma c’è un altro piccolo problema. Nel momento stesso in cui cliccate sul pulsante Add – non ho capito il perchè – ma o VS2008 o il sistema operativo apre tutti i files selezionati. Li aggiunge alla solution, che è quello che volevamo ottenere, ma allo stesso tempo li apre con l’applicazione predefinita. Quindi, se avete aggiunto alla solution 10 files pdf, vengono aperte 10 istanze di Adobe Reader, e così via. Se avete un buon processore e tanta RAM, tutto fila liscio. Dovete avere anche un po’ di pazienza, perchè dopo dovrete chiuderle tutte! 🙂
  5. A parte questo problema, dopo potrete aggiungere la solution al source control, esattamente come fareste con un normale progetto .NET.

A questo punto, tutto funziona regolarmente. Se aprite un file di testo e tentate di modificarlo, prima ne viene fatto il check-out. Se aprite il file senza modificarlo (un pdf, ad esempio), il server non entra neppure in gioco. Da notare che VS2008 apre il file con l’applicazione predefinita: i .xls vengono aperti con Excel, i .pdf con Adobe Reader, e così via. Altrimenti potete cliccare con il destro e fare Open With…

Direi che l’obiettivo è stato raggiunto: adesso qualsiasi modifica ad uno dei files di documentazione passa da un check-out e da un check-in. Ma soprattutto, versioning dei files e via dicendo. Cose che chi utilizza TFS conosce benissimo! 🙂

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.