W moim dziale opracowujemy kilka mniejszych dodatków dla jakiegoś zunifikowanego serwera komunikacyjnego. Do tworzenia wersji i programowania rozproszonego używamy Team Foundation Server 2012.
Ale: istnieje tylko jedno duże rozwiązanie TFS dla wszystkich naszych aplikacji i bibliotek:
- Główne rozwiązanie
- Aplikacje
- Aplikacja 1
- Aplikacja 2
- Aplikacja 3
- Pozory
- Biblioteki
- Lib 1
- Lib 2
- Przybory
- Aplikacje
Ścieżka „Aplikacja” zawiera wszystkie główne aplikacje. Nie zależą one od siebie, ale zależą od projektów bibliotek i zewnętrznych.
Ścieżka „Zewnętrzne” zawiera niektóre zewnętrzne biblioteki DLL wymienione w naszych aplikacjach i bibliotekach.
Ścieżka do bibliotek zawiera często używane biblioteki (szablony interfejsu użytkownika, klasy pomocnicze itp.). Nie zależą od siebie i są przywoływane w projektach Biblioteki i Narzędzia.
Ścieżka Narzędzia zawiera niektóre programy pomocnicze, takie jak pomocniki konfiguracji, aktualizacje usług internetowych itp.
Teraz jest kilka głównych powodów, dla których chciałbym zmienić tę strukturę:
- Nie możemy używać kompilacji serwerów.
- Zarządzanie TFS scrum za pomocą sprintu, przeszkód itp. Przy takiej strukturze rozwiązania jest niewygodne.
- Każdy programista ma zawsze dostęp do wszystkich projektów w rozwiązaniu.
- Pełna kompilacja trwa zbyt długo, jeśli przypadkowo trafi [F6] w Visual Studio ...
Co byś zmienił w tym rozwiązaniu? Jak podzieliłbyś te projekty na mniejsze Rozwiązania, jak powinna wyglądać struktura tych rozwiązań.
Moim pierwszym podejściem byłoby stworzenie jednego projektu TFS dla każdej aplikacji, biblioteki i narzędzia. Ale jak mogę się upewnić, że np. Aplikacja 2 zawsze zawiera najnowszą wersję Lib 1? Czy muszę monitorować zmiany w Lib 1 i ręcznie aktualizować aplikację 2, gdy tylko Lib się zmieni? Czy mogę w jakiś sposób zmusić program Visual Studio do korzystania z najnowszej wersji projektu zewnętrznego?
Edycja: W TFS istnieje tylko jedna kolekcja projektu TFS Team, zawierająca jeden projekt TFS Team. Team Project zawiera jedno duże rozwiązanie Visual Studio, które zawiera kilka folderów zawierających (patrz struktura powyżej), z których każdy zawiera wiele projektów VS.
Moje pytanie brzmi: w jaki sposób przeorganizowałbyś:
- Projekty zespołu TFS
- Projekty VS