Skip to content
uma2526 edited this page May 14, 2021 · 32 revisions

ArcGIS Pro 2.8 SDK for .NET

Extend ArcGIS Pro with ArcGIS Pro SDK for .NET. ArcGIS Pro SDK for .NET is based on the add-in and configurations extensibility pattern. Leverage modern .NET features and patterns such as Task Asynchronous Programming (TAP), LINQ, WPF Binding, and MVVM to write integrated 2D/3D add-ins using Pro’s new APIs.


In this topic

Requirements

The requirements for the machine on which you develop your ArcGIS Pro add-ins are listed here.

.NET Framework 4.8:

  • Since ArcGIS Pro 2.5, the minimum .NET target has been 4.8. What does this mean for you and your add-ins?
    • Existing add-ins, already deployed, will work at 2.8 with no change to their forward compatibility.
    • New add-ins created at 2.8 will require the minimum target framework set to 4.8 or they will not compile (this is the default setting in the Pro SDK).
    • Existing add-ins which are recompiled at 2.8 (e.g. because a code change was made) will also require the minimum target framework set to 4.8 or they will not compile. Note: As always, if an existing add-in is changed for any reason, the desktopVersion attribute in its Config.daml file should be changed to reflect the version of Pro it was last compiled against, in this case, now 2.8.

To migrate add-ins previously developed with 4.6.1 to 4.8, please consult technical support article How To: Convert a version 2.0 to 2.4 ArcGIS Pro SDK add-in solution to Pro 2.5 and later versions for more information

Notes

  • Starting at ArcGIS Pro 2.8, when recompiling add-ins made with previous versions, it is recommended that you change the Platform Target in Visual Studio from "Any CPU" to "x64". Starting at ArcGIS Pro 2.8, a number of the ArcGIS Pro extensions are now being built x64 to accommodate the latest CEF upgrade. This means that if you continue to compile previous add-ins with "Any CPU" you will receive compilation warnings similar to:

    "There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "ArcGIS.Desktop.XXX", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project."

    warnings-platform.png

    These warnings can be ignored but we recommend changing your Platform Target in your add-ins and configurations to remove them. Note: this is not an issue for new Add-ins made with the ArcGIS Pro SDK for version 2.8. Starting at version 2.8, the default Platform Target for add-ins has been changed to “x64”. This is also documented in the following KB: https://support.esri.com/en/Technical-Article/000025544.

    Refer to the links below on how to change the build configuration to use x64 platform.

  • Also starting at 2.8, when opening a user control .xaml using the Visual Studio Designer, it can result in the error "Could not load file or assembly 'ArcGIS.Desktop.Framework". The XAML Designer that currently ships with Visual Studio 2017 and 2019 is not capable of loading x64 assemblies. Therefore, starting at 2.8, if a user control references other controls residing in ArcGIS Pro x64-built assemblies, such as "ArcGIS.Desktop.Framework" in this particular case, the Designer can trigger these assembly loading errors. These errors, if they do occur, have no effect on compiling, debugging, and running ArcGIS Pro extensions and can be ignored. Note: simply closing the Designer tab or switching to the XAML view will clear them. XAMLDesignerIssue
    This is also documented in the following KB: https://support.esri.com/en/Technical-Article/000025543.
    Note: The following entry on the Microsoft ‘Developer Community’ support website describes this Visual Studio limitation: XAML Designer does not display x64 User Controls from external projects - Visual Studio Feedback.

ArcGIS Pro

  • ArcGIS Pro 2.8

Supported platforms

  • Windows 10 (Home, Pro, Enterprise) (64 bit)
  • Windows 8.1 (Pro, and Enterprise) (64 bit)

Supported .NET framework

  • Microsoft .NET Framework 4.8 Developer Pack

Supported IDEs

  • Visual Studio 2019 (Professional, Enterprise, and Community Editions)
  • Visual Studio 2017 (Professional, Enterprise, and Community Editions)

Third party assemblies

Newtonsoft Json

  • At 2.8 ArcGIS Pro is using version 12.0.1 of the Newtonsoft Json NuGet. If you require Newtonsoft NuGet in your add-ins it is recommended to use the same version.

CefSharp

  • At 2.8 ArcGIS is using version 89.0.170.0 of CefSharp. Pro includes the CefSharp.dll, CefSharp.Core.dll and CefSharp.Wpf.dll in the "C:\Program Files\ArcGIS\Pro\bin\cef" installation location. To use the CefSharp ChromiumWebBrowser control, consult ChromiumWebBrowser

Please consult technical support article How To: Fix compiler error(s) using CefSharp and the ArcGIS Pro SDK ChromiumWebBrowser Control in an add-in for more information

