SlideShare a Scribd company logo
1 of 45
Download to read offline
Azure Data Studio
Extension Development
Drew Skwiers-Koballa
Hi
Drew Skwiers-Koballa
@sysadmindrew
www.github.com/dzsquared
Developer in the Microsoft
ecosystem for 8 years, including
SQL Server
Introverted but friendly
Agenda
• What is Azure Data Studio
• Why Develop Extensions
• Extension Development Framework (demo)
• Publishing an extension
• Extension Type examples
• Extension Functionality examples
Platinum Sponsor:
Gold Sponsors:
Thank you Sponsors!
Visit the Sponsor Booths
Lots of Raffle Prizes!
Get your parking paid via
Sponsor Bingo
PASSMN – News/Info
Sponsors:
• Thanks to all our sponsors of 2018!
• We need Sponsors for Nov/Dec 2018 and 2019!
• Special thanks to our annual sponsor:
Board Member Elections in November/December:
• Your chance to help out the MN SQL community!
Azure Data Studio
Formerly Known as SQL Operations Studio
Multi-platform
SQL/data platform tool
Based on VS Code
Write Queries
Basic Server Management
What Does It Do What Doesn’t It Do
Server and Database Dashboards
Query Editing
Object Explorer
Export Results to csv/xlsx/json
Query Plan
Data Notebooks
SQL Agent
SQL Profiler
Integrated Terminal
Extension API
Table Designer
Object Properties Pane
Results to File/Text
Query Stats
Client Statistics
Always On
Always Encrypted
Maintenance Plans
Data Tuning Advisor
Error Log Viewer
Blog by Vicky Harp on
capabilities as of
September 2018:
https://cloudblogs.micro
soft.com/sqlserver/2018/
09/25/azure-data-
studio-for-sql-server/
Is Azure Data Studio Right For You?
How to Find Out
• Read capability summaries
• Watch demo videos
• Ask someone on your team to
try it out
• Test it
Friendly Reminders
• Both ADS and SSMS are free
• The most recent version of
ADS (v1.0) and SSMS (v17/v18
preview) work with most
versions of SQL Server
• Ola Hallengren’s scripts work
in both
Why Develop Extensions?
Do you have an enterprise workflow?
Do you want to create a shortcut?
Do you want to share something with the SQL
community?
Do you like branching out, but not too far out?
What Does It Take?
• Just about any computer
• Willingness to learn:
• A little Git
• A basic to intermediate understanding of Typescript
• 1 to 20+ hours
Let’s Build an Extension
https://github.com/dzsquared/AzureDataStudio_ExtensionDevelopment
Install Prerequisites
• Azure Data Studio
• VS Code
• SQL Operations Studio
Debugger extension for VS
Code
• Git
• NodeJS
Checking Installs
Install Prerequisites
• Typescript
• Yeoman Extension Generator
• VS Code Extension Manager
All 3 can be installed in VS Code terminal through npm
(Node Package Manager)
Yo
• For this sample, leave the Typescript Extension selection
• Enter a name, identifier, description, and your publishing name for
the extension
• Decline stricter checking and linting
• Select the initialization of a Git repository
yo sqlops
Activation Events – package.json
onCommand
workspaceContains
onFileSystem
onView
* (only when necessary)
Contribution Points – package.json
Commands
...
Configuration
Menu
Keybindings
Themes
Snippets
Dashboard
Container
Initial Git Commit
• Open the folder for your
extension in VS Code
• Stage and Commit all changes
Optional:
• Create a repository on GitHub
without initializing
• Run command to add Git
remote in VS Code
Test Extension
Open .vscode/launch.json
Change
“runtimeExecutable”: “sqlops”
to
“runtimeExecutable”:
”azuredatastudio”
Test Extension
Select Start Debugging from
the Debug menu
A special Extension Development
instance of ADS opens
Test the extension from the
command pallette (ctrl+shift+P)
Edit The Extension
Activation events: when the
extension is started
Contribution points:
additions to the application
VS Code APIs + Azure Data
Studio APIs
Available APIs – VS Code
Messages
Language
Tasks
Text Editors
Terminal
Status Bar
Files/Workspace
Webview
Available APIs – Azure Data Studio
Connection management
Object Explorer
Server Info
Object Metadata
Query Manipulation
SQL Agent
Backups
XEvents
Proposed:
Dashboard containers
Wizard pages
Background operations
Using Proposed APIs
Add typings folder to src folder
Add sqlops.proposed.d.ts file to folder
Package to .vsix
Update README.md
Run vsce package from terminal
Publish Your Extension
Publish
Project hosted publicly or has an
available download page
Fork the release/extensions tree
of Azure Data Studio
Publish
Add your extension to
extensions/extensionsGallery.json
Commit changes and submit a
Pull Request
Extension Types
Keymap
An extension that ties keystrokes to commands
Dashboard/Insight
Packaged visualizations for database or server dashboards
Color Themes
Snippets
Packaged code with placeholder tab stops
Snippets can be defined per user or by an extension
Functionality Examples
Full Webview
Wizard UI
Multi-step window
sequence to guide
user through decisions
Internet Connectivity
HTTP request responses dropped to new query editor
File Access
File access provided through VS Code APIs
Additional Dashboard Tab
Recap
Developing Extensions for Azure Data Studio
Additional capabilities added regularly
Opportunity to improve the toolset we have available
for the data platform
Exciting time to dive in!
Any Questions?
SQLSaturday #796 – After Party
There will be drinks and appetizers as well as free game
cards and bowling!
Hang out with some new friends you’ve made.
Location: 4th Floor of Mall of America
Time: 6:30PM – 10PM
Join the brightest data professionals focused on the
Microsoft Data Platform!
November 5th Through November 9th
• Pre-Conference Sessions – Monday/Tuesday
• Conference – Wednesday through Friday

