ALM in der .NET-Welt: Team Foundation Server oder Freeware?

Für das Application Lifecycle Management in .NET stehen Unternehmen vor der Frage, ob sie auf kostenfreie Produkte oder Microsofts kostenpflichtigen TFS setzen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 11 Min.
Von
  • Dr. Holger Schwichtenberg
Inhaltsverzeichnis

Für das Application Lifecycle Management (ALM) in der .NET-Welt stehen Unternehmen oft vor der Frage, ob sie auf kostenfreie (Open-Source-)Produkte oder Microsofts kostenpflichtigen Team Foundation Server (TFS) setzen. Der letzte Beitrag der Artikelserie "10 wichtige Fragen zu .NET" beleuchtet Gründe, die für den Einsatz des Microsoft-Servers sprechen.

Zum Entwicklungsprozess gehört wesentlich mehr als nur ein komfortabler Designer und ein Code-Editor. Zumindest Quellcodeverwaltung, Aufgaben- und Bug-Tracking sind etabliert. Darüber hinaus findet man immer häufiger Unit-Testing und automatisierte Build-Prozesse im Sinne von Continous Integration.

Mehr Infos

10 wichtige Fragen zu .NET

In dieser zehnteiligen Serie liefert .NET-Experte Holger Schwichtenberg Antworten auf die am häufigsten gestellten Fragen, die .NET-Entwickler beschäftigen.

  1. .NET 2.0 oder .NET 3.5?
  2. VB oder C#?
  3. Express oder Professional?
  4. Windows Forms oder WPF?
  5. LINQ-to-SQL oder ADO.NET Entity Framework?
  6. Visual Studio auf Deutsch oder auf Englisch?
  7. ASP.NET, Ajax oder Silverlight?
  8. DataReader, DataSet oder ORM?
  9. Sinn und Unsinn der Windows Communication Foundation
  10. ALM in der .NET-Welt: Team Foundation Server oder Freeware?

Microsoft hatte ALM viele Jahre nur stiefmütterlich behandelt. Die Quellcodeverwaltung Visual SourceSafe (VSS) war nicht nur funktionsarm, sondern auch für defekte Datenbanken bekannt, die viel Wartungsaufwand erforderten. Für die Modellierung bot der Konzern mit Visio ebenfalls keine adäquate Lösung. Intern verwendete Microsoft schon länger einige selbst entwickelte Werkzeuge, die dann 2005 unter dem Oberbegriff Visual Studio Team System (VSTS) als ein integriertes ALM-Produkt öffentlich erschienen. Zu VSTS gehörten einerseits eine erweiterte Version von Visual Studio als Client-Anwendung, zum anderen der Team Foundation Server (TFS) als zentraler Server zur Verwaltung und Steuerung von Softwareprojekten.

Die Vergangenheitsform ist für den Begriff "VSTS" gerechtfertigt, da Microsoft ihn mit Visual Studio 2010 wieder begraben hat. Es gibt weiterhin Visual Studio und den Team Foundation Server, aber keine eigenständige Produktbezeichnung für die ALM-Produktserie mehr. Anstelle der Visual Studio "Team Suite", die bisher die größte und teuerste Version war, tritt nun "Visual Studio Ultimate". Einige ALM-Funktionen sind insgesamt noch nicht so weit, wie man es von Platzhirschen wie Micro Focus (früher Borland), IBM (früher Rational), Perforce und MKS kennt.

Beispielsweise ist Rationals DOORS viel strukturierter und mächtiger beim Anforderungsmanagement als die Work-Item-Verwaltung im TFS. Micro Focus wiederum bietet mit Together ein Werkzeug für die modellgetriebene Entwicklung, das es in der Form bei Microsoft gar nicht gibt. Die von Perforce in seiner Versionsverwaltung zu findenden Verteilungsmechanismen wie ein lose gekoppeltes Kooperationsmodell, um mehrere Versionsverwaltungsserver zu verbinden, sind in TFS bisher nicht vorhanden. Aber das Microsoft-Produkt ist kostengünstiger. Gartner hat dazu im März 2009 einen Vergleich veröffentlicht.