Note: ArcGIS Pro system requirements

Installing ArcGIS Pro SDK for .NET

ArcGIS Pro SDK for .NET can be downloaded and installed from within Visual Studio.

Read the ProGuide: Installation and Upgrade for detailed installation instructions.

ArcGIS Pro SDK for .NET components

The following table summarizes the functionality of each .vsix file included in the SDK download:

Name File Functionality
ArcGIS Pro SDK for .NET proapp-sdk-templates.vsix A collection of project and item templates to create ArcGIS Pro add-ins
ArcGIS Pro SDK for .NET (Utilities) proapp-sdk-utilities.vsix A collection of utilities to help create ArcGIS Pro add-ins

ArcGIS Pro SDK for .NET templates

Package: proapp-sdk-templates.vsix

ArcGIS Pro SDK for .NET provides the following project and item templates:

C# VB Name
ArcGIS Pro Module Add-in Project template
ArcGIS Pro Managed Configurations Project template
N/A ArcGIS Pro Plugin Project template
N/A ArcGIS Pro CoreHost Application Project template
ArcGIS Pro Backstage Tab
ArcGIS Pro Button
ArcGIS Pro Button Palette
ArcGIS Pro Combo Box
ArcGIS Pro Construction Tool
ArcGIS Pro Custom Control
N/A ArcGIS Pro Custom Item
N/A ArcGIS Pro Custom Project Item
ArcGIS Pro Dockpane
ArcGIS Pro Dockpane with Burger Button
ArcGIS Pro Drop Handler
ArcGIS Pro Embeddable Control
ArcGIS Pro Gallery
ArcGIS Pro Inline-Gallery
ArcGIS Pro Map Pane Impersonation
ArcGIS Pro Map Tool
ArcGIS Pro Menu
ArcGIS Pro Pane
ArcGIS Pro Property Sheet
ArcGIS Pro ProWindow
ArcGIS Pro Split Button

In general, there is a one-to-one correspondence between a framework UI element extensibility point (e.g. button, tool, menu, dockpane, etc) and an item template. Use the relevant item template to add the corresponding extensibility point to your Add-in.

Note: For the following item templates a further description may be useful:

Drop Handler

The ArcGIS Pro Framework supports drag and drop via two virtual functions: OnDragOver and OnDrop. Use the Drop Handler template to add basic implementations of these methods to your add-in to help get you started with drag and drop support for your custom panes and dockpanes.
Excel Drop Handler sample

Embeddable Control

Use the Embeddable Control template to add a pop-up or similar UI to your custom map tools. When a map tool is activated, its associated embeddable control (if it has one) is displayed on-top-of the active map view. When the map tool is de-activated, the embeddable control is hidden. ProGuide: Using Embeddable Controls
Basic Map Tool sample
Map Tool with OverlayControl Sample

Map Pane Impersonation

If you want your custom pane to "use" the map TOC content control (and not a custom content control) then you must "impersonate" the map pane. Run this template to generate the necessary code to implement a custom pane with map pane impersonation.
ProGuide: Map Pane Impersonation
ImpersonateMapPane Sample

ArcGIS Pro SDK for .NET utilities

Package: proapp-sdk-utilities.vsix

ArcGIS Pro SDK for .NET (Utilities) provides the following utilities that extend the Visual Studio environment:

pro-fix-references

Name Description
Pro Fix References utility Fixes broken references in an ArcGIS Pro add-in, core host, configuration, or plug-in projects. Broken references can be caused when you share add-ins with other colleagues or download add-ins where the ArcGIS Pro assembly references point to a different location from where you installed them. Pro Fix References can be run on individual projects or all projects within a solution.
Pro Generate DAML Ids utility Converts all of the ArcGIS Pro Desktop Application Markup Language (DAML) string IDs into static string properties organized by DAML element types (for example, Button, Dockpane, Tool, Condition, and so on). This allows you to use the IntelliSense feature of Visual Studio within your source code file to add IDs, rather than having to manually type DAML string IDs).

Getting started

See ProGuide: Build your first add-in for step-by-step instructions on creating a basic button that appears on the ArcGIS Pro ribbon.

ProSnippets

ProSnippets are ready-made snippets of code you can quickly insert into your ArcGIS Pro add-in. List of available ProSnippets.

ArcGIS Pro API

The ArcGIS Pro APIs are managed .NET assemblies which are installed with each ArcGIS Pro installation. Intermediary assemblies containing .NET metadata or PIAs (Primary Interop Assemblies) are not required.

Add any of the ArcGIS Pro managed assemblies that comprise its API as references directly in your Visual Studio add-in projects

