Delen via


Uitbreidbaarheid van Azure Data Studio

Belangrijk

Azure Data Studio wordt op 28 februari 2026buiten gebruik gesteld. U wordt aangeraden Visual Studio Codete gebruiken. Ga naar Wat gebeurt er met Azure Data Studio voor meer informatie over migreren naar Visual Studio Code?

Azure Data Studio heeft verschillende uitbreidbaarheidsmechanismen om de gebruikerservaring aan te passen en deze aanpassingen beschikbaar te maken voor de hele gebruikerscommunity. Het Azure Data Studio-kernplatform is gebaseerd op Visual Studio Code, dus de meeste api's voor uitbreidbaarheid van Visual Studio Code zijn beschikbaar. Daarnaast hebben we andere uitbreidbaarheidspunten opgegeven voor activiteiten die specifiek zijn voor gegevensbeheer.

Enkele van de belangrijkste uitbreidbaarheidspunten zijn:

  • Api's voor uitbreidbaarheid van Visual Studio Code
  • Ontwerphulpprogramma's voor Azure Data Studio-extensies
  • Bijdragen aan het tabblad Dashboard beheren
  • Inzichten met actie-ervaring
  • Api's voor uitbreidbaarheid van Azure Data Studio
  • API's voor aangepaste gegevensproviders

Api's voor uitbreidbaarheid van Visual Studio Code

Omdat het belangrijkste Azure Data Studio-platform is gebouwd op Visual Studio Code, vindt u informatie over de uitbreidbaarheids-API's van Visual Studio Code in de documentatie over extensieontwerp en extensie-API op de Website van Visual Studio Code.

Notitie

Azure Data Studio-releases zijn afgestemd op een recente VS Code-versie. De meegeleverde VS Code-engine is echter mogelijk niet de huidige VS Code-release. In november 2020 was de VS Code-engine in Azure Data Studio bijvoorbeeld 1.48 en is de huidige VS Code-versie 1.51. Het foutbericht 'Kan extensie niet installeren '<naam>' omdat deze niet compatibel is met VS Code <versie>' bij het installeren van een extensie wordt veroorzaakt door een extensie met een latere versie van de VS Code-engine die is gedefinieerd in het pakketmanifest (package.json). U kunt de versie van de VS Code-engine in Azure Data Studio controleren via het Menu Help onder Over.

Bijdragen aan het tabblad Dashboard beheren

Zie Bijdragepunten en contextvariabelen voor meer informatie.

Api's voor uitbreidbaarheid van Azure Data Studio

Zie Extensibility-API's voor meer informatie.

Bijdragepunten

In deze sectie worden de verschillende bijdragepunten beschreven die zijn gedefinieerd in het package.json uitbreidingsmanifest.

De IntelliSense wordt ondersteund in azuredatastudio.

Dashboardbijdragepunten

Een tab-, container- en/of inzichtwidget bijdragen aan het dashboard.

schermopname van het dashboard.

dashboard.tabs

Dashboard.tabs maakt de tabbladsecties op de dashboardpagina. Er wordt een object of een matrix met objecten verwacht.

"dashboard.tabs": [
    {
        "id": "test-tab1",
        "title": "Test 1",
        "description": "The test 1 displays a list of widgets.",
        "when": "connectionProvider == 'MSSQL' && !mssql:iscloud",
        "alwaysShow": true,
        "container": {
            ...
        }
    }
]

dashboard.containers

In plaats van de dashboardcontainer inline op te geven (op het dashboardtabblad), kunt u containers registreren met dashboard.containers. Het accepteert een object of een matrix met objecten.

