Introducción a la extensibilidad de Azure Data StudioAzure Data StudioGetting started with Azure Data StudioAzure Data Studio extensibility

Azure Data StudioAzure Data Studio cuenta con varios mecanismos de extensibilidad para personalizar la experiencia del usuario y poner dichas personalizaciones a disposición de toda la comunidad de usuarios.has several extensibility mechanisms to customize the user experience and make those customizations available to the entire user community. La plataforma Azure Data StudioAzure Data Studio principal se basa en Visual Studio Code, por lo que la mayoría de las API de extensibilidad de Visual Studio Code están disponibles.The core Azure Data StudioAzure Data Studio platform is built upon Visual Studio Code, so most of the Visual Studio Code extensibility APIs are available. Además, hemos facilitado otros puntos de extensibilidad para actividades específicas de la administración de datos.Additionally, we've provided additional extensibility points for data management-specific activities.

Algunos de los principales puntos de extensibilidad son:Some of the key extensibility points are:

  • API de extensibilidad de Visual Studio CodeVisual Studio Code extensibility APIs
  • Herramientas de creación de extensiones de Azure Data StudioAzure Data Studio extension authoring tools
  • Administración de contribuciones del panel de pestañas PanelManage Dashboard tab panel contributions
  • Información con experiencias de accionesInsights with Actions experiences
  • API de extensibilidad de Azure Data StudioAzure Data Studio extensibility APIs
  • API del proveedor de datos personalizadoCustom Data Provider APIs

API de extensibilidad de Visual Studio CodeVisual Studio Code extensibility APIs

Dado que la plataforma Azure Data StudioAzure Data Studio principal se basa en Visual Studio Code, los detalles sobre las API de extensibilidad de Visual Studio Code se encuentran en la documentación sobre creación de extensiones y la API de extensión en el sitio web de Visual Studio Code.Because the core Azure Data StudioAzure 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.

Administración de contribuciones del panel de pestañas PanelManage Dashboard tab panel contributions

Para obtener más información, consulte Puntos de contribución y Variables de contexto.For details, see Contribution Points and Context Variables.

API de extensibilidad de Azure Data StudioAzure Data Studio extensibility APIs

Para obtener más información, consulte API de extensibilidad.For details, see Extensibility APIs.

Puntos de contribuciónContribution points

En esta sección se tratan los distintos puntos de contribución que se definen en el manifiesto de la extensión package.json.This section covers the various contribution points that are defined in the package.json extension manifest.

IntelliSense se admite en azuredatastudio.The IntelliSense is supported inside azuredatastudio.

Panel de contribucionesContributes dashboard

Pestaña Contribuir, contenedor, widget de información en el panel.Contribute tab, container, insight widget to the dashboard.

Panel

dashboard.tabs

Dashboard.tabs crea las secciones de pestañas en la página del panel.Dashboard.tabs creates the tab sections inside the dashboard page. Espera un objeto o una matriz de objetos.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

En lugar de especificar el contenedor del panel insertado (en dashboard.tab),Instead of specifying dashboard container inline (inside the dashboard.tab). puede registrar contenedores con dashboard.containers.You can register containers using dashboard.containers. Acepta un objeto o una matriz del objeto.It accepts an object or an array of the object.

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

Para hacer referencia al contenedor registrado, especifique el identificador del contenedor.To refer to registered container, specify the id of the container

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

dashboard.insights

Puede registrar información con dashboard.insights.You can register insights using dashboard.insights. Es similar a lo que se indica en Tutorial: Compilación de un widget de información personalizadaThis 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"
}

Tipos de contenedor del panelDashboard container types

Actualmente hay cuatro tipos de contenedor admitidos:There are currently four supported container types:

  1. widgets-container

    Contenedor de widgets

    Lista de los widgets que se mostrarán en el contenedor.The list of widgets that will be displayed in the container. Es un diseño de flujo.It's a flow layout. Acepta la lista de widgets.It accepts the list of widgets.

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

    Contenedor de vistas web

    La vista web se mostrará en todo el contenedor.The webview will be displayed in the entire container. Espera que el identificador de vista web sea igual al identificador de pestaña.It expects webview id to be the same is tab ID

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

    Contenedor de cuadrícula

    Lista de los widgets o vistas web que se mostrarán en el contenedorThe 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

    Sección de navegación

    La sección de navegación se mostrará en el contenedorThe 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": {
                    ...
                }
            }
        ]
    }
    

Variables de contextoContext variables

Para obtener información general sobre el contexto en Visual Studio Code y posteriormente en Azure Data Studio, consulte el artículo sobre extensibilidad.For general information about context in Visual Studio Code and subsequently Azure Data Studio, see Extensibility.

En Azure Data Studio, tenemos un contexto específico en torno a las conexiones de base de datos disponibles para las extensiones.In Azure Data Studio, we have specific context around database connections available for extensions.

PanelDashboard

En el panel, se proporcionan las siguientes variables de contexto:In dashboard, we provide the following context variables:

variable de contextocontext variable descriptiondescription
connectionProvider Cadena del identificador del proveedor de la conexión actual.A string of the identifier for the provider of the current connection. Por ejemplo,Ex. connectionProvider == 'MSSQL'.connectionProvider == 'MSSQL'.
serverName Cadena del nombre de servidor de la conexión actual.A string of the server name of the current connection. Por ejemplo,Ex. serverName == 'localhost'.serverName == 'localhost'.
databaseName Cadena del nombre de base de datos de la conexión actual.A string of the database name of the current connection. Por ejemplo,Ex. databaseName == 'master'.databaseName == 'master'.
connection Objeto de perfil de conexión completo de la conexión actual (IConnectionProfile).The full connection profile object for the current connection (IConnectionProfile)
dashboardContext Una cadena del contexto de la página del panel está actualmente activada.A string of the context of the page of the dashboard is currently on. "database" o "server".Either 'database' or 'server'. Por ejemplo,Ex. dashboardContext == 'database'