Ekstensibilitas Azure Data Studio

Azure Data Studio memiliki beberapa mekanisme ekstensibilitas untuk menyesuaikan pengalaman pengguna dan membuat penyesuaian tersebut tersedia untuk seluruh komunitas pengguna. Platform Inti Azure Data Studio dibangun di atas Visual Studio Code, sehingga sebagian besar API ekstensibilitas Visual Studio Code tersedia. Selain itu, kami telah menyediakan titik ekstensibilitas tambahan untuk aktivitas khusus manajemen data.

Beberapa poin ekstensibilitas utama adalah:

  • API ekstensibilitas Visual Studio Code
  • Alat penulisan ekstensi Azure Data Studio
  • Mengelola kontribusi panel tab Dasbor
  • Wawasan dengan pengalaman Tindakan
  • API ekstensibilitas Azure Data Studio
  • API Penyedia Data Kustom

API ekstensibilitas Visual Studio Code

Karena platform Inti Azure Data Studio dibangun di atas Visual Studio Code, detail tentang API ekstensibilitas Visual Studio Code ditemukan dalam dokumentasi Extension Authoring dan Extension API di situs web Visual Studio Code.

Catatan

Rilis Azure Data Studio diselaraskan dengan versi visual Studio Code terbaru, namun mesin VISUAL Code yang disertakan mungkin bukan rilis Visual Studio Code saat ini. Misalnya, pada bulan November 2020 mesin VS Code di Azure Data Studio adalah 1.48 dan versi VISUAL Code saat ini adalah 1.51. Pesan kesalahan "Tidak dapat menginstal ekstensi '<nama' karena tidak kompatibel dengan versi> Visual Studio Code<" saat menginstal ekstensi disebabkan oleh ekstensi yang memiliki versi mesin Visual Studio Code yang ditentukan dalam manifes paket (package.json>). Anda dapat memverifikasi versi mesin Visual Studio Code di Azure Data Studio Anda melalui menu Bantuan di bawah Tentang.

Mengelola kontribusi panel tab Dasbor

Untuk detailnya, lihat Titik Kontribusi dan Variabel Konteks.

API ekstensibilitas Azure Data Studio

Untuk detailnya, lihat API Ekstensibilitas.

Titik kontribusi

Bagian ini mencakup berbagai titik kontribusi yang ditentukan dalam manifes ekstensi package.json.

IntelliSense didukung di dalam azuredatastudio.

Titik kontribusi dasbor

Kontribusikan tab, kontainer, dan/atau widget wawasan ke dasbor.

Dashboard

dashboard.tabs

Dashboard.tabs membuat bagian tab di dalam halaman dasbor. Ini mengharapkan objek atau array objek.

"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

Alih-alih menentukan kontainer dasbor sebaris (di dalam dasbor.tab). Anda dapat mendaftarkan kontainer menggunakan dashboard.containers. Ini menerima objek atau array objek.

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

Untuk merujuk ke kontainer terdaftar, tentukan id kontainer

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

dashboard.insights

Anda dapat mendaftarkan wawasan menggunakan dashboard.insights. Ini mirip dengan Tutorial: Membangun widget wawasan kustom

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

Jenis kontainer dasbor

Saat ini ada empat jenis kontainer yang didukung:

  1. widgets-container

    Widgets container

    Daftar widget yang akan ditampilkan dalam kontainer. Ini adalah tata letak alur. Ini menerima daftar widget.

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

    webview container

    Tampilan web akan ditampilkan di seluruh kontainer. Ini mengharapkan id tampilan web menjadi sama adalah ID tab

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

    grid container

    Daftar widget atau tampilan web yang akan ditampilkan dalam tata letak kisi

     "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

    nav section

    Bagian navigasi akan ditampilkan dalam kontainer

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

Variabel konteks

Untuk informasi umum tentang konteks di Visual Studio Code dan kemudian Azure Data Studio, lihat Ekstensibilitas.

Di Azure Data Studio, kami memiliki konteks khusus sekeliling koneksi database yang tersedia untuk ekstensi.

Dasbor

Di dasbor, kami menyediakan variabel konteks berikut:

variabel konteks description
connectionProvider String pengidentifikasi untuk penyedia koneksi saat ini. Mis. connectionProvider == 'MSSQL'.
serverName String nama server koneksi saat ini. Mis. serverName == 'localhost'.
databaseName String nama database koneksi saat ini. Mis. databaseName == 'master'.
connection Objek profil koneksi lengkap untuk koneksi saat ini (I Koneksi ionProfile)
dashboardContext String konteks halaman tempat dasbor saat ini aktif. Baik 'database' atau 'server'. Mis. dashboardContext == 'database'