Estendibilità di Azure Data StudioAzure Data Studio extensibility

Azure Data Studio include vari meccanismi di estendibilità per personalizzare l'esperienza utente e rendere le personalizzazioni disponibili per l'intera community di utenti.Azure Data Studio has several extensibility mechanisms to customize the user experience and make those customizations available to the entire user community. La piattaforma principale di Azure Data Studio è basata su Visual Studio Code e quindi la maggior parte delle API di estendibilità di Visual Studio Code è disponibile.The core Azure Data Studio platform is built upon Visual Studio Code, so most of the Visual Studio Code extensibility APIs are available. Sono stati inoltre realizzati punti di estendibilità aggiuntivi per le attività specifiche di gestione dei dati.Additionally, we've provided additional extensibility points for data management-specific activities.

I principali punti di estendibilità principali includono:Some of the key extensibility points are:

  • API di estendibilità di Visual Studio CodeVisual Studio Code extensibility APIs
  • Strumenti per la creazione di estensioni di Azure Data StudioAzure Data Studio extension authoring tools
  • Contributi ai panelli della scheda di gestione del dashboardManage Dashboard tab panel contributions
  • Informazioni dettagliate con strumenti di azioneInsights with Actions experiences
  • API di estendibilità Azure Data StudioAzure Data Studio extensibility APIs
  • API di provider di dati personalizzatiCustom Data Provider APIs

API di estendibilità di Visual Studio CodeVisual Studio Code extensibility APIs

La piattaforma principale di Azure Data Studio è basata su Visual Studio Code. Per informazioni dettagliate sulle API di estendibilità di Visual Studio Code, è quindi possibile vedere gli articoli Creazione di estensioni e API di estensione disponibili nel sito Web Visual Studio Code.Because the core Azure Data Studio platform is built upon Visual Studio Code, details about the Visual Studio Code extensibility APIs are found in the Extension Authoring and Extension API documentation on the Visual Studio Code website.

Nota

Le versioni Azure Data Studio sono allineate con una versione recente di VS Code, tuttavia il motore di VS Code incluso potrebbe non avere la versione corrente di VS Code.Azure Data Studio releases are aligned with a recent version of VS Code, however the included VS Code engine may not be the current VS Code release. Ad esempio, a novembre 2020 il motore di VS Code in Azure Data Studio era 1.48, la versione corrente di VS Code è 1.51.For example, in November 2020 the VS Code engine in Azure Data Studio is 1.48 and the current VS Code version is 1.51. Il messaggio di errore "Impossibile installare l'estensione '' perché non è compatibile con VS Code " durante l'installazione di un'estensione è causato da un'estensione con una versione del motore di VS Code successiva definita nel manifesto del pacchetto (package.json).The error message "Unable to install extension '' as it is not compatible with VS Code " when installing an extension is caused by an extension that has a later VS Code engine version defined in the package manifest (package.json). È possibile verificare la versione del motore di VS Code in Azure Data Studio tramite il menu ? in Informazioni.You can verify the VS Code engine version in your Azure Data Studio through the Help menu under About.

Contributi ai panelli della scheda di gestione del dashboardManage Dashboard tab panel contributions

Per informazioni dettagliate, vedere Punti di aggiunta contributi e Variabili di contesto.For details, see Contribution Points and Context Variables.

API di estendibilità Azure Data StudioAzure Data Studio extensibility APIs

Per informazioni dettagliate, vedere API di estendibilità.For details, see Extensibility APIs.

Punti di aggiunta contributiContribution points

In questa sezione vengono illustrati i vari punti di aggiunta di contributi definiti nel manifesto dell'estensione package.json.This section covers the various contribution points that are defined in the package.json extension manifest.

IntelliSense è supportato in azuredatastudio.The IntelliSense is supported inside azuredatastudio.

Punti di aggiunta contributi del dashboardDashboard contribution points

Pubblicare una scheda, un contenitore e/o un widget di informazioni dettagliate nel dashboard.Contribute a tab, container, and/or insight widget to the dashboard.

