Przegląd interfejsu Visual Studio 2010 i innych narzędzi ułatwiających pracę zespołową przy produkcji oprogramowania – cz. 2 Udostępnij na: Facebook

Autor: Grzegorz Rycaj

Opublikowano: 2011-04-13

Team Foundation Server jest systemem, który umożliwia swobodną i komfortową współpracę wszystkim członkom zespołu. Razem z TFS, bez dodatkowych opłat, zyskujemy więc możliwość dostępu z wykorzystaniem następujących produktów (i ich unikalnych cech) i kanałów:

  • Rodzina produktów Visual Studio.
  • Aplikacje pakietu Office (Excel i Project).
  • Microsoft SharePoint (zarówno w wersji Windows Sharepoint Services/Sharepoint Foundation, jak i w ich “pełnych” odpowiednikach).
  • Rodzina produktów Expression.
  • TFS Web Access (dostęp za pośrednictwem przeglądarki).
  • Środowisko programistyczne Eclipse.

W pierwszej części artykułu zapoznaliśmy się z podstawowymi aspektami pracy z Team Foundation Serverem z poziomu Visual Studio – wiemy już, jak utworzyć projekt, dodać kod do repozytorium i pobrać najnowsze zmiany oraz w jaki sposób przeszukiwać Jednostki robocze. W dzisiejszym odcinku uzupełnimy swoją wiedzę o najważniejsze operacje, jakie możemy wykonać na plikach przechowywanych w repozytorium oraz poznamy główne aspekty pracy z innymi narzędziami.

Praca z plikami z TFS w Visual Studio

Moduł Team Explorer do Visual Studio pozwala na swobodne poruszanie się po repozytorium plików dostępnych w ramach naszego projektu. Przyjrzyjmy się najważniejszym operacjom.

Przeglądanie historii

Zasada „od kliknięcia w głąb” (wykonanie operacji na plikach znajdujących się „w zasięgu kliknięcia”, a więc w drzewie na poziomie kliknięcia lub głębiej), opisana w 1 części artykułu (np. przy umieszczaniu zmian w repozytorium), ma zastosowanie również w przypadku przeglądania historii czy też cofania zmian (opisanego dalej).

Aby obejrzeć historię zmian w repozytorium, wystarczy kliknąć prawym przyciskiem myszy na dowolnej wysokości drzewa (do poziomu plików włącznie) i wybrać pozycję View History.

Rys. 1. Wywoływanie operacji przeglądania historii.

W efekcie otrzymamy listę wszystkich zmian, jakie kiedykolwiek zaszły w zasięgu naszego kliknięcia. Jak widać, jest to tak naprawdę lista dokonanych check-inów. Dwukrotne kliknięcie na każdym z rekordów pozwoli nam na podejrzenie dokładnego spisu zmian, jakie weszły w skład konkretnego check-ina.

Rys. 2. Przeglądanie historii zmian.

Adnotacje

Na pewno każdemu z nas zdarzało się pracować w zespołach, w których odszukanie autora danego fragmentu kodu polegało na wysłaniu e-maila z pytaniem lub głośnym wykrzyczeniem pytania  na pół biura :) Oczywiście nie jest to specjalnie wygodny sposób pracy, zdecydowanie lepiej mieć do tego odpowiednie narzędzie – w TFS przychodzi nam z pomocą mechanizm tzw. adnotacji:

Rys. 3. Przeglądanie adnotacji w kodzie.

Jak widzimy na rysunku 3, mamy możliwość śledzenia źródeł zmian dokonywanych w kolejnych linijkach kodu. Otrzymujemy informację o godzinie umieszczenia zmiany, jej autorze i changesecie, w ramach którego zmiana została umieszczona w repozytorium. Możemy w ten sposób analizować również dane historyczne (uwzględniające tylko check-iny do konkretnego punktu w czasie).

Anulowanie zmian

W momencie gdy dokonamy lokalnie zmian, z których chcielibyśmy jednak zrezygnować, powinniśmy wykorzystać operację Undo changes (widoczne na rysunku 1dwie pozycje nad zaznaczonym View History). Pozwoli nam ona na zaznaczenie plików, w których dokonane zmiany powinny zostać cofnięte.

Rys. 4. Okno wyboru zmian do anulowania.

Zaznaczając i odznaczając odpowiednie pliki, decydujemy o przywróceniu ich zawartości do wersji ostatnio pobranej z repozytorium. Należy przy tym zachować szczególną ostrożność – cofnięcie zmian uniemożliwi ich odtworzenie, ponieważ zostały wykonane lokalnie i nie podlegały wersjonowaniu.

Porównanie wersji