More Related Content

What's hot

Azure Data Factory Data Flow
Azure Data Factory Data FlowAzure Data Factory Data Flow
Azure Data Factory Data FlowMark Kromer
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
Deploying Azure DevOps using Terraform
Deploying Azure DevOps using TerraformDeploying Azure DevOps using Terraform
Deploying Azure DevOps using TerraformAdin Ermie
 
ClickHouse Introduction, by Alexander Zaitsev, Altinity CTO
ClickHouse Introduction, by Alexander Zaitsev, Altinity CTOClickHouse Introduction, by Alexander Zaitsev, Altinity CTO
ClickHouse Introduction, by Alexander Zaitsev, Altinity CTOAltinity Ltd
 
MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks EDB
 
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017Amazon Web Services
 
DevOps for Databricks
DevOps for DatabricksDevOps for Databricks
DevOps for DatabricksDatabricks
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to CloudMarcus Vinicius Miguel Pedro
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes mattersPlatform9
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...Simplilearn
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQLRTigger
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overviewJames Serra
 
Migration to Oracle Multitenant
Migration to Oracle MultitenantMigration to Oracle Multitenant
Migration to Oracle MultitenantJitendra Singh
 
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration  AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration Amazon Web Services
 
High Availability and Disaster Recovery
High Availability and Disaster RecoveryHigh Availability and Disaster Recovery
High Availability and Disaster RecoveryAkelios
 

What's hot (20)

Terraform on Azure
Terraform on AzureTerraform on Azure
Terraform on Azure
 
Azure Data Factory Data Flow
Azure Data Factory Data FlowAzure Data Factory Data Flow
Azure Data Factory Data Flow
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Azure Cloud PPT
Azure Cloud PPTAzure Cloud PPT
Azure Cloud PPT
 
Deploying Azure DevOps using Terraform
Deploying Azure DevOps using TerraformDeploying Azure DevOps using Terraform
Deploying Azure DevOps using Terraform
 
Spark
SparkSpark
Spark
 
ClickHouse Introduction, by Alexander Zaitsev, Altinity CTO
ClickHouse Introduction, by Alexander Zaitsev, Altinity CTOClickHouse Introduction, by Alexander Zaitsev, Altinity CTO
ClickHouse Introduction, by Alexander Zaitsev, Altinity CTO
 
Introduction to Amazon Redshift
Introduction to Amazon RedshiftIntroduction to Amazon Redshift
Introduction to Amazon Redshift
 
MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks
 
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017How to build a data lake with aws glue data catalog (ABD213-R)  re:Invent 2017
How to build a data lake with aws glue data catalog (ABD213-R) re:Invent 2017
 
DevOps for Databricks
DevOps for DatabricksDevOps for Databricks
DevOps for Databricks
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQL
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overview
 
