Extend ArcGIS Pro with ArcGIS Pro SDK for .NET. ArcGIS Pro SDK for .NET is based on the add-in extensibility pattern (first introduced at 10.0). 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.
###Table of Contents
####Developing with ArcGIS Pro
- Requirements
- Download
- Installing ArcGIS Pro SDK for .NET
- Upgrading from ArcGIS Pro 1.1 SDK for .NET (Beta)
- Install from within Visual Studio
- Install from My Esri download
- Uninstalling ArcGIS Pro SDK for .NET
- ArcGIS Pro SDK for .NET components
- Getting started
- ProSnippets
- ArcGIS Pro API
- Release notes
- ArcGIS Pro 1.1 SDK for .NET
- Resources
####Add-in fundamentals
- Pro Guide: Your first add-in
- ProConcept: Localization
- ProGuide: Digitally signed add-ins
- ProGuide: Content and image resources
####Framework
Customization
- ProGuide: Ribbon, tabs, and groups
- ProGuide: Buttons
- ProGuide: Label controls
- ProGuide: Check boxes
- ProGuide: Edit boxes
- ProGuide: Combo boxes
- ProGuide: Palettes and Split buttons
- ProGuide: Galleries
- ProGuide: Dockpanes
- ProGuide: Code your own states and conditions
- ProGuide: ArcGIS Pro Styles
###Content
###CoreHost
###DataReviewer
###Editing
###Geodatabase
###Geometry
###Geoprocessing
###Layouts
###Map Authoring
###Map Exploration
###Sharing
###Tasks
###Workflow Manager
##Requirements The requirements for the machine on which you develop your ArcGIS Pro add-ins are listed here.
####ArcGIS Pro
- ArcGIS Pro 1.1
####Supported platforms
- Windows 8.1 Basic, Professional, and Enterprise (64 bit [EM64T])
- Windows 8 Basic, Professional, and Enterprise (64 bit [EM64T])
- Windows 7 SP1 Ultimate, Enterprise, Professional, and Home Premium (64 bit [EM64T])
####Supported .NET framework
- 4.5.2
- 4.5.1
- 4.5
####Supported IDEs
- Visual Studio 2015 (Professional, Enterprise, and Community Editions)
- Visual Studio 2013 (Professional, Premium, Ultimate, and Community Editions)
##Download
ArcGIS Pro SDK for .NET can be downloaded and installed using either one of the following options:
- Download and install from within Visual Studio
- Download from MyEsri.com (Visual Studio 2013 only)
Read the Installing ArcGIS Pro SDK for .NET section below for more information.
##Installing ArcGIS Pro SDK for .NET
ArcGIS Pro SDK for .NET templates and utilities are available as Visual Studio extensions (.vsix files) or as a Windows Installer (.msi file) program. You do not need administrative access or elevated user permissions to install ArcGIS Pro SDK for .NET. It is recommended that you uninstall the Beta version of ArcGIS Pro SDK for .NET from within Visual Studio before installing ArcGIS Pro 1.1 SDK for .NET. See FAQ for instructions.
Choose either one of the following installation mechanisms:
###Upgrading from ArcGIS Pro 1.1 SDK for .NET Beta
It is recommended that you uninstall the Beta version of ArcGIS Pro SDK for .NET from within Visual Studio before installing ArcGIS Pro 1.1 SDK for .NET. See FAQ for instructions.
To install ArcGIS Pro SDK for .NET from within Visual Studio, complete the following steps:
- Open Visual Studio.
- From the Tools menu, choose Extensions and Updates.
- Expand the Online folder on the left and choose Visual Studio Gallery.
- Type ArcGIS Pro SDK in the search box in the upper right corner of the Extensions and Updates dialog box. Among the search results found, the items you will need are ArcGIS Pro SDK for .NET and ArcGIS Pro SDK for .NET (Utilities) as shown in the following screen shot:
- Choose the ArcGIS Pro SDK for .NET package and click the Download button.
- The Download and Install dialog box for ArcGIS Pro SDK for .NET will be displayed. If you're satisfied with the license agreement, click the Install button to complete the installation.
-
Choose the ArcGIS Pro SDK for .NET (Utilities) package and click the Download button. Install the ArcGIS Pro SDK for .NET (Utilities) package in the same manner.
-
Once the installations of the ArcGIS Pro SDK for .NET and ArcGIS Pro SDK for .NET (Utilities) packages are complete, you'll see a green check mark next to them in the Extensions and Updates dialog box.
- Restart Visual Studio by clicking Restart Now at the lower right corner of the Extensions and Updates dialog box.
- Verify that the ArcGIS Pro SDK for .NET templates and utilities are installed in Visual Studio. You should see an ArcGIS folder within the set of New Project templates for Visual C# and Visual Basic.
Note: After installation, the Extensions and Updates dialog box can be used to enable, disable, update, or uninstall the ArcGIS Pro SDK for .NET packages.
See ProGuide: Build your first add-in to learn how to create add-ins to customize and extend ArcGIS Pro.
###Install from My Esri download
Note: Visual Studio 2013 only.
You can also download ArcGIS Pro SDK for .NET from My Esri (http://my.esri.com). The content of the ArcGISProSDK.msi file is identical to the content of the proapp-sdk-templates.vsix and proapp-sdk-utilities.vsix files. Install using either the VSIX method or the msi but not both.
Install method (Pick One) | Use these files |
---|---|
VSIX | proapp-sdk-templates.vsix *, proapp-sdk-utilities.vsix * |
MSI | ArcGISProSDK.msi*, ArcGIS ProSDK.cab |
*Double click these files to install.
####VSIX installation Option 1
To download the two .vsix files (proapp-sdk-templates.vsix and proapp-sdk-utilities.vsix), complete the following steps:
-
Double-click proapp-sdk-templates.vsix.
-
The VSIX Installer dialog box for ArcGIS Pro SDK for .NET opens. If you're satisfied with the license agreement, click the Install button to complete the installation.
-
Double-click proapp-sdk-utilities.vsix.
-
The VSIX Installer dialog box for ArcGIS Pro SDK for .NET (Utilities) opens. If you're satisfied with the license agreement, click the Install button to complete the installation.
-
If Visual Studio was open, close and restart it to refresh its templates.
-
Verify that the ArcGIS Pro SDK for .NET templates and utilities are installed in Visual Studio. You should see an ArcGIS folder within the set of New Project templates for Visual C# and Visual Basic.
Note: After installation, the Extensions and Updates dialog box can be used to enable, disable, update, or uninstall the ArcGIS Pro SDK for .NET packages.
See ProGuide: Build your first add-in to learn how to create add-ins to customize and extend ArcGIS Pro.
####MSI installation Option 2
An .msi file has been provided for those who prefer the .msi mechanism or their organization policies require it. To download the .msi file, complete the following steps:
-
Double-click ArcGISProSDK.msi.
-
Follow the instructions displayed on the dialog box to complete the ArcGIS Pro SDK for .NET installation.
-
If Visual Studio was open, close and restart it to refresh its templates.
-
Verify that the ArcGIS Pro SDK for .NET templates and utilities are installed in Visual Studio. You should see an ArcGIS folder within the set of New Project templates for Visual C# and Visual Basic.
Note: After installation, use the Control Panel to modify or uninstall the ArcGIS Pro SDK for .NET package.
See ProGuide: Build your first add-in to learn how to create add-ins to customize and extend ArcGIS Pro.
###Uninstall VSIX from within Visual Studio If you have installed ArcGIS Pro SDK for .NET using the vsix packages from "MyEsri" or from Visual Studio Gallery, you can uninstall it from within Visual Studio following the steps below:
- Open Visual Studio.
- From the Tools menu choose Extensions and Updates item.
- Expand the Installed folder on the left and select All.
- Find the ArcGIS Pro SDK for .NET and ArcGIS Pro SDK for .NET (Utilities) packages and click the Uninstall button.
###Uninstall msi from Control Panel If you have installed ArcGIS Pro SDK for .NET using the ArcGISProSDK.msi from "MyEsri" you can uninstall it from the Windows Control Panel following the steps below:
- Open the Windows Control Panel.
- Access the Programs and Features pane from the Control panel.
- Select the ArcGIS Pro SDK for Microsoft .NET Framework entry and click Uninstall\Change. Follow the instructions to uninstall the program.
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:
####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:
Name | Description |
---|---|
Pro Fix References utility | Fixes broken references in an ArcGIS Pro add-in. 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 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). |
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 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. 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
A complete list of the ArcGIS Pro assemblies in the public API is provided below:
###Core
Core assemblies are located in the {ArcGIS Pro Installation folder}\bin.
Assembly | Description |
---|---|
ArcGIS.Core.dll | Provides CIM, Geodatabase, and Geometry 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. |
###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. |
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.DataSourcesRaster.dll
- ArcGIS.Desktop.Geostatistics.dll
- ArcGIS.Desktop.NetworkAnalysis.Facility.dll
- ArcGIS.Desktop.NetworkAnalysis.NetworkDiagrams.dll
- ArcGIS.Desktop.NetworkAnalysis.Transportation.dll
- ArcGIS.Desktop.Search.dll
- ArcGIS.Desktop.Sharing.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.
##Release notes
###ArcGIS Pro 1.1 SDK for .NET
These release notes describe details of the ArcGIS Pro 1.1 SDK for .NET release. Here you will find information about functionality available in the release and known issues and limitations.
####What's new
Support for Visual Studio 2015 is now available for download from within Visual Studio.
####Known issues
The following are known issues or limitations with the ArcGIS Pro 1.1 SDK for .NET release.
#####1. API Reference guide TOC Display issues on some desktops
- When you browse to the API Reference guide on some desktop machines, the TOC appears as in the following screen shot:
- The TOC layout has adapted to a touch device. In that mode, the TOC, search, index, etc., are available from the icons on the toolbar at the top of the page. This occurs mainly in the Chrome browser, which sometimes identifies a device as touch capable if you have a touchscreen laptop or are running on a virtual machine.
Workaround
Use this URL to view the API Reference guide when you notice this issue.
#####2. Add-in is not loaded by Pro when you "build" it in Visual Studio
- You have deleted the add-in file (*.esriAddinX file) from the
C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro
folder. - Without making any code changes, you build the add-in project in Visual Studio and launch ArcGIS Pro or click the Start button in Visual Studio to launch the debugger.
- Your add-in does not load in ArcGIS Pro.
Workaround
- From Visual Studio's Build menu, click the Rebuild Solution menu item. This will create the add-in file (*.esriAddinX file) under the
C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro
folder. When you launch ArcGIS Pro, your add-in will now load.
#####3. Controls do not work in ArcGIS Pro after the add-in project's namespace and/or assembly is changed
- You changed one or more of the following:
- The Assembly name and/or default namespace in your project application properties in Visual Studio
- The namespace in your add-in module and/or add-in class files.
When ArcGIS Pro loads your add-in, one or more of the controls defined in your add-in do not work. For example, a new button in your add-in is unresponsive when you click it and becomes permanently disabled.
Fix
One or more of the following conditions may need to be fixed:
- The defaultAssembly and defaultNamespace attributes on the root
ArcGIS
daml element within your Config.daml must be changed to match any changes you made to the corresponding Visual Studio project application properties.
<?xml version="1.0" encoding="utf-8"?>
<ArcGIS defaultAssembly="MyRenamedAssembly.dll" defaultNamespace="MyRenamedAssembly" xmlns="..." xmlns:xsi="..." xsi:schemaLocation="...">
<AddInInfo id="...
....
- If the namespace of an add-in class (in the code file) does not match the
defaultNamespace
attribute of the<ArcGIS>
element in the Config.daml, you must fully qualify theclassName
attribute of its daml element (with "namespace.classname") in Config.daml.
For example: Assume this is the class file of a button. Note the namespace
.
namespace MyRenamedAssembly.Addins {
class Button1 : Button
{
protected override void OnClick() {
Assume this is the Config.daml. Note the <ArcGIS defaultNamespace
.
<!-- the defaultNamespace is MyRenamedAssembly -->
<ArcGIS defaultAssembly="MyRenamedAssembly.dll" defaultNamespace="MyRenamedAssembly" xmlns="...
<!-- the button className attribute is fully qualified -->
<button .... className="MyRenamedAssembly.Addins.Button1" ... />
- Rebuild the add-in project
#####4. In a Visual Basic add-in, adding two items with the same name (for example, button.vb) in two different project folders causes a conflict in namespace compile error.
Visual Basic does not automatically create the .vb file pre-populated with the namespace. To fix it, open the button.vb in the folder, and enclose the Button class with the namespace. See the following example:
Namespace ProAppModule9.Test
Friend Class Button
Inherits Button
Protected Overrides Sub OnClick()
End Sub
End Class
End Namespace
#####5. Custom Project Settings - ProjectService::SaveProjectAsync Failed
If the ArcGIS.Desktop.Framework.Contracts.Module overrides for reading and writing custom Add-in project settings are used in an Add-in, the project file can no longer be saved. A message box will be displayed with the error message: ProjectService::SaveProjectAsync Failed.
This will be fixed in 1.1.1
The overrides in question on the Module class are:
protected override Task OnReadSettingsAsync(ModuleSettingsReader settings) {
}
protected override Task OnWriteSettingsAsync(ModuleSettingsWriter settings) {
}
##Resources
- API Reference online
- ArcGIS Pro SDK for .NET (pro.arcgis.com)
- arcgis-pro-sdk-community-samples
- FAQ
- ArcGIS Pro SDK icons
##Contributing
Esri welcomes contributions from anyone and everyone. For more information, see our guidelines for contributing.
##Issues
Find a bug or want to request a new feature? Let us know by submitting an issue.
Copyright 2015 Esri
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:
http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
A copy of the license is available in the repository's license.txt file.
[](Esri Tags: ArcGIS-Pro-SDK) [](Esri Language: C-Sharp)
ArcGIS Pro 1.1 SDK for Microsoft .NET Framework