Visual Studio 11: du nouveau pour les Workspace–Partie 1

Visual Studio 11 nous offre une évolution notable du coté de la gestion de configuration avec un nouveau type de Workspace.

Avant de la découvrir, commençons par un petit cours d’histoire…

Il était une fois….

Avant TFS Microsoft n’avait qu’une solution pour gérer le SCM: SourceSafe. Tout ceux qui ont utilisé cet outil savent ô combien il fallait s’armer de patience et de courage pour parvenir à ses fins. Dans la (longue) liste des reproches que l’on pouvait faire à SourceSafe nous avions:

  • Pas très scalable: SourceSafe ne supportait pas vraiment bien les gros projets, ni les grosses équipes.
  • Ne marche qu’en Local: pas possible de le faire fonctionner avec des équipes distribuées un peu partout sur le WAN.
  • Mode de gestion de branche très limité…
  • Bon bref, j’arrête là, RIP SourceSafe…

Pour revenir à TFS, Microsoft à donc souhaité gommer les plus gros défauts de SourceSafe et notamment celui de la distribution sur le WAN. De nos jours il est très fréquent d’avoir des équipes de développement éparpillées un peu partout sur le globe, alors il faut que leur SCM favoris supporte cette distribution. Pour ce faire, TFSC (Team Foundation Source Control) est basé sur les technos de pointes (de l’époque): backend en SQL Server, frontend en Web Service SOAP.

Gérer le WAN demande à prendre en compte les contraintes de bande passante limitée et de latence, si bien que Microsoft a conçue les Workspace de TFSC pour répondre à cette problématique. Un Workspace est une vue locale de contenu stocké à distance sur un serveur. Pour minimiser les aller/retour entre Visual Studio est le serveur Team Foundation, Microsoft à conçu les Workspace comme étant un espèce de Cache.

Par exemple, lorsque l’on fait un Get Latest (obtenir la dernière version), si par la suite on supprime des fichiers du Workspace en utilisant l’explorateur de Windows et que l’on refait un Get Latest: rien ne se passe! Vu que le Workspace est considéré comme un cache, seules les opérations initiées dans Visual Studio comptent, si vous vous en écartez: tant pis pour vous.

Ce mode est relativement efficace pour les grosses équipes, distribuées un peu partout, mais il n’est pas sans inconvénients:

  • Il vaut mieux travailler tout le temps en mode “Online”. C’est à dire connecté au serveur TFS. Le mode offline étant possible, mais pas indolore lors de la reconnexion.
  • Certaines opérations ne sont pas intuitives. Pour le développeur non avertit, on va droit vers les problèmes si l’on considère que l’on peut faire ce que l’on veut avec les fichiers issue du Workspace en les traitant comme de simple “fichiers dans windows”.

Microsoft à tenté d’ajuster le tir avec les versions 2008 et 2010 ainsi que les Power Tools, mais sans y parvenir de manière concluante. La montée en puissance des logiciels dit “Distributed Revision Control System” (DRCS) comme Git n’a pas arrangé les choses…

Autant le dire tout de suite, TFS/VS11 n’offrent pas de DRCS, mais bon, ce point là n’est pas le plus important. Alors, quoi de neuf ?

Propriétés d’un Workspace

Un nouveau type de Workspace apparait et attention, dans Visual Studio 11, il s’agit du type par défaut ! (autant dire que Microsoft fait un 180° sur ce point): le Workspace Local.

Visual Studio comprend un petit changement sur la fenêtre de gestion d’un Workspace, par défaut allégée il faut cliquer sur le bouton “Advanced” pour en savoir plus:

image

On passe effectivement à une vue moins…allégée:

image

Deux nouveaux champs apparaissent avec VS11: Location et File Time.

File Time nous permet enfin de choisir quel date/heure adopter pour les fichiers issue du Workspace.

image

  • Current: c’est le mode que l’on a toujours connu, lorsque l’on fait un Get Latest sur un fichier, il prend la date/heure à laquelle on effectue l’action.
  • Checkin: lorsque l’on récupère un fichier en local, il prendra la date/heure du check-in correspondant à son archivage.

Location nous permet de choisir si le Workspace doit être géré.

image

  • Local: c’est donc le choix par défaut et le nouveau mode de Workspace offert par TFS/VS11.
  • Server: celui que l’on connait depuis toujours.

Donc à quoi sert le Workspace Local ? Vous le saurez dans la prochaine partie.