pro-references.png

A complete list of the ArcGIS Pro assemblies in the public API is provided below. Consult the online API Reference for specific details of each assembly:

Core

Core assemblies are located in the {ArcGIS Pro Installation folder}\bin.

Assembly Description
ArcGIS.Core.dll Provides CIM, Geodatabase, Geometry and Utility Network APIs.
ArcGIS.CoreHost.dll Provides Host.Initialize to initialize ArcGIS.Core.dll for stand-alone use.
ArcGIS.Desktop.Framework.dll Provides the application framework to include add-in contracts, DAML support, and base classes. This assembly must be referenced by every add-in.
ESRI.ArcGIS.ItemIndex.dll Provides functionality to create and work with Custom items.

Extensions

Major subsystems within ArcGIS Pro are organized into units called extensions. Extension assemblies are located in the {ArcGIS Pro Installation folder}\bin\Extensions folder in their own individual subfolder. Extension subfolder names are logically named for the unit of functionality they represent, for example, Mapping, Editing, Layout, and so on.

Assembly Description
ArcGIS.Desktop.Catalog.dll Provides access to project content items (map items, layout items, style items, folder items, and so on).
ArcGIS.Desktop.Core.dll Provides functionality to create and manage projects, access to events associated with the current project, and the ability to execute geoprocessing tools.
ArcGIS.Desktop.DataReviewer.dll Provides functionality to establish and manage Reviewer results, sessions, and batch jobs in a project.
ArcGIS.Desktop.Editing.dll Provides access to the editing environment and core editing functionality required for custom edit tool implementations.
ArcGIS.Desktop.Extensions.dll Provides extension methods for other ArcGIS Pro classes. Provides a base class for custom map tools.
ArcGIS.Desktop.Geoprocessing.dll Provides access to geoprocessing history items stored in the project. (Note: Adds a reference to ArcGIS.Desktop.Core.dll to execute geoprocessing tools.)
ArcGIS.Desktop.Layouts.dll Provides functionality for manipulating elements on a layout and exporting to a variety of image formats.
ArcGIS.Desktop.Mapping.dll Provides types to create maps and layers, label features, perform query operations, and visualize them in 2D or 3D. Provides a raster API to create raster layers and customize raster rendering, and an API to manage styles, style items, and symbols.
ArcGIS.Desktop.TaskAssistant.dll Provides the Tasks framework, allowing developers to access, open, close, or export task items.
ArcGIS.Desktop.Workflow.dll Provides functionality to create, configure, and execute Workflow Manager jobs and queries. Provides functionality to retrieve configuration information from the Workflow Manager database.

Extensions with no public API

There are extension assemblies in {ArcGIS Pro Installation folder}\bin\Extensions subfolders) that do not have a public API. They are currently for Esri internal use only.

  • ArcGIS.Desktop.Analyst3D.dll
  • ArcGIS.Desktop.Aviation.dll
  • ArcGIS.Desktop.BusinessAnalyst.dll
  • ArcGIS.Desktop.Charts.dll
  • ArcGIS.Desktop.DataEngineering.dll
  • ArcGIS.Desktop.DataSourcesRaster.dll
  • ArcGIS.Desktop.Defense.dll
  • ArcGIS.Desktop.DefenseMapping.dll
  • ArcGIS.Desktop.Editing.PushPull.dll
  • ArcGIS.Desktop.FullMotionVideo.dll
  • ArcGIS.Desktop.GAWizard.dll
  • ArcGIS.Desktop.GeoProcessing.BDC.dll
  • ArcGIS.Desktop.GeoProcessing.SAModels.dll
  • ArcGIS.Desktop.Geostatistics.dll
  • ArcGIS.Desktop.Indoors.dll
  • ArcGIS.Desktop.Intelligence.dll
  • ArcGIS.Desktop.Intelligence.Configuration.dll
  • ArcGIS.Desktop.KnowledgeGraph.dll
  • ArcGIS.Desktop.LocationReferencing.dll
  • ArcGIS.Desktop.Maritime.dll
  • ArcGIS.Desktop.Metadata.dll
  • ArcGIS.Desktop.NetworkAnalysis.Facility.dll
  • ArcGIS.Desktop.NetworkAnalysis.NetworkDiagrams.dll
  • ArcGIS.Desktop.NetworkAnalysis.Transportation.dll
  • ArcGIS.Desktop.Search.dll
  • ArcGIS.Desktop.Sharing.dll
  • ArcGIS.Desktop.TerritoryDesign.dll
  • ArcGIS.Desktop.Workflow.Client.dll