Migration to Oracle Multitenant
Migration to Oracle MultitenantMigration to Oracle Multitenant
Migration to Oracle Multitenant
 
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration  AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
AWS Webcast - Amazon RDS for Oracle: Best Practices and Migration
 
High Availability and Disaster Recovery
High Availability and Disaster RecoveryHigh Availability and Disaster Recovery
High Availability and Disaster Recovery
 
Azure Cosmos DB
Azure Cosmos DBAzure Cosmos DB
Azure Cosmos DB
 

Similar to Azure Data Studio Extension Development

Azure DevOps for Developers
Azure DevOps for DevelopersAzure DevOps for Developers
Azure DevOps for DevelopersSarah Dutkiewicz
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...WSPDC & FEDSPUG
 
Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Dave Bost
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flowVincent Biret
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsBIWUG
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Janusz Nowak
 
Azure DevOps for the Data Professional
Azure DevOps for the Data ProfessionalAzure DevOps for the Data Professional
Azure DevOps for the Data ProfessionalSarah Dutkiewicz
 
WPF Unleashed: Building Application with Visual Studio 2008 SP1
WPF Unleashed: Building Application with Visual Studio 2008 SP1WPF Unleashed: Building Application with Visual Studio 2008 SP1
WPF Unleashed: Building Application with Visual Studio 2008 SP1Dave Bost
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent Biret
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent Biret
 
Real Life Azure Functions Architecture
Real Life Azure Functions ArchitectureReal Life Azure Functions Architecture
Real Life Azure Functions ArchitectureNullOps
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamBrian Benz
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowVincent Biret
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersSarah Dutkiewicz
 
Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarCambay Digital
 
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys  How to Build a Successful Microsoft DevOps Including the DataDevOps and Decoys  How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the DataKellyn Pot'Vin-Gorman
 

Similar to Azure Data Studio Extension Development (20)

Azure DevOps for Developers
Azure DevOps for DevelopersAzure DevOps for Developers
Azure DevOps for Developers
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
 
Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Building Applications for SQL Server 2008
Building Applications for SQL Server 2008
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure Functions
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
Azure DevOps for the Data Professional
Azure DevOps for the Data ProfessionalAzure DevOps for the Data Professional
Azure DevOps for the Data Professional
 
WPF Unleashed: Building Application with Visual Studio 2008 SP1
WPF Unleashed: Building Application with Visual Studio 2008 SP1WPF Unleashed: Building Application with Visual Studio 2008 SP1
WPF Unleashed: Building Application with Visual Studio 2008 SP1
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Vs2005p
Vs2005pVs2005p
Vs2005p
 
Real Life Azure Functions Architecture
Real Life Azure Functions ArchitectureReal Life Azure Functions Architecture
Real Life Azure Functions Architecture
 
Sky High With Azure
Sky High With AzureSky High With Azure
Sky High With Azure
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flow
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
 
Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices Webinar
 
