# Visual Studio Team System

Visual Studio Team System est un ensemble d'outils de développement logiciel, de collaboration, de métrique et de reporting de Microsoft.

## Plateforme

Visual Studio Team System se compose de 5 produits qui peuvent être classés en deux catégories: les applications qui s'installent en tant que serveur et les applications clientes. Microsoft encourage des sociétés utilisant Team System à se servir du Microsoft Solutions Framework, un métamodèle de Microsoft qui décrit des processus de software engineering pour aider à mettre en application un processus de développement efficace. Team System supporte, par défaut, deux processus de développement: Agile et le Capability Maturity Model Integration (CMMI). D'autres modèles peuvent être ajoutés pour soutenir d'autres méthodologies.

### Team Foundation Server

Visual Studio Team System (VSTS) utilise Team Foundation Server (TFS) pour la collaboration entre les différents participants et le stockage des données. TFS fournit un gestionnaire de sources, le suivi des éléments de travail et des services de reporting. L'élément de base au sein de TFS est le work item. Ces éléments de travail peuvent être de différents types: Bug, Tâche, Scénario etc. Le framework choisi pour un projet au sein de TFS définit les types d'éléments disponibles ainsi que les attributs disponibles pour chacun de ces types.
Le gestionnaire de source (voir Gestion de versions) enregistre le code et les modifications sur celui-ci dans une base de données Sql Server. Team Foundation Server propose différentes fonctionnalités telles que la gestion de check-out multiples et simultanées, la gestion de conflit, le branching et la fusion de branches ainsi que la possibilité de gérer la sécurité à tous les niveaux.
TFS utilise Microsoft SQL Server Reporting Services pour créer des rapports incluant, entre autres, le taux de changement de code, la liste des bugs, les résultats des tests de régression par rapport aux tests précédents etc. Ces rapports peuvent être exportés vers différents formats dont XML et PDF.
TFS inclut également un serveur de builds qui peut être utilisé par les développeurs pour compiler les sources qui se trouvent dans le serveur de sources. Tous les évènements concernant ces compilations sont enregistrés par TFS. L'analyse de code, les tests et la couverture de code peuvent être activés et exécutés afin d'indiquer que des sources sont prêtes à être compilées.
VSTS interagit avec TFS au travers de l'API Cliente de TFS, ce qui permet d'exposer les possibilités de TFS au sein de l'environnement de développement. Ceci inclut Team Explorer qui permet de naviguer et gérer les éléments de travail d'un projet. Les fonctionnalités du gestionnaire de sources, incluant la navigation au sein des différentes versions des sources, le labeling, les check-in/check-out et la gestion du shelving sont disponibles directement au sein de l'EDI grâce au Source Control Explorer. VSTS peut par ailleurs utiliser le système de compilation de TFS au lieu de celui intégré. L'EDI de VSTS peut être utilisé pour voir et créer des rapports au sein de TFS. Le Source Control Explorer peut également être utilisé pour créer et fusionner des "branches" de logiciel. Il inclut également un moteur de différence pour voir les comparaisons entre des fichiers ou des révisions.

### Team Test Load Agent

En complément de Team Foundation Server, Microsoft propose également un composant server appelé Team Test Load Agent. Cet outil, vendu séparément de Team Foundation Server et Visual Studio, a pour but de permettre aux testeurs de réaliser des tests de charge automatiquement sur une application Web ou Windows. Microsoft indique qu'un PC classique peut simuler 1000 utilisateurs simultanés. Les résultats de ces tests de charge sont stockés dans Team Foundation Server et peuvent être liés à des builds spécifiques ainsi, les performances peuvent être trackées durant toute la durée du projet.

### Intégration avec Visual Studio

Du côté client, plusieurs versions particulières de Microsoft Visual Studio existent. Elles sont appelées Visual Studio Team Editions. Quand Visual Studio 2005 a été lancé en novembre 2005, il s'agissait d'éditions pour trois rôles distincts autour d'un projet de développement: développeurs, architectes et testeurs. Une quatrième édition destinée aux développeurs de base de données a été développée et proposée à la fin de l'année 2006. Une version Team Suite de Visual Studio 2005 est également disponible. Celle-ci combine les outils destinés aux différents rôles.
Team Explorer est un composant fourni avec Team Foundation Server qui ajoute des fonctionnalités sur le client. Plus précisément, celui-ci permet d'utiliser TFS comme un gestionnaire de sources et ajoute la fenêtre "Team Explorer" à côté de la fenêtre "Solution Explorer".

