Dans mon département, nous développons plusieurs AddOns plus petits pour un serveur de communication unifié. Pour le contrôle de version et le développement distribué, nous utilisons un Team Foundation Server 2012.
Mais: il n'y a qu'une seule grande solution TFS pour toutes nos applications et bibliothèques:
- Solution principale
- Applications
- App 1
- App 2
- App 3
- Externes
- Bibliothèques
- Lib 1
- Lib 2
- Outils
- Applications
Le chemin "Application" contient toutes les applications principales. Ceux-ci ne dépendent pas les uns des autres, mais ils dépendent des projets des bibliothèques et des externes.
Le chemin "Externals" contient des DLL externes référencées dans nos applications et bibliothèques.
Le chemin des bibliothèques contient des bibliothèques couramment utilisées (modèles d'interface utilisateur, classes d'assistance, etc.). Ils ne dépendent pas les uns des autres et sont référencés dans les projets Bibliothèques et Outils.
Le chemin des outils contient des programmes d'aide tels que des assistants de configuration, des services Web de mise à jour, etc.
Maintenant, il y a quelques points majeurs pour lesquels je voudrais changer cette structure:
- Nous ne pouvons pas utiliser de versions de serveur.
- Il est inconfortable de gérer la gestion de mêlée TFS avec des sprints, des obstacles, etc. avec une structure de solution comme celle-ci.
- Chaque développeur a toujours accès à tous les projets de la solution.
- Une version complète dure trop longtemps si l'on frappe accidentellement [F6] dans Visual Studio ...
Que changeriez-vous dans cette solution? Comment diviseriez-vous ces projets en solutions plus petites, comment ces solutions devraient-elles être structurées?
Ma première approche serait de créer un projet TFS pour chaque application, bibliothèque et outil. Mais comment puis-je m'assurer que, par exemple, l'App 2 contient toujours la dernière version de Lib 1? Dois-je surveiller les modifications sur Lib 1 et mettre à jour l'App 2 manuellement dès que la Lib change? Ou puis-je en quelque sorte forcer Visual Studio à toujours utiliser la dernière version d'un projet externe?
Edit: Sur le TFS, il n'y a qu'une seule collection de projets d'équipe TFS, contenant un projet d'équipe TFS. Le projet d'équipe contient une grande solution Visual Studio, qui contient plusieurs dossiers contenant (voir la structure ci-dessus), chacun contenant plusieurs projets VS.
Ma question est maintenant, comment réorganiseriez-vous:
- Projets de l'équipe TFS
- Les projets VS