Vsts intro
Vsts introVsts intro
Vsts intro
 
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys  How to Build a Successful Microsoft DevOps Including the DataDevOps and Decoys  How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Recently uploaded (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Azure Data Studio Extension Development

  • 1. Azure Data Studio Extension Development Drew Skwiers-Koballa
  • 2. Hi Drew Skwiers-Koballa @sysadmindrew www.github.com/dzsquared Developer in the Microsoft ecosystem for 8 years, including SQL Server Introverted but friendly
  • 3. Agenda • What is Azure Data Studio • Why Develop Extensions • Extension Development Framework (demo) • Publishing an extension • Extension Type examples • Extension Functionality examples
  • 4. Platinum Sponsor: Gold Sponsors: Thank you Sponsors! Visit the Sponsor Booths Lots of Raffle Prizes! Get your parking paid via Sponsor Bingo
  • 5. PASSMN – News/Info Sponsors: • Thanks to all our sponsors of 2018! • We need Sponsors for Nov/Dec 2018 and 2019! • Special thanks to our annual sponsor: Board Member Elections in November/December: • Your chance to help out the MN SQL community!
  • 7. Formerly Known as SQL Operations Studio Multi-platform SQL/data platform tool Based on VS Code Write Queries Basic Server Management
  • 8. What Does It Do What Doesn’t It Do Server and Database Dashboards Query Editing Object Explorer Export Results to csv/xlsx/json Query Plan Data Notebooks SQL Agent SQL Profiler Integrated Terminal Extension API Table Designer Object Properties Pane Results to File/Text Query Stats Client Statistics Always On Always Encrypted Maintenance Plans Data Tuning Advisor Error Log Viewer Blog by Vicky Harp on capabilities as of September 2018: https://cloudblogs.micro soft.com/sqlserver/2018/ 09/25/azure-data- studio-for-sql-server/
  • 9. Is Azure Data Studio Right For You? How to Find Out • Read capability summaries • Watch demo videos • Ask someone on your team to try it out • Test it Friendly Reminders • Both ADS and SSMS are free • The most recent version of ADS (v1.0) and SSMS (v17/v18 preview) work with most versions of SQL Server • Ola Hallengren’s scripts work in both
  • 11. Do you have an enterprise workflow? Do you want to create a shortcut? Do you want to share something with the SQL community? Do you like branching out, but not too far out?
  • 12. What Does It Take? • Just about any computer • Willingness to learn: • A little Git • A basic to intermediate understanding of Typescript • 1 to 20+ hours
  • 13. Let’s Build an Extension https://github.com/dzsquared/AzureDataStudio_ExtensionDevelopment
  • 14. Install Prerequisites • Azure Data Studio • VS Code • SQL Operations Studio Debugger extension for VS Code • Git • NodeJS Checking Installs
  • 15. Install Prerequisites • Typescript • Yeoman Extension Generator • VS Code Extension Manager All 3 can be installed in VS Code terminal through npm (Node Package Manager)
  • 16. Yo • For this sample, leave the Typescript Extension selection • Enter a name, identifier, description, and your publishing name for the extension • Decline stricter checking and linting • Select the initialization of a Git repository yo sqlops
  • 17. Activation Events – package.json onCommand workspaceContains onFileSystem onView * (only when necessary)
  • 18. Contribution Points – package.json Commands ... Configuration Menu Keybindings Themes Snippets Dashboard Container
  • 19. Initial Git Commit • Open the folder for your extension in VS Code • Stage and Commit all changes Optional: • Create a repository on GitHub without initializing • Run command to add Git remote in VS Code
  • 20. Test Extension Open .vscode/launch.json Change “runtimeExecutable”: “sqlops” to “runtimeExecutable”: ”azuredatastudio”
  • 21. Test Extension Select Start Debugging from the Debug menu A special Extension Development instance of ADS opens Test the extension from the command pallette (ctrl+shift+P)
  • 22. Edit The Extension Activation events: when the extension is started Contribution points: additions to the application VS Code APIs + Azure Data Studio APIs
  • 23. Available APIs – VS Code Messages Language Tasks Text Editors Terminal Status Bar Files/Workspace Webview
  • 24. Available APIs – Azure Data Studio Connection management Object Explorer Server Info Object Metadata Query Manipulation SQL Agent Backups XEvents Proposed: Dashboard containers Wizard pages Background operations
  • 25. Using Proposed APIs Add typings folder to src folder Add sqlops.proposed.d.ts file to folder
  • 26. Package to .vsix Update README.md Run vsce package from terminal
  • 28. Publish Project hosted publicly or has an available download page Fork the release/extensions tree of Azure Data Studio
  • 29. Publish Add your extension to extensions/extensionsGallery.json Commit changes and submit a Pull Request
  • 31. Keymap An extension that ties keystrokes to commands
  • 32. Dashboard/Insight Packaged visualizations for database or server dashboards
  • 34. Snippets Packaged code with placeholder tab stops Snippets can be defined per user or by an extension
  • 37. Wizard UI Multi-step window sequence to guide user through decisions
  • 38. Internet Connectivity HTTP request responses dropped to new query editor
  • 39. File Access File access provided through VS Code APIs
  • 41. Recap
  • 42. Developing Extensions for Azure Data Studio Additional capabilities added regularly Opportunity to improve the toolset we have available for the data platform Exciting time to dive in!
  • 44. SQLSaturday #796 – After Party There will be drinks and appetizers as well as free game cards and bowling! Hang out with some new friends you’ve made. Location: 4th Floor of Mall of America Time: 6:30PM – 10PM
  • 45. Join the brightest data professionals focused on the Microsoft Data Platform! November 5th Through November 9th • Pre-Conference Sessions – Monday/Tuesday • Conference – Wednesday through Friday