Bei den Funktionen, die VSTS beziehungsweise Visual Studio 2010 Ultimate bieten, kann man differenzieren in solche, die nur in Verbindung mit dem TFS arbeiten, und solche, die man zudem lokal ohne TFS verwenden kann. Lokal zu nutzende ALM-Funktionen sind etwa:

  • Modellierung (ab Visual Studio 2010 auch begrenzte UML-Funktionen)
  • Ablaufverfolgung während des Debuggens (IntelliTrace)
  • statische Codeanalyse und -metriken (Richtlinien und Codequalität)
  • Unit-Tests, Testabdeckung (Code Coverage), Webtests und Desktop-Oberflächentests
  • Profiling (Geschwindigkeits- und Speicherverbrauchsmessung)
  • Datenbanken (Versionierung und Deployment von Datenbank-Schemata, Testdatengenerator, Unit-Tests in T-SQL)

Neben Visual Studio bietet Microsoft mit dem Test Manager ein spezielles Werkzeug für Tester zur Verwaltung von Testplänen, Ausführung von Tests mit Aufzeichnung von Ablaufdaten und der Option, Videos aufzuzeichnen.

Nur in Verbindung mit einem TFS funktionieren:

  • Quellcodeverwaltung (Team Foundation Version Control – TFVC)
  • Projektmanagement
  • serverseitige Übersetzung/Continous Integration (Build-Server)
  • Tätigkeitsverwaltung (Anforderungen, Aufgaben, Fehler), die man hierarchisch anordnen kann
  • Berichtswesen
  • Team Web Access (Webportal unter anderem zum Melden von Fehlern) und Projektportal mit Dokumentenverwaltung (auf SharePoint-Basis)
  • Lab Management (virtualisierte Testsysteme für automatische Tests)

Der Wert des TFS-Einsatzes liegt vor allem in der Integration – sowohl zwischen den einzelnen Funktionsbereichen als auch hinsichtlich der Nutzung von Office-Anwendungen wie Excel und Project als Clients.

Ein Entwickler kann beim Bereitstellen von Code im Quellcodeverwaltungssystem (Check-in) nicht nur wie sonst üblich einen Kommentar hinterlegen, sondern den Check-in direkt einer oder mehreren Aufgaben zuordnen, zum Beispiel gemeldeten Fehlern. Zudem kann ein Projektleiter im TFS eine solche Zuordnung durch sogenannte Check-in-Policies als verpflichtend einrichten. Visual Studio beschwert sich dann beim Entwickler, wenn er den Check-in keiner Tätigkeit zuordnet. Ab TFS 2010 kann eine Check-in-Policy auch besagen, dass der eingelagerte Code erst aus einer Liste von definierten Unit-Tests und Codeanalysen bestehen muss. Solange ist der Code nur vorläufig eingecheckt (Gated Check-in). Erst wenn der Code die Tests bestanden hat, können ihn die anderen Entwickler abrufen.

Gated Check-ins sind ein Beispiel, wie clientseitige Funktionen von Visual Studio einen Mehrwert durch die Ausführung auf der Serverseite generieren. Ein zweites ist Continous Integration. Durch Konfiguration eines sogenannten Build-Servers lässt sich erreichen, dass man Projekte serverseitig kompiliert. Das kann entweder periodisch erfolgen oder aber nach jedem Check-in. Das Ergebnis lässt sich in Visual Studio oder dem Webportal abrufen, oder man kann die Entwickler per E-Mail informieren.

Der Team Explorer ist die Schaltzentrale für den TFS innerhalb von Visual Studio.

Das Erstellen und Abfragen von Tätigkeiten ist nicht nur über die Visual-Studio-Oberfläche (siehe die nebenstehende Abbildung des Team Explorer) und die TFS-Weboberfläche, sondern auch über Excel und Microsoft Project sowie – durch das Zusatzprodukt Team Companion – in Outlook realisierbar. Standardmäßig kennt TFS als Tätigkeitstypen beispielsweise Task, Bug und User Story, jeweils mit zahlreichen Attributen. Sowohl die Tätigkeitstypen als auch die Attribute lassen sich aber umdefinieren. Neu bei TFS 2010 ist das hierarchische Anordnen von Tätigkeiten. Der TFS speichert alles (Aufgaben, Quellcode, Build-Prozesse et cetera) in einer SQL-Server-Datenbank.

