Nous avons un système .net distribué qui consiste en plusieurs solutions, chacune avec des besoins de configuration et de déploiement différents. Actuellement, tout le code est dans un projet TFS et chaque solution a sa propre construction. Ceux-ci sont configurés pour déclencher des modifications dans ce dossier de contrôle de source de solutions. Nous passons à Team City, Git and rake (en raison de la facilité des branchements et des coûts de licence) et nous examinons donc l'ensemble du processus de construction et n'avons pas été en mesure de trouver de bonnes informations à ce sujet. Les problèmes que nous avons du mal à résoudre sont les suivants:Déploiement d'un système .net distribué avec plusieurs solutions
Devrions-nous avoir des versions séparées ou une grande construction? Toutes les solutions doivent être construites et déployées pour que le système fonctionne, mais il est agréable d'avoir de petites versions car elles sont rapides et faciles à déboguer. Certaines solutions sont plus «autonomes» que d'autres. Notre pratique actuelle consiste principalement à mettre en file d'attente toutes les versions lorsque nous voulons les déployer dans un environnement de test ou de production, mais parfois, nous mettons simplement en file d'attente une solution individuelle si c'est tout ce qui a changé.
Faut-il stocker toutes les solutions dans un référentiel ou devrions-nous avoir un référentiel pour chacune d'elles? Nous utilisons des projets partagés et des DLL, comment cela fonctionnerait-il avec des dépôts séparés?
Je ne comprends pas entièrement votre réponse. Qu'est-ce que "déconner les solutions/projets"? Pourquoi voudriez-vous créer un référentiel séparé pour un projet partagé? Nous avons toutes nos solutions dans des dossiers sous un référentiel et utilisons des chemins relatifs pour partager le projet (ajouter un projet existant dans un studio visuel). Suggérez-vous que nous intégrons le projet dans toutes nos solutions (ceci a des frais généraux de fusion)? La seule raison pour laquelle nous considérons une grande construction est que la plupart des builds dépendent les uns des autres. – JontyMC
déconner des solutions/projets - signifie qu'une solution trop grande crée une certaine confusion pour la plupart des personnes qui travaillent avec elle (devs, qa, réviseurs de code). et il est plus difficile de diviser les fonctionnalités si cela est nécessaire (par exemple, votre client ne veut avoir que quelques fonctionnalités), mais vos développeurs ont ajouté une dépendance excessive entre les projets (parfois cela arrive). lorsqu'une solution est divisée - il est plus facile de gérer chaque partie séparément – Genius
A propos des dépôts. Lorsque vous avez toutes vos solutions dans un référentiel, cela rend certaines commandes SourceControl plus difficiles à utiliser: Branch, Merge, ... – Genius