Azure portal extension development documentation
This is the home page for all documentation related to onboarding, designing, developing, operating, and anything else to do with owning an Azure portal extension.
Couldn't find what you needed? Ask about the docs on StackOverflow.
Onboarding a new extension
Kickoff the onboarding experience by sending a mail to Azure Onboarding Team.
Azure portal architecture
Learn how the framework is structured and how it is designed to run in multiple clouds / environments.
Design guide
Design patterns provide solutions for common Azure scenarios. By leveraging these patterns, Azure teams will accelerate extension development and provide users with a familiar experience so that users can easily adopt new Azure services. The design guide covers design toolkits, style guidance, common page layouts and the resource management pattern.
Development guide
Getting started
Azure portal extension development is supported on Windows Server 2012 R2, and Windows 10.
Ask an SDK setup question on StackOverflow
Samples
Samples show how to do many common development tasks.
Blades
The primary UI building block is a called a blade. A blade is like a page. It generally takes up the full screen, has a presence in the portal breadcrumb, and has an 'X' button to close it.
Ask a question about blades on StackOverflow
Parts
If you want your experience to have a presence on Azure dashboards then you will want to build parts (a.k.a. tiles).
Ask a question about parts on StackOverflow
Building UI with HTML templates and Fx controls
Any template based UI in the portal (e.g. template blades or template parts can make use of a rich controls library maintained by the Ibiza team.
Ask a controls related question on StackOverflow
Styling and theming
When using HTML and framework controls you have some control over styling. These documents walk through the relevant topics.
Forms
Many experiences require the user to enter data into a form. The Ibiza controls library provides support for forms. It also provides a TypeScript based section model that lets you build your form in code without expressing all the fields in an html template.
Ask a forms related question on StackOverflow
Common scenarios and integration points
Ask about browse integration on StackOverflow
Ask about create scenarios on StackOverflow
Other UI concepts
Loading and managing data
Because your extension is Web code, you can make AJAX calls to various services to load data into your UI. The framework provides a data library you can use to manage this data.
Ask about data management on StackOverflow
Advanced development topics
Debugging
Performance
Testing
The Ibiza team provides limited testing support. Due to resource constraints the C# and Node.js frameworks are open source, so that partners can unblock themselves if the Ibiza team cannot make requested improvements as quickly as you might expect.
Ask a test-related question on StackOverflow
Telemetry and alerting
The Ibiza team collects standard telemetry for generic actions like blade opening and command execution. We also collect performance, reliability, and user feedback information that facilitates the operation of your extension. You can also write your own events by using the telemetry system. Ibiza supports alerting for common operations scenarios.
Ask about telemetry on StackOverflow
Ask about performance and reliability on StackOverflow
Experimentation and flighting
It is common for teams to want to experiment with new capabilities. We offer framework features that make this possible.
Localization and globalization
The Azure portal supports multiple languages and locales. You will need to localize your content.
Ask about localization / globalization on StackOverflow
Accessibility
The Azure Portal strives to meet high accessibility standards to ensure the product is accessible to to users of all levels of ability. There is regular testing and a process with SLAs for getting issues addressed quickly.
Ask about accessibility on StackOverflow
Deploying your extension
Learn how to deploy your extension to the various clouds and environments.
-
Extension registration, environments, clouds and Ibiza team SLAs
-
Moving an extension from private preview to public preview to GA
Ask a deployment question on Stackoverflow
Deployment using the Extension Hosting Service
The Ibiza team provides and operates a common Extension Hosting Service that makes it easy to get your bits into a globally distributed system without having to manage your own infrastructure.
-
Registring your extension with the Extension Hosting Service
-
Deploying your extension using Express V2 and the Extension Hosting Service
-
SLA for registering an extension with the Extension Hosting Service
Custom extension deployment infrastructure
You should strive to use the Extension Hosting Service. If for some reason this is not possible then learn how to build a custom extension deployment infrastructure.
Legacy features
These features are supported, but have had no recent investment. No additional investment is planned. There are modern capabilities that should be used instead if you are developing new features.
Marketplace/Gallery developer resources
This is our new index which contains our refreshed docs. If you do not like our new index/docs, you can find the old index here.