Für Projektleiter bietet TFS Berichte, die den Projektfortschritt anzeigen, etwa die Anzahl der implementierten Funktionen und die der gemeldeten Fehler im Zeitablauf. Berichte kann man über Visual Studio, das Webportal oder Excel abrufen. Der TFS integriert sich in das Sicherheitssystem von Windows Server, das heißt, durch die Zuordnung von Benutzern zu Gruppen im Active Directory erhalten Anwender Rechte auf dem TFS.

Wie die Tabelle im Anhang des Artikels zeigt, gibt es für fast alle ALM-Funktionen in Visual Studio/TFS mindestens ein kostenloses Produkt in der gleichen Kategorie. Die meisten Einträge sind Open-Source-Produkte, in einigen Fällen gibt es kostenfreie Alternativen von Microsoft. Einige von ihnen bieten grundsätzlich ähnliche Funktionen wie der TFS an, Subversion ist etwa durchaus äquivalent zu Team Foundation Version Control. Andere kostenfreie Produkte liegen aber weit zurück, zum Beispiel bietet NUnitForms für Tests von Desktop-User-Interfaces keine Aufzeichnung von Benutzeraktionen, sondern nur eine Code-Automatisierung.

Es gibt einen zentralen Unterschied zwischen der Open-Source- oder der Visual-Studio/TFS-Welt: die Integration. Neben der Tatsache, dass die meisten kostenfreien Werkzeuge nicht in Visual Studio
eingebettet sind, gibt es kaum eine Integration zwischen den einzelnen Open-Source-Werkzeugen. Lediglich vereinzelt findet man Ansätze hierfür, etwa die Möglichkeit, im Tortoise-SVN-Client für das Subversion-Quellcodeverwaltungssystem beim Check-in eine ID aus dem Bugtracking-System anzugeben. Die Integration ist aber nur ein Eingabefeld, nicht wie in Visual Studio ein Auswahldialog, der vor Fehlern schützt. In vielen anderen Fällen muss man die Integration erst durch Skripte selbst herstellen. Ein Berichtswesen wie beim TFS findet man in keiner der kostenfreien Lösung.

Bisher gab es zwei wesentliche Gründe gegen den Einsatz des TFS: die hohen Lizenzkosten und der große Installationsaufwand. An beiden Stellschrauben hat Microsoft gedreht. Eine TFS-2010-Lizenz gibt es nun für rund 500 Euro (Angebot galt nur bis Ende September 2010; Red.). Sie enthält fünf Client-Zugriffslizenzen, also das Recht, das fünf Clients zugreifen können. Das ist nur noch rund ein Fünftel des bisherigen Preises für TFS 2008. Erst ab dem sechsten Teammitglied wären weitere 400 Euro pro Person fällig. MSDN-Abonnenten erhalten seit April 2010 neben der Client-Zugriffs- noch eine Serverlizenz. Jeder Entwickler könnte theoretisch seinen eigenen TFS auf einem Notebook betreiben. Das ergibt aber insofern noch keinen Sinn, weil auch TFS 2010 die Replikation zwischen unterschiedlichen TFS-Instanzen bislang nicht unterstützt.

Die Schlüsselkomponente für eine vereinfachte Installation in TFS ist der neue Installationsassistent mit den Optionen "Basic", "Standard", "Advanced" und "Upgrade". Eine Basisinstallation benötigt als Betriebssystem keinen Windows Server, vielmehr reicht ein aktuelles Client-Betriebssystem (Vista oder Windows 7). Als Datenbank kann SQL Server Express zum Einsatz kommen. Nun lässt sich TFS 2010, anders als zuvor, auch auf einem Domänencontroller installieren – eine Option für kleine Unternehmen, die nur einen Server besitzen.

