Delen via


Bijdragemodel

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Extensies voegen nieuwe mogelijkheden toe aan het systeem door bijdragen te leveren en door manieren te definiƫren waarop andere extensies kunnen worden aangesloten. Een bijdragetype definieert iets dat kan worden toegevoegd aan het systeem. Een bijdrage is een specifiek exemplaar van een bijdragetype. Is bijvoorbeeld hub een bijdragetype dat is gedefinieerd door een door Microsoft geleverde kernextensie. De Explorer hub onder de build-hubgroep is een specifieke bijdrage van het type hub.

Raadpleeg het volgende Engelstalige naslagmateriaal voor meer informatie:

Bijdragetypen

Een bijdragetype definieert een contract waaraan alle bijdragen aan het systeem van dat type moeten voldoen. Een bijdragetype kan ook worden uitgebreid van een ander type bijdrage. In de volgende voorbeelden van bijdragetypen worden de eigenschappen gedefinieerd die zijn ingesteld door exemplaren van dat type:

  • hub
  • action
  • build-task

Elke eigenschapsdefinitie geeft de volgende aspecten aan:

  • Eigenschapstype, bijvoorbeeld tekenreeks, Booleaanse waarde, enzovoort.
  • Of de eigenschap vereist is
  • Standaardwaarde, indien niet opgegeven door een bijdrage (optioneel).

Opmerking

Hier volgt een voorbeeld van een declaratie van een bijdragetype in een uitbreidingsmanifest:

{
    ...
    "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"
                }
				...
            }
        }
    ]
}

Bijdragen

Een bijdrage is een exemplaar van een bijdragetype. De hub onder de groep Work Hub is bijvoorbeeld Queries een bijdrage van het type hub en de Publish Test Results build-taak is een bijdrage van het type build-task.

Alle bijdragen moeten een type opgeven en waarden opgeven voor eigenschappen die vereist zijn voor dat bijdragetype.

Opmerking

Hier volgt een voorbeeld van een hub-bijdragedeclaratie in een uitbreidingsmanifest:

{
    "contributions": [
        {
            "id": "build-explorer-hub",
            "type": "ms.vss-web.hub",
            "targets": [
                ".build-hub-group"
            ],
            "properties": {
                "name": "Explorer",
                "uri": "/_build",
                "order": 22
            }
        }
    ]
}

Doelbijdragen

Een bijdrage kan gericht zijn op een of meer andere bijdragen, waardoor er een relatie ontstaat tussen de bijdrage en elk van de doelen. Het systeem kan bijdragen voor het doel tijdens runtime detecteren. Een bijdrage () kan bijvoorbeeld hub gericht zijn op een specifieke hub-group bijdrage (Build).Explorer

{
    "id": "build-explorer-hub",
    "type": "ms.vss-web.hub",
    "targets": [
        ".build-hub-group"
    ]
}

Wanneer de hubgroep wordt weergegeven, kan het systeem een query uitvoeren op alle hubbijdragen die gericht zijn op de hubgroep om te weten welke hubs moeten worden weergegeven.

Bijdragen en typen identificeren

Elk bijdrage- en bijdragetype moet een unieke id hebben binnen de extensie waarin deze is gedeclareerd.

Een volledige bijdrage-id bevat de volgende items, die u scheidt met een punt . :

  • Uitgevers-id
  • Extensie-id
  • Bijdrage/type-id

Bijvoorbeeld: ms.vss-web.hub is de volledige id voor de volgende bijdrage:

  • Uitgever-id: ms
  • Extensie-id: vss-web
  • Bijdrage/type-id: hub

U kunt relatieve bijdrageverwijzingen in een uitbreidingsmanifest gebruiken voor de verwijzing van een bijdrage naar een andere bijdrage of bijdragetype binnen diezelfde extensie. In dit geval worden de uitgevers- en extensie-id's niet opgenomen en is de id een punt . gevolgd door de bijdrage-id. Kan bijvoorbeeld .hub worden gebruikt binnen de vss-web eerder genoemde extensie als een snelkoppeling voor ms.vss-web.hub.