### Intégration avec Microsoft Office

En plus d'être intégré avec les différentes versions de Visual Studio, Team Foundation Server supporte également l'interaction avec Microsoft Excel et Microsoft Project qui font partie de la suite offline de Microsoft Office. Microsoft a suggéré que ces outils soient utilisés par les non développeurs (et donc qui ne sont pas utilisateurs de Visual Studio) et qui préfèrent interagir avec l'équipe de développement avec des outils plus familiers. Avec la possibilité d'interaction ajoutée dans Office, un utilisateur qui a accès à Team Foundation Server peut voir, modifier et ajouter de nouveaux éléments de travail. Dans Excel par exemple, la liste des éléments de travail (avec les colonnes choisies pour ceux-ci) devient une feuille de calcul interactive en proposant des listes déroulantes, des ranges de validation etc.

## Versions
### Serveur

Visual Studio 2005 Team Foundation Server est disponible en tant que produit séparé (approximativement 2799$). Les CALs (Client Access Licence) pour les utilisateurs des versions non "Team Edition" sont disponibles au prix de 499$. Visual Studio Team Edition inclut une CAL pour interagir avec Team Foundation Server.
Visual Studio 2005 Team Foundation Server Workgroup Edition fournit un accès pour 5 utilisateurs et est disponible gratuitement avec les Team Editions prévues dans la MSDN Premium Edition.
Visual Studio Team Foundation (Workgroup Edition comprise) nécessite un Microsoft SQL Server 2005 Standard Edition. Cependant, une licence pour cette édition Standard est incluse avec chacune des versions de TFS.

### Client

* Visual Studio Team Edition pour les architectes applicatifs: propose des designers graphiques pour la conception logicielle
* Visual Studio Team Edition pour les développeurs d'application: propose des outils orientés sur le développement d'applications avec la notion de tests unitaires, de profiling et d'analyse de code
* Visual Studio Team Edition pour les testeurs d'application: propose les tests web, les tests de charge, les tests unitaires, la couverture de code et d'autres fonctionnalités autour des tests
* Visual Studio Team Edition pour les développeurs de base de données: propose des outils pour le développement et les tests autour du développement de base de données. Sorti en décembre 2006
* Visual Studio Team Suite qui inclut les quatre versions précédentes. Les propriétaires qui ont acheté une version Team Suite avant la sortie de la version Team Edition pour les développeurs de base de données reçoivent une licence sans coût supplémentaire.

## Développements futurs
### Nom de code "Rosario"

La prochaine version majeure de Visual Studio Team System est nommée "Rosario" et sera disponible quelques mois après la sortie de Visual Studio 2010.
Dans cette version, Microsoft a prévu de délivrer de nouvelles fonctionnalités autour de la gestion du cycle de vie des applications. Voici quelques-unes des nouveautés qui seront présentes dans "Rosario":
* Intégration avec Microsoft Project Server
* Gestion de plusieurs projets simultanés pour, de manière proactive, permettre le partage de ressources
* Plus de traçabilité pour suivre et comparer les livrables par rapport aux attentes du business et la possibilité d'analyser l'impact d'éventuelles modifications
* Métriques et tableaux de bord encore plus efficace
* Nouvelles fonctionnalités permettant aux développeurs et aux testeurs de rapidement identifier, communiquer, prioriser, réaliser des diagnostics et résoudre des bugs
* Gestion des tests pour créer, organiser et gérer des scénarios de tests par l'équipe de développement et l'équipe de testeurs
* Automatisation et guide pour permettant aux développeurs et aux testeurs de se focaliser sur les tests fonctionnels au lieu des tâches manuelles et répétitives
* Métriques de qualité pour permettre de savoir si une application est prête pour une mise en production ou non
* Intégration des équipes de développements distantes dans le processus de développement
* Paramétrage aisé des processus et guides proposés par Microsoft ou ses partenaires permettant de les adapter à l'organisation de vos équipes
Une Community Technology Preview (CTP) de Rosario est disponible depuis le 28 novembre 2007