Allgemein Für Administratoren Für Architekten Für Entwickler Für Projektleiter Für Tester News Produkte Publikationen
X
Barbara Göller

Barbara Göller

Neu in Visual Studio und TFS "15": Multivalue Control Extension

Freitag, 04. November 2016

Seit langer Zeit steht der Wunsch nach einem Multivalue Control auf der Liste der gewünschten Features für den TFS auf der Visual Studio User Voice Webseite. Mit TFS „15“ kommt Microsoft diesem Wunsch in Form einer Marketplace-Extension nach und löst damit den bisherigen Workaround in Form des Custom Work Item Controls von CodePlex ab. In diesem Blogpost stellen wir Ihnen vor, wie die Extension installiert werden kann, wie das Multivalue Control in Teamprojekten verwendet werden kann und was es sonst noch darüber zu wissen gibt.

Über die Suche im Marketplace kann die Extension gefunden und installiert werden. Wie bisher auch für die Legacy Extensions üblich, wird die Extension auf Collection-Ebene installiert  (vgl. Abb. 1). Möchte man darüber hinaus im Nachhinein für weitere Collections das Multivalue Control verfügbar machen, kann dies über die Seite ‘Manage Extensions’ (http://<server>/tfs/_gallery/manage) erreicht werden.

image

Abb. 1: Installation der Multivalue Control-Extension

Nach der Installation der Extension kann das Multivalue Control dann in Teamprojekten der Collection verwendet werden. Dabei gilt es zu beachten, dass dies nur für Teamprojekte  gilt, welche die neue Work Item Web Form aktiviert haben und damit in den Work Item Definitionen des Prozess Templates den neuen Knoten WebLayout besitzen. Ist dies gegeben, so kann das Prozess Template entsprechend angepasst werden, um das Multivalue Control zu verwenden.

Dazu exportiert man wie gewohnt die Work Item Type Definition des zu bearbeitenden Work Items aus dem Team Projekt (per Witadmin oder Visual Studio). Dieses enthält nun im Bereich WebLayout alle, für die weiteren Schritte notwendige Informationen der Extension, wie z.B. die ID der Extension (vgl. Abb. 2 (1)) und die ID des ControlContributionElements (vgl. Abb. 2 (2)).

image

Abb. 2: Extension-Informationen

Mit diesen Informationen kann nun die Work Item Type Definition angepasst werden, um die Multivalue Control zu verwenden. Im ersten Schritt wird ein neuer Extension-Knoten im Bereich WebLayout/Extensions eingeführt, um die Extension in der Work Item Form verfügbar zu machen (vgl. Abb. 3). Die angegebene ID muss dabei wie in den Extension-Informationen spezifiziert angegeben werden (vgl. Abb. 2 (1)).

image

Abb. 2: Extension-Knoten

Im zweiten Schritt kann dann das neu einzufügende Feld im Bereich FIELDS definiert werden . Die Werte, welche im Multivalue Control zur Verfügung stehen sollen, werden als SUGGESTEDVALUES angeführt, wobei das Attribute expanditems den Wert true besitzen muss (vgl. Abb. 3).

SNAGHTML514675

Abb. 3: Feld-Definition

Schlussendlich wird dann das zuvor neu definierte Feld im WebLayout an gewünschter Stelle platziert. Hierzu wird ein ControlContribution-Element verwendet, welches dazu dient eine Work Item Extension auf Feld-Ebene in einem Work Item darzustellen (vgl. Abb. 4). Dabei gilt es zu beachten, dass das Attribut Value des Elements Input mit dem Refname des definierten Feldes übereinstimmen muss und die ID des ControlContributon-Elements  der in den Extension-Informationen spezifizierten entsprechen muss (vgl. Abb. 2 (1)).

SNAGHTML5bce71

Abb. 4: Definition des ControlContribution-Elements

Nach den Anpassungen wird die Work Item Type Definition wieder in das Teamprojekt importiert und das lang ersehnte Multivalue-Control erscheint in dem entsprechenden Work Item an definierter Stelle (vgl. Abb. 5). Ist die Liste der Optionen eingeklappt, so werden alle ausgewählten Optionen als Kacheln dargestellt.

image

Abb. 5: Multivalue-Control

Ist das Feld nun also in Verwendung so kann es auch über Queries abgefragt werden. Dabei wird der Contains-Operator verwendet. Sollen mehrere Optionen abgefragt werden, so können mehrere Contains-Klauseln verkettet werden. Diese Abfragelogik basiert darauf, dass die ausgewählten Werte im Hintergrund als Semikolon-separierte Liste abgespeichert sind (vgl. Abb. 6).

image

Abb. 6: Abfragen eines Multivalue-Feldes

Nicht zuletzt sei darauf hingewiesen, dass der Source Code für die Multivalue-Extension auf GitHub zur Verfügung steht.

Verwandte Artikel:

Benötigen Sie Unterstützung bei der Software-Entwicklung und Architektur von .NET basierten Lösungen oder bei Einführung und Anpassung von Visual Studio / Microsoft Test Manager / Team Foundation Server?

Wir stehen Ihnen unter info(at)aitgmbh.de gerne zur Verfügung.

Tags: , , ,

Hinterlasse eine Antwort