Dashboard

dashboard.tabs

Dashboard.tabs consente di creare sezioni delle schede nella pagina del dashboard.Dashboard.tabs creates the tab sections inside the dashboard page. Prevede un oggetto o una matrice di oggetti.It expects an object or an array of objects.

"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

Anziché specificare il contenitore di dashboard inline (all'interno di dashboard.tab),Instead of specifying dashboard container inline (inside the dashboard.tab). è possibile registrare i contenitori con dashboard.containers.You can register containers using dashboard.containers. Accetta un oggetto o una matrice di oggetti.It accepts an object or an array of the object.

"dashboard.containers": [
{
    "id": "innerTab1",
    "container": {
        ...
    }
},
{
    "id": "innerTab2",
    "container": {
       ...
    }
}
]

Per fare riferimento al contenitore registrato, specificare l'ID del contenitoreTo refer to registered container, specify the id of the container

"dashboard.tabs": [
{
    ...
    "container": {
        "innerTab1": {             
        }
    }
}
]

dashboard.insights

È possibile registrare informazioni dettagliate con dashboard.insights.You can register insights using dashboard.insights. Questa procedura è simile a quella illustrata in Esercitazione: Creare un widget di informazioni dettagliate personalizzatoThis is similar to Tutorial: Build a custom insight widget

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

Tipi di contenitori di dashboardDashboard container types

Sono attualmente disponibili quattro tipi di contenitori supportati:There are currently four supported container types:

  1. widgets-container

    Contenitore di widget

    Elenco dei widget che verranno visualizzati nel contenitore.The list of widgets that will be displayed in the container. Si tratta di un layout di flusso eIt's a flow layout. accetta l'elenco di widget.It accepts the list of widgets.

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

    contenitore visualizzazione Web

    La visualizzazione Web verrà visualizzata nell'intero contenitore.The webview will be displayed in the entire container. L'ID della visualizzazione Web deve essere identico all'ID della schedaIt expects webview id to be the same is tab ID

    "container": {
        "webview-container": null
    }
    
  3. grid-container

    contenitore griglia

    Elenco dei widget o delle visualizzazioni Web che verranno visualizzati nel layout griglia.The list of widgets or webviews that will be displayed in the grid layout

    "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
        },
    ]
    
  4. nav-section

    Sezione nav

    La sezione di navigazione verrà visualizzata nel contenitoreThe navigation section will be displayed in the container

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

Variabili di contestoContext variables

Per informazioni generali sul contesto in Visual Studio Code e quindi in Azure Data Studio, vedere Estendibilità.For general information about context in Visual Studio Code and subsequently Azure Data Studio, see Extensibility.

In Azure Data Studio, per le estensioni è disponibile un contesto specifico per le connessioni al database.In Azure Data Studio, we have specific context around database connections available for extensions.

DashboardDashboard

Nel dashboard vengono fornite le variabili di contesto seguenti:In dashboard, we provide the following context variables:

variabile di contestocontext variable descriptiondescription
connectionProvider Stringa dell'identificatore relativo al provider della connessione corrente.A string of the identifier for the provider of the current connection. Ex.Ex. connectionProvider == 'MSSQL'.connectionProvider == 'MSSQL'.
serverName Stringa del nome di server della connessione corrente.A string of the server name of the current connection. Ex.Ex. serverName == 'localhost'.serverName == 'localhost'.
databaseName Stringa del nome di database della connessione corrente.A string of the database name of the current connection. Ex.Ex. databaseName == 'master'.databaseName == 'master'.
connection Profilo di connessione completo per la connessione corrente (IConnectionProfile)The full connection profile object for the current connection (IConnectionProfile)
dashboardContext Stringa del contesto della pagina in cui si trova attualmente il dashboard:A string of the context of the page the dashboard is currently on. "database" o "server".Either 'database' or 'server'. Ex.Ex. dashboardContext == 'database'