# Azure DevOps Server

Der Azure DevOps Server, früher bekannt als Team Foundation Server (TFS), von Microsoft, ist eine umfassende Plattform für kollaborative Softwareprojekte. Er ermöglicht die Planung, Erstellung und Verwaltung von Projekten. Der Azure DevOps Server bietet eine hohe Skalierbarkeit und kann bis zu 2000 Entwickler und 500 Projekte verwalten.
Für kleine Projekte steht die kostenlose Express-Edition zur Verfügung, die von bis zu fünf Benutzern genutzt werden kann. Diese Edition bietet eine reduzierte Funktionalität.
Der TFS wurde als Nachfolger des Microsoft Visual SourceSafe in der Geschichte der Quelltext-Verwaltungssysteme von Microsoft entwickelt. Ursprünglich für Windows-Server konzipiert, wurde das Produkt mit der Version 2019 in Azure DevOps Server umbenannt.
Mit dem Azure DevOps Server erhalten Softwareentwickler und Teams eine Plattform, um ihre Projekte zu organisieren, den Quellcode zu verwalten, Builds zu erstellen und Tests durchzuführen. Die Integration von DevOps-Praktiken unterstützt eine nahtlose Zusammenarbeit zwischen Entwicklung und Betrieb, um eine effizientere Bereitstellung von Softwarelösungen zu ermöglichen.
Die Umbenennung des Produkts in Azure DevOps Server betont die zunehmende Integration mit der Microsoft Azure Cloud und die enge Verbindung zur DevOps-Kultur und den damit verbundenen agilen Entwicklungsmethoden.

## Unterstützung des Entwicklungsprozesses

Auf Basis der Prozessvorlagen unterstützt der Azure DevOps Server verschiedene Entwicklungsverfahren. Vorlagen für die Standardverfahren CMMI, Agile Softwareentwicklung oder Scrum werden mitgeliefert. Andere Hersteller bieten weitere Prozessvorlagen an. Alle Prozessvorlagen liegen in Form von XML-Dateien vor, so dass grundsätzlich ein (XML-)Editor für deren Bearbeitung ausreicht. Für eine einfachere und schnellere Anpassung steht allerdings ein Werkzeug zur Verfügung, mit dem die Anpassungen direkt in der Entwicklungsumgebung vorgenommen werden können. Die beim Prozess mitgelieferte Dokumentation („Process Guidance“) liegt statisch vor, kann aber dank verfügbaren Quelldateien angepasst und neu erstellt werden.
Bestandteile einer Prozessvorlage sind Work Items, Reports, Abfragen und diverse Dokumente.
Die involvierten Teammitglieder können mit verschiedenen Werkzeugen (zum Beispiel Microsoft Visual Studio, Microsoft Excel, Microsoft Project, Microsoft InfoPath, Microsoft Word oder Microsoft Outlook) Prozessschritte bearbeiten und die entsprechenden Arbeitsschritte (“workflows”) anstoßen. Die genannten Programme integrieren sich direkt in den TFS, so dass auf einer einheitlichen Plattform gearbeitet werden kann.
Während Entwickler die TFS-Office-Integration gewöhnlich mit Visual Studio installieren, war für Nicht-Entwickler lange die Installation des Team Explorer inklusive Visual Studio Shell notwendig – seit TFS 2015 reicht die schlankere Team Foundation Server Office Integration, um beispielsweise Excel oder Project zur Zusammenarbeit mit TFS oder Visual Studio Team Services (VSTS) zu nutzen. Alternativ kann die gegenüber früheren Versionen deutlich leistungsfähigere Weboberfläche von TFS und VSTS mittels Webbrowser genutzt werden. Aufgabenabhängig bietet die Verwendung beispielsweise von Excel Vorteile, unter anderem durch die Möglichkeit, auch offline zu arbeiten, und höhere Arbeitseffizienz bei der Änderung großer Datenmengen oder der Verwendung externer Datenquellen.

## Features
### Versionsverwaltung

TFS integriert eine eigene Versionsverwaltung für den Quelltext der verwalteten Entwicklungsprojekte. Die gängigen Operationen eines zentralisierten Versionsverwaltungssystems (vergleichbar Apache Subversion) werden unterstützt.