"dashboard.containers": [
    {
        "id": "innerTab1",
        "widgets-container": [
            {
                "widget": {
                    "query-data-store-db-insight": {}
                }
            },
            {
                "widget": {
                    "explorer-widget": {}
                }
            }
        ]
    },
    {
        "id": "innerTab2",
        "webview-container": {}
    },
    {
        "id": "innerTab3",
        "grid-container": [
            {
                "name": "widget 1",
                "widget": {
                    "explorer-widget": {}
                },
                "row": 0,
                "col": 0
            },
            {
                "name": "widget 2",
                "widget": {
                    "tasks-widget": {
                        "backup",
                        "restore",
                        "configureDashboard",
                        "newQuery"
                    }
                },
                "row": 0,
                "col": 1
            },
            {
                "name": "Webview 1",
                "webview": {
                    "id": "google"
                },
                "row": 1,
                "col": 0,
                "colspan": 2
            },
            {
                "name": "widget 3",
                "widget": {
                    "explorer-widget": {}
                },

Als u wilt verwijzen naar de geregistreerde container, geeft u de id van de container op.

"dashboard.tabs": [
    {
        "id": "test-tab1",
        "title": "Test 1",
        "description": "The test 1 displays a list of widgets.",
        "when": "connectionProvider == 'MSSQL' && !mssql:iscloud",
        "alwaysShow": true,
        "container": {
            "id": "innerTab1"
        }
    }
]

dashboard.inzichten

U kunt inzichten registreren met dashboard.insights. Dit is vergelijkbaar met Zelfstudie: Een aangepaste inzichtwidget maken. Het accepteert een object of een matrix met objecten.

"dashboard.insights": {
    "id": "my-widget",
    "type": {
        "count": {
            "dataDirection": "vertical",
            "dataType": "number",
            "legendPosition": "none",
            "labelFirstColumn": false,
            "columnsAsLabels": false
        }
    },
    "queryFile": "{your file folder}/activeSession.sql"
}

Typen dashboardcontainers

Er zijn momenteel vier ondersteunde containertypen:

widgets-container

schermopname van de widgetscontainer.

De lijst met widgets die in de container worden weergegeven, is een stroomindeling die deze lijst accepteert.

"container": {
    "widgets-container": [
        {
            "widget": {
                "query-data-store-db-insight": {}
            }
        },
        {
            "widget": {
                "explorer-widget": {}
            }
        }
    ]
}

webview-container

schermopname van de webweergavecontainer

De webweergave wordt weergegeven in de hele container. Er wordt verwacht dat de webweergave-id hetzelfde is als tab-id.

"container": {
    "webview-container": {}
}

grid-container

Schermopname van de rastercontainer

De lijst met widgets of webweergaven die worden weergegeven in de rasterindeling. De rasterindeling is een rasterindeling van 2x2 die deze lijst accepteert.

"container": {
    "grid-container": [
        {
            "name": "widget 1",
            "widget": {
                "explorer-widget": {}
            },
            "row": 0,
            "col": 0
        },
        {
            "name": "widget 2",
            "widget": {
                "tasks-widget": {
                    "backup",
                    "restore",
                    "configureDashboard",
                    "newQuery"
                }
            },
            "row": 0,
            "col": 1
        },
        {
            "name": "Webview 1",
            "webview": {
                "id": "google"
            },
            "row": 1,
            "col": 0,
            "colspan": 2
        },
        {
            "name": "widget 3",
            "widget": {
                "explorer-widget": {}
            },
            "row": 0,
            "col": 3,
            "rowspan": 2
        }
    ]
}

Schermopname van het navigatiesectiescherm

De navigatiesectie wordt weergegeven in de container. Er wordt een matrix met objecten verwacht.

"container": {
    "nav-section": [
        {
            "id": "innerTab1",
            "title": "inner-tab1",
            "icon": {
                "light": "./icons/tab1Icon.svg",
                "dark": "./icons/tab1Icon_dark.svg"
            },
            "container": {
                ...
            }
        },
        {
            "id": "innerTab2",
            "title": "inner-tab2",
            "icon": {
                "light": "./icons/tab2Icon.svg",
                "dark": "./icons/tab2Icon_dark.svg"
            },
            "container": {
                ...
            }
        }
    ]
}

Contextvariabelen

Zie Extensibilityvoor algemene informatie over context in Visual Studio Code en hoger in Azure Data Studio.

In Azure Data Studio hebben we specifieke context rond databaseverbindingen die beschikbaar zijn voor extensies.

Dashboard

In het dashboard bieden we de volgende contextvariabelen:

Contextvariabele Beschrijving
connectionProvider Een tekenreeks van de id voor de provider van de huidige verbinding. Bijvoorbeeld: connectionProvider == 'MSSQL'.
serverName Een tekenreeks van de servernaam van de huidige verbinding. Bijvoorbeeld: serverName == 'localhost'.
databaseName Een tekenreeks van de databasenaam van de huidige verbinding. Bijvoorbeeld: databaseName == 'master'.
connection Het profielobject voor de volledige verbinding voor de huidige verbinding (IConnectionProfile)
dashboardContext Een tekenreeks van de context van de pagina waarop het dashboard zich momenteel bevindt. 'database' of 'server'. Bijvoorbeeld: dashboardContext == 'database'