Skip to content

Latest commit

 

History

History
126 lines (88 loc) · 13.1 KB

top-extensions-packages.md

File metadata and controls

126 lines (88 loc) · 13.1 KB

Azure Portal SDK packages

Updating your extension to a newer version of the SDK

External partners can download and install the NuGet packages when they install and use Visual Studio 2015. For more information, see portalfx-extensions-getting-started-procedure.md. The packages that are installed are located in the C:\Program Files (x86)\Microsoft SDKs\PortalSDK\Packages directory.

Updating your NuGet Packages

  • In Visual Studio
  1. Install the latest version of the Portal SDK MSI, as specified in downloads.md.
  2. In Visual Studio open your Solution and select Tools > NuGet Package Manager > Manage NuGet packages for Solution….
  3. Select all Microsoft.Portal.* NuGet packages.
  4. Click Update.
  5. Build and fix any breaking changes, as described in Breaking changes.
  • In CoreXT
  1. Find the latest SDK version number from the SDK downloads document located at /portal-sdk/generated/downloads.md.

  2. Update your package.config to the latest version of the SDK.

  3. Run init.cmd.

    NOTE: Your $(Pkg*) references in your csproj file should automatically update to point at the newest restored NuGet.

  4. Copy over /Content files to get latest *.d.ts and *.pde files.

    NOTE: CoreXT does not copy content files. Typically, internal teams use either a <Target /> or a NuGetContentRestore task to rehydrate the Content files from their CxCache.

  5. Build and fix any breaking changes.

References

The Azure Portal SDK ships framework assemblies, tools, test framework and extension PDE files as NuGet packages. It also provides the capability to ship extensions as NuGet packages. This allows extensions to invoke blades and parts from other extensions at runtime. For more information about sharing extensions as NuGet packages, see portalfx-pde-publish.md.

Configure NuGet package sources for development

In order to download the NuGet packages as part of an extension, developers can choose between CoreXT compatible package sources or consume the packages installed locally by the MSI. Choose a configuration that applies to your extension development context.

Microsoft Internal NuGet Feed

Portal SDK NuGet packages are published to the Microsoft internal NuGet feed located at https://aka.ms/portalfx/nugetfeed. Depending on your internal build system, the configuration of how to consume this feed will vary. For the latest guidance on consuming the feed within your build system, consult your build system's documentation. For those using 1ES systems, see the NuGet in 1ES guide located at https://www.1eswiki.com/wiki/NuGet_in_1ES.

You can also browse the feed in VSTS.

Getting the NuGet packages externally

PortalSDK NuGet packages are only published to Microsoft internal NuGet feeds. If you do not have access to those feeds such as the one mentioned above you will need use those NuGet packages that are included in the Azure Portal SDK. This is the recommended path for third party extension developers.

Installing the Portal SDK MSI will unpack the NuGet packages to a default location of C:\Program Files (x86)\Microsoft SDKs\PortalSDK\packages and will setup a NuGet package source named PortalSDK that points to that location. Any subsequent actions performed in Visual Studio or the NuGet command line will also search the new local PortalSDK feed in program files for Portal-related NuGet packages.

Available Packages

Packages used by extension developers are separated into the following categories.

The following sections describe the various packages by category. All packages are available both in the Portal SDK MSI and through the deep-linked package source. Some packages are shipped as NuGet packages, and others as Node modules. All packages in the following tables are NuGet packages unless they are annotated to be a node module.

Development

After installation, NuGet packages that are used for development can be viewed in the packages.config file or in the NuGet Package Manager tool in Visual Studio. Node modules can be viewed in package.json.

Package Purpose
Microsoft.Portal.Framework Contains framework assemblies required for extension development.
Microsoft.Portal.Security.AadCore Contains AAD module used for auth.
Microsoft.Portal.Tools Contains PDC, build target files (.target) , Definition files and TypeScript 2.3.3 compiler.
Microsoft.Portal.Tools.ContentUnbundler Contains the tool that packages an extension UI into a zip file which can be served by the hosting service.

Publishing in the marketplace

Package Purpose
Microsoft.Azure.Gallery.AzureGalleryUtility Contains tools to package, upload and update gallery items in the Azure Portal marketplace.
Microsoft.Azure.Gallery.Common Common packages used by Microsoft.Azure.Gallery.AzureGalleryUtility

Testing

Package Purpose Document
msportalfx-test (node module) Provides APIs for authoring UI-based test cases with Selenium in TypeScript.
msportalfx-ut (node module) Provides APIs for authoring Unit Tests against extension code in TypeScript. Includes runtime, APIs, test runner support, trx and junit output for CI and code coverage reporting. See top-extensions-unit-test.md for more details.
Microsoft.Portal.TestFramework Provides APIs for writing UI-based test cases with Selenium authored in CSharp. For more information about using the test framework, see top-extensions-csharp-test-framework.md.
Microsoft.Portal.TestFramework.UnitTest The msportalfx-ut node module shipped in a NuGet package for those that cannot consume the internal package source that is located at https://msazure.visualstudio.com/One/Azure%20Portal/_packaging?feed=AzurePortalNpmRegistry&_a=feed, or are on CoreXT or similar IDE's that require offline/disconnected builds. For more information about unit testing, see top-extensions-unit-test.md.

Shared packages

Portal Definition Exports, or PDE's, are extensions that are maintained by teams other than the Ibiza team and your team. These extensions are available for your use. This list of packages are contributed to by extension developers who are exposing functionality from their extension by way of shipping their PDE. The absence of an extension package from the list does not imply that the package does not exist, or does not ship. To verify whether an extension ships a NuGet package, reach out to the respective teams at portalfx-extensions-contacts.md or https://aka.ms/portalfx/uservoice.

Package Purpose Document
Microsoft.Portal.Extensions.KeyVault Blades and parts shared by the KeyVault extension. portalfx-pde-keyvault.md
Microsoft.Portal.Extensions.AAD Blades and parts shared by the AAD extension. portalfx-pde-adrbac.md
Microsoft.Portal.Extensions.Billing Blades and parts shared by the Billing extension. portalfx-pde-billing.md
Microsoft.Portal.Extensions.Hubs Blades and parts shared by the Hubs extension. portalfx-hubsextension-pde.md
Microsoft.Portal.Extensions.Insights Blades and parts shared by the Insights extension. portalfx-pde-azureinsights.md
Microsoft.Portal.Extensions.Monitoring Blades and parts shared by the Monitoring extension. portalfx-pde-monitoring.md

Deprecated packages

The following NuGet packages have been deprecated. Do not use these packages when building new extensions.

Package Purpose
Microsoft.Portal.Azure.Website Sideload your extension instead, as specified in top-extensions-sideloading.md.
Microsoft.Portal.Azure.WebsiteNoAuth Sideload your extension instead, as specified in top-extensions-sideloading.md.
Microsoft.Portal.Framework.Scripts Use Microsoft.Portal.TestFramework.UnitTest instead, as specified in top-extensions-unit-test.md.
Microsoft.Portal.Tools.Etw The recommended practice is to use the Extension Hosting Service as specified in top-extensions-hosting-service.md instead of custom deployment, as specified in top-extensions-custom-deployment.md. If you are self-hosting your extension, then this package provides the EtwRelatedFilesUtility.exe tool and sample configurations.
Microsoft.Portal.TypeMetadata Author typemetadata directly instead of using this package, as specified in portalfx-data-typemetadata.md#non-generated-type-metadata.