### Build

Die Buildengine des TFS heißt TFBuild (auch: Team Foundation Build oder Team Build) und ermöglicht das automatische Erstellen („build“) des entwickelten Produkts, optional auch mit Dokumentation. Dabei kann man auch Unittests ausführen und Statistiken bzw. Berichte (“reports”) generieren lassen. Außerdem ist es möglich, externe Anwendungen zu integrieren, um so beispielsweise erzeugte Assemblies zu analysieren oder Security-Richtlinien zu überprüfen.
Die Versionen 2005 und 2008 von TFBuild basieren nur auf dem Build-Tool MSBuild. Version 2010 nutzt zusätzlich die Windows Workflow Foundation, um Builds zusammen auszuführen. Eine Neuerung von Version 2015 ist es, alternativ zu MSBuild auch andere Build-Engines wie etwa Apache Ant oder Apache Maven für die Builds zu benutzen.
Zumindest die Version 2015 von TFBuild ist nicht nur mit Team Foundation Server, sondern auch unter Visual Studio Online verwendbar.

### Reports

Über ein integriertes Data-Warehouse werden automatisch Berichte (reports) erstellt (unter anderem mit Metriken, Fehlerstatistik, Leistungsanalyse). Die Berichte sind für unterschiedliche Zielpersonen zugeschnitten (Kostenverantwortliche, Entwickler, Projektleiter) und geben jeweils einen Überblick über den Projektstand. Technische Grundlage ist ein sogenannter Report Server, der seine Ausgabe über einen Microsoft SharePoint-Server generiert. Dadurch können die Berichte sowohl direkt als auch in Microsoft Project, Excel und innerhalb von Visual Studio benutzt werden.

### Benutzerverwaltung

Der TFS kann entweder als Server in einem Active Directory oder einzeln (Standalone) betrieben werden. Für die Benutzerverwaltung kennt der Server die Windows-Benutzer und Gruppen sowie weitere Gruppen im TFS. Beim Anlegen eines Projekts werden vier Gruppen automatisch erstellt: Lesezugriff (Readers), Schreibzugriff (Contributors), Administratoren (Project Administrators) und eine interne Gruppe zum Buildmanagement (Build Services).
Die Berechtigungen für den SharePoint-Server sowie das Reporting System müssen vom Administrator von Hand gesetzt werden. Aus diesem Grund empfiehlt es sich, Windows-Gruppen zu definieren und zu verwenden.

## Serveraufbau

Der TFS ist auf dem Prinzip einer Schichtenarchitektur entwickelt worden. Anwendungs- und Datenschicht können auf einem einzelnen Server oder auf separaten Servern installiert werden.
Der TFS benötigt folgende Software:
* Microsoft SQL Server für die Datenhaltung und das Data-Warehouse (x86 oder x64)
* Windows Server 2003, Windows Server 2008 oder Windows Server 2012 für die Anwendung (x86 oder x64)
* TFS-Build entweder integriert oder separat
* Microsoft Internet Information Server und Windows SharePoint Services
* Microsoft Report Server
Ab der Version 2010 kann der Team Foundation Server auch auf einem Client-Betriebssystem installiert werden. Hierfür wird eine Basis-Konfiguration angeboten, die die Express-Version des Microsoft SQL Servers zur Datenhaltung benutzt. Diese Installationsform ist für Einzelentwickler gedacht, die den Team Foundation Server benutzen wollen. Microsoft möchte hierdurch den Team Foundation Server als Nachfolger des Produkts Microsoft Visual SourceSafe etablieren, das nicht mehr von Microsoft gepflegt wird.
Die einzelnen Komponenten, mit Ausnahme des Windows-Server-Betriebssystems und des SQL Servers, sind Bestandteil des Produkts.

## Interoperabilität

Es gibt ein Hilfsprogramm, das Interoperabilität zwischen TFS und anderen Versionsverwaltungssystemen herstellt. Ein solches gibt es für Git als plattformübergreifendes Java-Hilfsprogramm (Git-tf) oder als reines Windows-Programm (Git-tfs). Auch eine Austauschplattform für PTC-Integrity ist verfügbar.