W sytuacji gdy chcemy porównać dwie wersje tego samego pliku, możemy skorzystać z polecenia „Compare”, które  pozwala na porównanie lokalnej wersji z serwerową (z dowolnego punktu w czasie), jak również serwerowej z serwerową. Wbudowane narzędzie pozwala też na szybki podgląd wprowadzonych zmian, z odpowiednim kolorowaniem składni w liniach dodanych/zmodyfikowanych/usuniętych:

Rys. 5. Narzędzie porównywania zawartości plików.

Rozwiązywanie konfliktów

Opisane powyżej narzędzie, służące do porównywania wersji, stosowane jest przez Visual Studio również w momencie ręcznego rozwiązywania konfliktów w plikach. Konflikt może nastąpić np. w chwili, gdy dwóch programistów wyedytuje tę samą wersję pliku i wprowadzi nachodzące na siebie zmiany. Zmiany te mogą wzajemnie się wykluczać (np. przypisanie innej wartości tej samej zmiennej w tej samej linii) lub nie (np. obaj programiści dodali po jednej metodzie, o różnych sygnaturach).

Rys. 6. Rozwiązywanie konfliktów w zmianach.

W przypadku nachodzących na siebie zmian niewykluczających się, z pomocą przychodzi mechanizm automatycznego scalenia (AutoMerge), który potrafi ocenić jakość wprowadzonych zmian i odpowiednio je ze sobą pogodzić (na rysunku 6widzimy, że metody TestMethod i MyNewMethod zostały automatycznie pogodzone). Przy zmianach wykluczających się (na rysunku 6jest to różna zawartość literału) konieczna jest ingerencja programisty i ręczne scalenie plików.

Inne sposoby dostępu

Team Foundation Server to system mający na celu objęcie swoim zasięgiem wszystkich uczestników procesu wytwarzania oprogramowania. Dlatego zadbano nie tylko o zespół programistów, projektantów i testerów (dla których omówione powyżej Visual Studio jest podstawowym środowiskiem pracy) i dostarczone zostały dodatkowe źródła dostępu do TFS. Na przykład, korzystając z produktów pakietu Microsoft Office (tu skupimy się na Excel i Project), mamy możliwość wygodnego przeglądania Work item projektowych, planowania i śledzenia prac. Dla osób zarządzających projektem wspomniane narzędzia są często podstawą codziennego funkcjonowania. W dalszych rozdziałach pokazano przykładowe widoki z poszczególnych aplikacji, zsynchronizowane z TFS.

Microsoft Excel i Project

Po uruchomieniu dodatku Team Foundation Add-In w pakiecie Microsoft Office, w aplikacjach Excel i Project na wstążce (lub toolbarze w starszych wersjach) pojawia się dodatkowa pozycja Team, która pozwala na połączenie z wybranym serwerem TFS i zarządzanie Work Itemami oraz podstawowymi metadanymi projektowymi, jak Obszary i Iteracje (Areas and Iterations) projektu.

Rys. 7. Praca z Work Itemami z poziomu Microsoft Excel.

Pobrane dane można poddać obróbce poprzez operacje standardowo dostępne w aplikacji Excel.

Praca z Microsoft Project w kontekście TFS jest identyczna, jak w przypadku standardowej pracy, bez połączenia do TFS – jedyną różnicą jest synchronizacja informacji. Co ważne, zachowane są zależności pomiędzy zadaniami – na poniższych rysunkach pokazano zależność typu zadanie-podzadanie i jej zobrazowanie w Visual Studio i MS Project.

Rys. 8. Widok zależności pomiędzy Work Itemami typu Task w Visual Studio…

Rys. 9.  ... i odwzorowanie tych samych informacji w MS Project.

TFS Web Access

TFS Web Access daje możliwość dostępu do informacji projektowych i zarządzania nim z poziomu przeglądarki internetowej. Co istotne, twórcy tego modułu zadbali o dużą spójność prezentacji danych z formularzami znanymi z Team Explorera, dzięki czemu czas potrzebny na przyzwyczajenie się do tej formy pracy z TFS jest praktycznie zerowy.

Rys. 10. Praca z Work Itemami z poziomu TFS Web Access.

Inne rozwiązania

Na rynku istnieją również aplikacje zewnętrznych producentów pozwalające na pracę z TFS. Dzieje się tak dzięki udostępnieniu API za pośrednictwem WebService’ów – z jego pomocą każdy z nas może zbudować swoje narzędzie, spełniające jakąś określoną, konkretną funkcję w naszym zespole. API jest hostowane razem z warstwą aplikacyjną Team Foundation Servera, co zapewnia spójność danych modyfikowanych i umieszczanych przez zewnętrzne rozwiązania. Dodatkowo, jeśli administrator systemu zadecyduje o udostępnieniu serwera z wykorzystaniem protokołu https, możemy być spokojni o bezpieczeństwo przesyłanych danych.

