Programmatisch auf Team Foundation Server 2010 zugreifen? TFS Managed Object Model? TFS SDK for Java? OData?
In vielen Fällen möchte man auf die TFS Services, wie Version Control. Workitems, Builds programmatisch zugreifen, um z.B. ein anderes Werkzeug zu integrieren oder ein anderen Client zu entwickeln. In diesem Beitrag möchte ich kurz die Möglichkeiten aufführen und in diesem Kontext auch den OData Service für TFS 2010 Beta vorstellen als auch Tipps geben, wie man diesen lokal auf seinem Client einfach Testen kann. Und mit TFS on the Road gibt es jetzt schon die erste Windows Phone 7 App für den TFS, die auf OData basiert.
Grundsätzlich besteht der TFS aus einer Application Tier und einer Data Tier, wobei die Application Tier die Services als SOAP Webservices zur Verfügung stellt. Welche Optionen habe ich nun diese Webservices zu konsumieren?
1) Plattformen , für die das .NET Framework verfügbar ist, empfiehlt sich der Zugriff über das Managed TFS Object Model. Ein Einführung finden Sie hier.
2) Plattformen , für welche die Java Runtime verfügbar ist, kann der Zugriff mit dem Team Foundation Server SDK for Java durchgeführt werden.
3) Webservices direkt konsumieren ist Supportet, wobei keine aktuelle MSDN Dokumentation existiert. Empfohlen und viel einfacher zu nutzen sind die anderen Ansätze.
4) NEU ist der OData Service für TFS 2010 Beta für alle Devices und Plattformen für die 1) oder 2) keine Option sind. Wobei die Beta nicht den gleichen Funktionsumfang wie 1) bzw. 2) unterstützt.
OData = Open Data Protocol ist ein offener Standard, der den HTTP Stack voraussetzt und so keine Voraussetzungen für Runtimes usw. mit bringt. Auf diese Weise können auch Devices, die 1) oder 2) nicht unterstützen auf die TFS Services zugreifen. Der OData Service für TFS 2010 Beta implementiert OData und nutzt das TFS Object Model, um mit den TFS Services zu interagieren. Ist also ein zusätzlicher Service. Der Code steht hier zum Download bereit. In der Solution ist der Service als Azure Projekt implementiert und könnte so mit geringem Aufwand direkt publiziert werden. Ein bereits vorhandener TFS könnte dann auch via OData genutzt werden. Die Dokumentation erklärt die dazu notwendigen Anpassungen. Zudem gibt es ein Video von Brian Keller, dass einen guten Überblick liefert.
Hier noch Tipps, wie man als Entwickler den OData Service for TFS 2010 auch auf seinem lokalen Win7 testen kann. Ich habe auf meinem Win7 Client den TFS in der Basic Konfiguration lokal laufen. Dann die Solution etwas simplifiziert, da ich den Service auf dem lokalen IIS hosten möchte:
Hierzu habe ich die Projekt Eigenschaften von ODataTFS.Web geändert, so dass der lokale IIS verwendet wird:
Die WebConfig angepasst:
1) Sektion <system.diagnostics> auskommentiert, da ich in dieser Konstellation kein Azure Tracing benötige.
2) In Sektion <system.web> hinzugefügt :
<anonymousIdentification enabled="false"/>
<authentication mode="Windows" />
3) In Sektion <appSettings> auf meinen lokalen TFS Server angepasst:
<add key="ODataTFS.TfsServer" value=https://DeinTFS:8080/tfs />
4) In Section <system.webServer> folgende Sektionen auskommentiert, da ich ohne SSL lokal Testen möchte:
<staticContent> <handlers>
Hinweis: Nur für Testsysteme mit Test Accounts. Ansonsten ist HTTPS sprich SSL aus Sicherheitsgründen erforderlich!
Nun kann der Service direkt im Browser getestet werden:
Da das Managed TFS Object Model auf dem Windows Phone 7 nicht zur Verfügung steht, bietet sich OData als Beispiel an, um auf den TFS vom Phone aus zuzugreifen. Der Code ist im Download mit enthalten und kann direkt im Emulator gestartet werden:
Und wie schon am Anfang angekündigt, hat Pedro Castelo direkt mal eine cool App für das Windows Phone 7 “TFS on the Road” basierend auf OData for TFS geschrieben, die kostenfrei im Marketplace hier zur Verfügung steht. Der Souce Code ist ebenfalls auf Codeplex frei verfügbar. Codeplex selbst hat den OData Service schon implementiert, so dass man auf alle Projekte, für die man Zugriff hat mit TFS on the Road via Phone zugreifen kann. Details zur App gibt’s hier.
Die Navigation Map von TFS on the Road:
Viel Spass