Visual Studio Team Foundation Server
Dependency Foundation Übersichtlicheres Release-Management
Deutliche Produktivitätssteigerung in der Entwicklung
Verbesserung der Transparenz
Schnellere Bewertung der Stabilität von Komponenten
Zentrale Überwachung der AbhängigkeitsarchitekturVisual Studio ist eine eingetragene Marke der Microsoft Corporation in den USA und/oder anderen Ländern.
IHR NUTZEN / FUNKTIONSÜBERSICHT
Eine Plattform bestehend aus verschiedenen Komponen- ten wird ganz oder teilweise von verschiedenen Applika- tionen benutzt Für den lokalen Build ist es nötig, eine weitere Solution
aus dem Source Control an die richtige Stelle auf dem lokalen Rechner herunterzuladen Es soll ermittelt werden, welche Komponenten in welcher
Version von einer Komponente für den Build verwendet wurden Es soll fl exibel zwischen der Einbindung der Abhängig-
keiten in Form von Source Code und vorgebauten Assemblies gewechselt werden können Es soll ermittelt werden, ob eine Applikation eine
Komponente in mehreren Versionen verwendet, um Versionskonfl ikten vorzubeugen
Übersichtlicheres Release-Management durch klar defi nierte und versionierte Abhängigkeiten Deutliche Produktivitätssteigerung in der Entwicklung
durch vereinfachte Vorbereitung der Arbeitsumgebung Verbesserung der Transparenz der team-übergreifenden
Arbeit an Komponenten Schnellere Bewertung der Stabilität von Komponenten Zentrale Überwachung der Abhängigkeitsarchitektur in
einem Werkzeug
ANWENDUNGSBEISPIELE
AIT GmbH & Co KGLeitzstraße 45 · 70469 Stuttgart
Tel.: +49 711 49066 430Fax: +49 711 49066 440
[email protected] · www.aitgmbh.de
Ansprechpartner - AIT TeamSystemPro TEAM:Herr Sven Hubert, +49 711 49066 431
„Habe ich Ihr Interesse geweckt?Dann freue ich mich über Ihren Anruf
zur Betrachtung unseres Frameworks.“
Abbildung 4: Abhängigkeitsschema für verschiedene Produktpakete
© ps
desig
n1 -
Fotol
ia.co
m
Wir unterstützen Sie in den folgenden Bereichen:
Team Foundation Server Visual Studio Consulting
Neue Chancen mit der Cloud Computing Plattform
.NET Software-Entwicklung.NET Migration
Architektur Beratung.NET Coaching
PROBLEMSTELLUNG
LÖSUNG
Abhängigkeiten gibt es viele in Software-Entwicklungspro-jekten. Von besonderem Interesse sind die Build-Abhän-gigkeiten der Komponenten, die beim Bauen, Ausliefern und Warten des Produktes beachtet und verwaltet werden müssen. Mit Visual Studio Ultimate können Build-Abhän-gigkeiten einer Assembly oder einer Solution mit Hilfe des Architecture Explorer ausgewertet und dargestellt werden. Nicht wenige größere Projekte müssen mit einer Vielzahl von Solutions und Visual Studio-Projekten umgehen. Hier entsteht eine technische Lücke im Team Foundation Server, welche auch in TFS 11 nicht geschlossen werden wird.
Eine Solution besteht vereinfacht aus Projekten, die unter-einander und nach außen Abhängigkeiten besitzen. Die Abbildung oben verdeutlicht das.
Bei den äußeren Abhängigkeiten handelt es sich neben Re-ferenzen auf das .NET Framework und Komponenten von Drittanbietern auch um In-House gebaute Komponenten – also Zulieferungen anderer Teams oder Abteilungen. Dies geschieht aus Gründen der Wiederverwendung oder aber auch der besseren Arbeitsteilung wegen. Christian Bin-der von Microsoft Deutschland arbeitet seit 2010 mit dem AIT TeamSystemPro Team an diesem Thema.
Ein Branch-zentrischer AnsatzEine ganz konkrete Lösungsmöglichkeit soll nun im Folgen-den anhand eines Beispiels erarbeitet werden.Dabei gehen wir von einem Branch-zentrischen Ansatz aus. Das Projekt ist in verschiedene Teilbereiche (wie z.B. Plattform und Applikation) aufgeteilt. Jeder Teilbereich agiert als Zulieferer für konsumierende Teilbereiche – be-sitzt also ein eigenes Release-Management und wird binär über Build-Ergebnisse an die Konsumenten übergeben.
Die folgende Grafi k zeigt diese Abstraktionsebene:
Mit den Boardmitteln von .NET Framework und TFS kommt man nun nicht mehr aus, wenn Abhängigkeiten zwischen Solutions verschiedener Teamprojekte und Branches kom-fortabel verwaltet werden sollen. Einige Anpassungen und Erweiterungen sind nötig, um den entstehenden Abhängig-keitsbaum verwalten zu können.
Das Konzept zur Lösung besteht im Wesentlichen aus einer Abhängigkeitsdefi nitionsdatei, die jede Komponente enthält und die direkten Abhängigkeiten defi niert. Diese defi niert, welche Komponente in welcher Version aus welcher Quelle bezogen werden soll. Da die Datei in der Quellcodeverwal-tung enthalten ist, kann diese entsprechend gemeinsam mit der Komponente versioniert werden. So können beliebige
frühere Versionen der Komponente aus dem TFS Source Control heruntergeladen werden – die Abhängigkeitsdefi -nitionsdatei entspricht dem damaligen Stand. Ein langwieriges Einrichten der lokalen Umgebung sowie lange Build-Zeiten können so vermindert werden. Die Ab-hängigkeitsdefi nitionsdateien können dynamisch analy-siert werden. Dadurch wird es möglich, einen Abhängig-keitsgraph des Produkts zu berechnen. So kann dieser zur Analyse von zirkulären Abhängigkeiten und Mehrfach-verwendung gleicher Komponenten in unterschiedlichen Versionen eingesetzt werden.
Die Lösung, die in einer Kooperation der AIT mit Microsoft entstand, versteht sich als erweiterbare Ergänzung zu TFS und Visual Studio. Das Visual Studio Plug-In umfasst so zum Beispiel Funktionen wie das Be-ziehen der Abhängigkeiten auf die lokale Maschine aus anderen Source Control Branches oder von fertigen Build-Ergebnissen.
Abbildung 1 - Solution-Struktur Abbildung 2 - Branch-Struktur im Kontext der Teamprojekte
Gerd
Altma
nn/S
hape
s:AllS
ilhou
ettes
.com
/ pi
xelio
.de
Abbildung 3 - Dependency Management
und Visual Studio. Das Visual Studio Plug-In umfasst so
lokale Maschine aus anderen Source Control Branches oder von fertigen
Preisauf Anfrage