Integracja z Microsoft Sharepoint

Z wersją TFS 2010 otrzymujemy pakiet WebPartów dla produktu Microsoft Sharepoint, dzięki którym możemy stworzyć planszę projektową (Dashboard) dla każdego z członków projektu. Dashboard może składać się z podsumowania aktualnego stanu Work itemów, wspartego raportami. Istnieje również możliwość tworzenia swoich dedykowanych raportów czy też zarządzania Work itemami.

Rys. 11. Dashboard projektu osadzony w Microsoft Sharepoint.

Zarządzanie  TFS

Team Foundation Serverem najwygodniej zarządzać za pomocą jednego z dwóch narzędzi – Visual Studio lub za pośrednictwem dedykowanej aplikacji przypominającej przystawkę MMC, instalowanej razem z TFS na serwerze – Team Foundation Server Administration Console (TFS AC). Visual Studio zalecane jest w przypadkach bardziej operacyjnych (tworzenie projektów i nadawanie uprawnień do nich, organizacja repozytorium), podczas gdy TFS AC pozwala na szybki przegląd statusu systemu oraz skonfigurowanie mechanizmów serwerowych (m.in. ustawienia serwera poczty, integracja z Microsoft Sharepoint, Reporting Services, konfiguracja agentów buildowych i wiele innych).

Prezentacja najważniejszych informacji o instalacji warstwy aplikacyjnej TFS – podsumowanie

Rys. 12. Prezentacja najważniejszych informacji o instalacji warstwy aplikacyjnej TFS – podsumowanie.

Można tu również zdefiniować grupy dostępowe do TFS, wykorzystywane później do nadawania uprawnień. Mogą być one oparte na grupach systemu Windows, dzięki czemu zarządzanie uprawnieniami staje się zdecydowanie łatwiejsze. Poniżej pokazano ekran nadawania uprawnień kontrybucji w projekcie. Aby go wywołać, należy w widoku Team Explorer kliknąć prawym przyciskiem myszy na projekcie, a następnie wybrać pozycje: Team Project Settings->Group Membership, po czym dwukrotnie kliknąć na odpowiedniej grupie, prezentującej wybrany poziom dostępu (w naszym przykładzie Contributors).

Rys. 13. Zarządzanie przynależnością do grupy.

Aby sprawdzić, jakie dokładnie uprawnienia przysługują grupie Contributors w naszym projekcie, wybieramy opcję Team Project Settings -> Security. Wskazując odpowiednią grupę, otrzymujemy informacje o jej uprawnieniach:

Rys. 14. Podgląd listy uprawnień udzielonych grupie.

Z pomocą Visual Studio możemy również skonfigurować metadane projektowe (Obszary i Iteracje), czy też ustawić połączenie z portalem projektowym (portal w Microsoft SharePoint).

Dodatkowo, po zainstalowaniu dodatku TFS Power Tools (regularnie ukazują się nowe wydania – aktualna, najnowsza wersja pochodziła z marca 2011 r.: https://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f) mamy możliwość modyfikacji szablonu procesu (Process Template). Możemy więc m.in. dodać nowy typ Work Itema, zmodyfikować listę pól w istniejących Work Itemach czy też zmodyfikować listę stanów i przejść pomiędzy nimi. Ponadto pakiet Power Tools udostępnia mechanizm integracji z Windows Exporerem, dzięki któremu możemy wykonać podstawowe operacje bez uruchamiania dodatkowych narzędzi:

Rys. 15. Praca z TFS z poziomu Windows Explorer – TFS Power Tools.

Wskazane funkcjonalności pakietu TFS Power Tools to tylko niektóre z wciąż rozbudowywanej listy dostępnych możliwości. Zachęcam gorąco do zapoznania się z całym zestawem proponowanych rozszerzeń. Tak naprawdę w pewnym momencie dla wszystkich staje się podstawowym dodatkiem instalowanym do Visual Studio przy pracy z Team Foundation Serverem.

Podsumowanie

W dwuczęściowym artykule pt. „Przegląd interfejsu Visual Studio 2010 i innych narzędzi ułatwiających pracę zespołową przy produkcji oprogramowania” zapoznaliśmy się z podstawowymi sposobami dostępu do TFS i najważniejszymi operacjami, wykonywanymi codziennie przez członków zespołu. Wiemy już, jakie oprogramowanie z oferty firmy Microsoft możemy wykorzystać do codziennej pracy i w jaki sposób zarządzać serwerem. Należy przy tym pamiętać o dostępnych rozszerzeniach naszych możliwości za pośrednictwem pakietu TFS Power Tools lub narzędzi zbudowanych przez zewnętrznych dostawców, którym może się stać każdy z nas!