Note: Static string resource properties and image resources included within the public API assemblies are for Esri internal use only. They are not intended for use in third-party add-ins.

ArcGIS Pro Extensions Nuget

The ArcGIS Pro Extensions NuGet contains all the Pro API assemblies needed to compile your Add-ins and Configurations and offers an alternate way to reference the ArcGIS Pro assemblies in your add-in and configuration over traditional file based references.

The ArcGIS Pro Extensions NuGet will only work with:

  • Visual Studio 2017 update 8 or higher (Professional, Enterprise, and Community Editions)
  • NuGet Package Management format setting in Visual Studio must be PackageReference.
  • As of Pro 2.5, .Net Target Framework must be set to 4.8. This is important if you are adding the Nuget to a pre 2.5 add-in project.

ProGuide: ArcGIS Pro Extensions NuGet

Release notes

ArcGIS Pro 2.8 SDK for .NET

These release notes describe details of the ArcGIS Pro 2.8 SDK for .NET release. Here you will find information about available functionality as well as known issues and limitations.

What's new

The following functionality is available at the ArcGIS Pro 2.8 SDK for .NET release:

1. API Enhancements

Content

  • New support for favorites, and downloading and managing offline maps.

Geodatabase

  • New DDL API for geodatabase schema creation.

Geometry:

  • Enhancements for polygon and polyline geometry builders.

Layout

  • Added support for multipoint graphics.

Map Exploration:

  • Enhancements to the Reports API, including report events. Performance improvements for the TableControl.

.NET Framework 4.8:

  • As with the release of ArcGIS Pro 2.5, the minimum .NET target is now 4.8. What does this mean for you and your add-ins?
    • Existing add-ins, already deployed, will work at 2.8 with no change to their forward compatibility.
    • New add-ins created at 2.8 will require the minimum target framework set to 4.8 or they will not compile (this is the default setting in the Pro SDK).
    • Existing add-ins which are recompiled at 2.8 (e.g. because a code change was made) will also require the minimum target framework set to 4.8 or they will not compile. Note: As always, if an existing add-in is changed for any reason, the desktopVersion attribute in its Config.daml file should be changed to reflect the version of Pro it was last compiled against, in this case, now 2.8.

Notes

  • Starting at ArcGIS Pro 2.8, when recompiling add-ins made with previous versions, it is recommended that you change the Platform Target in Visual Studio from "Any CPU" to "x64". Starting at ArcGIS Pro 2.8, a number of the ArcGIS Pro extensions are now being built x64 to accommodate the latest CEF upgrade. Please refer to the requirements section above for more details.
  • Starting at 2.8, when opening a user control .xaml using the Visual Studio Designer, it can result in the error "Could not load file or assembly 'ArcGIS.Desktop.Framework". The XAML Designer that currently ships with Visual Studio 2017 and 2019 is not capable of loading x64 assemblies. Therefore, starting at 2.8, if a user control references other controls residing in ArcGIS Pro x64-built assemblies, such as "ArcGIS.Desktop.Framework" in this particular case, the Designer can trigger these assembly loading errors. These errors, if they do occur, have no effect on compiling, debugging, and running ArcGIS Pro extensions and can be ignored. Note: simply closing the Designer tab or switching to the XAML view will clear them. Please refer to the requirements section above for more details.

Please consult technical support article How To: Convert a version 2.0 to 2.4 ArcGIS Pro SDK add-in solution to Pro 2.5 and later versions for more information

For a detailed list of changes to the ArcGIS Pro API refer to the What's new for developers at 2.8 topic in the ArcGIS Pro API Reference Guide.

3. SDK Resources

There are many ProConcepts, ProGuide, ProSnippets, and samples to help you get up and running with the new SDK features including:

Updates to the SDK Resources include, but are not limited to:

Previous versions

Resources

You can use the above Pro SDK Icons as the image for your controls on the Pro Ribbon. Code snippet below provides the pack URI to be used in your add-in's config.daml.
<button...largeImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/<ImageNameHere>"/>

The icons below are new at ArcGIS Pro 2.8. To use these icons, download the Icons.zip from this link: ArcGIS Pro SDK Icons

Home

Developing with ArcGIS Pro


Framework

    Add-ins

    Configurations

    Customization

    Styling


Content


CoreHost


DataReviewer


Editing


Geodatabase


Geometry

    Relational Operations


Geoprocessing


Layouts

    Reports


Map Authoring

    CIM

    Graphics

    Scene

    Stream

    Voxel


Map Exploration

    Map Tools


Parcel Fabric


Raster


Sharing


Tasks


Utility Network


Workflow Manager


Reference

Clone this wiki locally