Beitragsmodell
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Erweiterungen fügen dem System neue Funktionen hinzu, indem sie Beiträge bereitstellen und Möglichkeiten für andere Erweiterungen definieren, die sie anschließen können. Ein Beitragstyp definiert etwas, das dem System hinzugefügt werden kann. Ein Beitrag ist eine bestimmte Instanz eines Beitragstyps. Beispielsweise handelt es sich um einen Beitragstyp, hub
der durch eine von Microsoft bereitgestellte Kernerweiterung definiert ist. Der Explorer
Hub unter der Gruppe "Hub erstellen" ist ein bestimmter Beitrag vom Typ hub
.
Weitere Informationen finden Sie in den folgenden Referenzen:
Beitragstypen
Ein Beitragstyp definiert einen Vertrag, den alle Beiträge für das System dieses Typs einhalten müssen. Ein Beitragstyp kann sich auch von einem anderen Beitragstyp erstrecken. Die folgenden Beispiele für Beitragstypen definieren die von Instanzen dieses Typs festgelegten Eigenschaften:
hub
action
build-task
Jede Eigenschaftsdefinition gibt die folgenden Aspekte an:
- Eigenschaftstyp, z. B. Zeichenfolge, boolescher Wert usw.
- Gibt an, ob die Eigenschaft erforderlich ist.
- Standardwert, wenn nicht durch einen Beitrag angegeben (optional).
Beispiel
Hier ist ein Beispiel für eine Beitragstypdeklaration in einem Erweiterungsmanifest:
{
...
"contributionTypes": [
{
"id": "hub",
"name": "Web Access Hub",
"description": "A hub that appears in the hubs menu at the top of web pages.",
"properties": {
"name": {
"description": "The text to display for the hub",
"type": "string",
"required": true
},
"uri": {
"description": "URI of the contents of the hub page",
"type": "string",
"required": true
},
"order": {
"description": "An optional ordering value which can indicate in which position to place the hub within the hub group",
"type": "integer"
}
...
}
}
]
}
Beiträge
Ein Beitrag ist eine Instanz eines Beitragstyps. Beispielsweise ist der Queries
Hub unter der Arbeitshubgruppe ein Beitrag vom Typ hub
und die Publish Test Results
Buildaufgabe ist ein Beitrag vom Typ build-task
.
Alle Beiträge müssen einen Typ angeben und Werte für alle Eigenschaften angeben, die für diesen Beitragstyp erforderlich sind.
Beispiel
Hier ist ein Beispiel für eine Hub-Beitragsdeklaration in einem Erweiterungsmanifest:
{
"contributions": [
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
],
"properties": {
"name": "Explorer",
"uri": "/_build",
"order": 22
}
}
]
}
Ziel-Beiträge
Ein Beitrag kann auf einen oder mehrere andere Beiträge abzielen, wodurch eine Beziehung zwischen dem Beitrag und jedem seiner Ziele entsteht. Das System kann Beiträge für das Ziel zur Laufzeit ermitteln. Beispielsweise kann ein hub
Beitrag (Explorer
) auf einen bestimmten hub-group
Beitrag (Build
) abzielen.
{
"id": "build-explorer-hub",
"type": "ms.vss-web.hub",
"targets": [
".build-hub-group"
]
}
Wenn die Hubgruppe gerendert wird, kann das System alle Hub-Beiträge abfragen, die für die Hubgruppe bestimmt sind, um zu wissen, welche Hubs gerendert werden sollen.
Identifizieren von Beiträge und Typen
Jeder Beitrags- und Beitragstyp muss eine eindeutige ID innerhalb der Erweiterung aufweisen, in der er deklariert ist.
Ein vollständiger Beitragsbezeichner enthält die folgenden Elemente, die Sie durch einen Punkt .
trennen:
- Herausgeber-ID
- Erweiterungs-ID
- Beitrags-/Typ-ID
Beispiel: ms.vss-web.hub
ist der vollständige Bezeichner für den folgenden Beitrag:
- Herausgeber-ID:
ms
- Erweiterungs-ID:
vss-web
- Beitrags-/Typ-ID:
hub
Sie können relative Beitragsverweise innerhalb eines Erweiterungsmanifests für einen Beitragsverweis auf einen anderen Beitrags- oder Beitragstyp innerhalb derselben Erweiterung verwenden. In diesem Fall sind die Herausgeber- und Erweiterungs-IDs nicht enthalten, und die ID ist ein Punkt .
, gefolgt von der Beitrags-ID. Kann z. B. innerhalb der vss-web
Erweiterung verwendet werden, .hub
Erwähnung zuvor als Verknüpfung für ms.vss-web.hub
.