In meiner Abteilung entwickeln wir mehrere kleinere AddOns für einen Unified Communication Server. Für die Versionierung und verteilte Entwicklung verwenden wir einen Team Foundation Server 2012.
Aber: Für all unsere Anwendungen und Bibliotheken gibt es nur eine große TFS-Lösung:
- Hauptlösung
- Anwendungen
- App 1
- App 2
- App 3
- Externe
- Bibliotheken
- Lib 1
- Lib 2
- Werkzeuge
- Anwendungen
Der Pfad "Anwendung" enthält alle Hauptanwendungen. Diese hängen nicht voneinander ab, sondern von den Projekten Libraries und Externals.
Der Pfad "Externals" enthält einige externe DLLs, auf die in unseren Anwendungen und Bibliotheken verwiesen wird.
Der Bibliothekspfad enthält häufig verwendete Bibliotheken (UI-Vorlagen, Hilfsklassen usw.). Sie sind voneinander unabhängig und werden in den Projekten Libraries und Tools referenziert.
Der Tools-Pfad enthält einige Hilfsprogramme wie Einrichtungshilfen, Aktualisierungswebdienste usw.
Es gibt einige wichtige Gründe, warum ich diese Struktur ändern möchte:
- Wir können keine Server-Builds verwenden.
- Mit einer solchen Lösungsstruktur ist es unkomfortabel, das TFS-Scrum-Management mit Sprints, Hindernissen usw. zu verwalten.
- Jeder Entwickler hat immer Zugriff auf alle Projekte in der Lösung.
- Ein vollständiger Build dauert zu lange, wenn man in Visual Studio versehentlich [F6] drückt ...
Was würden Sie an dieser Lösung ändern? Wie würden Sie diese Projekte in kleinere Lösungen aufteilen, wie sollten diese Lösungen strukturiert sein?
Mein erster Ansatz wäre, ein TFS-Projekt für jede Anwendung, Bibliothek und jedes Tool zu erstellen. Aber wie kann ich sicherstellen, dass zB App 2 immer die neueste Version von Lib 1 enthält? Muss ich Änderungen in Lib 1 überwachen und App 2 manuell aktualisieren, sobald sich die Lib ändert? Oder kann ich Visual Studio irgendwie zwingen, immer die neueste Version eines externen Projekts zu verwenden?
Bearbeiten: Auf dem TFS gibt es nur eine TFS-Teamprojektsammlung, die ein TFS-Teamprojekt enthält. Das Team-Projekt enthält eine große Visual Studio-Lösung, die mehrere Ordner enthält (siehe Struktur oben), von denen jeder mehrere VS-Projekte enthält.
Meine Frage ist jetzt, wie würden Sie neu organisieren:
- Das TFS-Team Projekte
- Die VS-Projekte