Die Basisinstallation richtet sich an Einzelentwickler oder kleine Teams. Unter den Funktionen finden sich Quellcode- und Aufgabenverwaltung, Continous Integration sowie das Webportal, nicht verfügbar ist hingegen die Dokumentenverwaltung über SharePoint. "Standard" und "Advanced" unterscheiden sich nicht mehr in den Funktionen, sondern hinsichtlich der Individualität der Konfiguration. Die Codebasis beim Installationsassistenten ist aber die gleiche wie bei der Individualinstallation; eine Aufrüstung der fehlenden Funktionen ist also möglich.

Und noch einen Köder legt Microsoft mit TFS 2010 aus: Es gibt nun als kostenlose Beigabe die von der Firma SourceGear übernommene TeamPrise-Produktpalette. TeamPrise bietet Unix-/Linux-/Mac-Clients und Eclipse-Plug-ins für den TFS. Damit wird er auch interessant, wenn man noch andere Entwicklungsplattformen außer .NET und Visual Studio im Einsatz hat.

Mit den Neuerungen sind aber nicht alle lizenz- und konfigurationstechnischen Herausforderungen gelöst. Weiterhin brauchen Anwender, die nur ihre Tätigkeiten über das Webportal verwalten wollen (zum Beispiel Endkunden, die Fehler melden), eine Client-Zugriffslizenz für den TFS. Auch sind die Installation und Betrieb eines TFS nicht so trivial, dass man nicht viel Know-how erwerben müsste. Das Hosting des TFS bei einem Provider (vergleiche www.tfshosting.de) kann hierfür eine Alternative sein.

Die Freeware-Produkte sind durchaus mächtig, aber nur für sich betrachtet. Wer ein integriertes Produkt mit komfortablen Benutzerschnittstellen sucht, für den stellt der TFS ein Angebot dar. Andere Anbieter bieten zwar eine zum Teil ähnliche Integration und noch mehr Funktionen, aber das Investitionsvolumen steigt ebenfalls stark an.

Dr. Holger Schwichtenberg
bietet mit seinem Unternehmen www.IT-Visions.de Beratung und Schulungen im .NET-Umfeld. Er hält Vorträge auf Fachkonferenzen und ist Autor zahlreicher Fachbücher.

ALM-Funktion Visual Studio 2010/TFS Kostenlose Alternative (Beispiele)
UML ab VS 2010 Ultimate Tangible Modeling Tools, Modelio Free, Acceleo ...
Unit-Testing ab VS 2010 Professional NUnit, CSUnit
Code Coverage ab VS 2010 Premium NCover (Hinweis: Es gibt auch ein gleichnamiges kommerzielles Werkzeug), NCoverExplorer
Test Impact Analysis ab VS 2010 Premium ?
IntelliTrace ab VS 2010 Ultimate ?
Datenbank-Schema-Versionierung ab VS 2010 Premium ?
Mock-Objekte Nicht vorhanden NMock, .NET Mock Objects
Load Testing ab VS 2010 Ultimate Webstress (Microsoft)
Web-Tests ab VS 2010 Ultimate NUnitAsp
Desktop-UI-Tests ab VS 2010 Premium NUnitForms
Statische Code-Analyse ab VS 2010 Premium FxCop (Microsoft)
Profiler ab VS 2010 Premium CLR Profiler (Microsoft), nProf
Quellcodeverwaltung ab VS 2010 Professional + TFS Subversion
Aufgaben & Bugtracking ab VS 2010 Professional + TFS BugTracker .NET, Trac ...
Dokumentenverwaltung ab VS 2010 Professional + TFS SharePoint Services (Microsoft)
Build-Server ab VS 2010 Professional + TFS CruiseControl .NET
Lab-Management ab VS 2010 Premium + TFS ?

ALM-Funktionen in Visual Studio und Team Foundation Server im Vergleich zu kostenfreien ALM-Produkten, die in der .NET-Welt verbreitet sind. (ane)