ArcGIS Pro Extensibility – 2021 in Review and What's Coming

01-13-2022 04:46 PM
by Anonymous User
Not applicable
1 2 1,547

Original Author: @ChristopherZent 


Looking back, 2021 was another exciting year of advancements in ArcGIS Pro and in Pro extensibility.

We again saw more organizations moving to ArcGIS Pro and developing new custom add-ins built with the ArcGIS Pro SDK for .NET.  Add-ins allow organizations to extend Pro to meet  specific user needs.  Developers can create new tools and workflows, tailor the Pro UI, and build custom routines and solutions.

Also in 2021, we saw many Partner organizations releasing exciting Pro add-ins as new solutions and products. This is great news as these new add-ins continue to help make migrations to Pro possible for many organizations, and allow users to leverage even more of Pro’s extensive functionality.

So let’s look back at 2021, and then take a look ahead this year to see what’s coming for Pro developers with ArcGIS Pro 3.0 .

Pro SDK Advances in 2021

Throughout the year, ArcGIS Pro development teams released new Pro SDK functionality, and again grew the Pro APIs and SDK in general.

Looking back, we saw the Pro 2.8 release in May, and Pro 2.9 in November.  Each release of Pro has brought expanded capabilities to the Pro SDK and the many Pro APIs. These can be leveraged by organizations looking to tailor workflows around these features.

Let’s take a look at some of the key updates from last year:

Pro 2.8 SDK Updates

Geodatabase DDL API

The Data Definition Language (DDL) API was released with Pro 2.8 and provides capabilities for geodatabase schema management.

Traditionally, developers have created geodatabase schema such as feature classes and standalone tables with the SDK by calling geoprocessing tools.  Developers are able to use the new API to directly create, modify and delete geodatabase schema such as feature classes, tables and their attributes, and feature datasets and file geodatabases.

You can learn more in the ProConcepts DDL document to help you get started on the concepts, and review code snippets of some of the common patterns.

API Enhancements

As with each release, there were updates to many other Pro APIs and capabilities at 2.8.

Content API

There was new support added for project favorites with 2.8.  Favorites are a collection of frequently used connections to folders, databases, toolboxes, servers, custom styles and statistical data collections.

The FavoritesManager class allows developers to programmatically customize the favorites collection which is accessible in the UI via the Catalog pane or Catalog view.  See the new section in the ProConcepts Content document for using favorites.  Also, there are new code  snippets available for using favorites.

Map Authoring API

There was new support added for downloading and managing offline maps.  Maps in Pro containing sync-enabled feature service content can be taken “offline”.  The offline content refers to content that can be accessed in the map even in the absence of a network connection.

You can learn more about generating and managing offline maps in a new section in the ProConcepts Map Authoring document.

For further code samples, see the new Offline Map snippets section.

Map Exploration API

The Reports API received several updates including events to help manage how reports are used, such as datasource changes.

You can find more in the new Report Events section, as well as in the API Reference.

Also, at 2.8 there have been performance improvements made for use of the TableControl.  For further information, see the ProGuide TableControl document and community samples.

For further details on the 2.8 release, see this earlier post.

Pro 2.9 SDK Updates

New Item Templates

Layout Tool

The new Layout Tool item template included at 2.9 allows developers to create a layout tool for adding/editing graphics in layout and map views and elements in layout. The Layout tool also provides virtual methods that can be overridden to perform actions when keyboard and mouse events occur in the map view and layout view. It also provides properties that can be set to configure the behavior of the tool, as well as methods that wrap common functions when interacting with the view.

For more information, see the new LayoutTool section in the ProConcepts Layout document.  You can also try the new GraphicElementSymbolPicker community sample which demonstrates a complete workflow using the LayoutTool.

Table Construction Tool

Another new item template for Visual Studio is the Table Construction Tool.  The template creates a table construction tool which provides the foundation for creating rows in standalone tables.  It’s also possible for Table construction tools to be modified to become sketching construction tools. In this sketching scenario, you can build a construction tool that will obtain certain attributes from features on the map and have them be populated in your table row.

More information on table construction tool implementations can be found in the new Table Construction Tools  section of the ProConcepts Editing document.  Also, see the new TableConstructionTool sample which provides examples of table construction tools including two sketching construction tools.  For further background on the Table control, see the TableControl section of the ProConcepts Map Exploration document.  Also, the ProGuide TableControl provides a walk-through on the control and discusses the sample.

API Enhancements

There were also many updates to the Pro APIs at 2.9, and the following are just a few of the many areas.

Content API

In the Content API there were new enhancements at 2.9 for accessing Geodatabase content, files and CAD data, allowing developers to work directly with these items from the Catalog pane.  To support this, a number of methods have been added to the ItemFactory class to facilitate retrieval of dataset and data definition – GetDatasetTypeGetDataset and GetDefinition.  You can find out more in the Geodatabase Content section of the ProConcepts Content document

Also at 2.9, a subset of Pro application options are now available via the ApplicationOptions class.  The class allows developers to get and set the option settings for use in workflows, to save time and ensure consistency.  You can find out more about Application Options here in the doc, explore the API reference here, and review new code snippets here.

Editing API

With Pro 2.9, you can now manage sketch symbology customization.  You can change the symbology of the vertices and segments of the sketch feedback in your custom MapTool. There are 4 different types of vertices – unselected vertex, selected vertex, unselected current vertex, and selected current vertex.  See the Sketch Feedback and Sketch Symbology section of the ProConcepts Editing doc for more information.  Also, see the new CustomToolSketchSymbology community sample to see this new capability in action.

Coordinate Geometry (COGO) is a feature editing technique used primarily in the land records industry and is characterized by the capturing of the dimensions depicted on land record documents as attributes for line features. At 2.9, there’s a new ProConcepts COGO document available which covers the API detailing the classes and methods used to query and edit COGO-enabled line feature classes.

Map Exploration API

At 2.9 there are new TableControl enhancements like GoTo and Find with respective UI updates.  You can display the GoTo UI using the CanGoTo and GoTo methods, and similarly the Find UI can be displayed via CanFind and Find methods in code.

For further details on the 2.9 SDK release, see this earlier post.

Other Opportunities

Also last year, developers took advantage of the many SDK online resources, such as the Concept and Guide documentation, building on the free sample code available in the extensive community samples with ready-to-run solutions such as those seen in some of the images above, as well as getting started with the available tutorials.

Also, many developers were able to attend the 2021 Developer Summit online and take advantage of the many Pro SDK sessions and get updates directly from the SDK team and many other ArcGIS Pro teams.  Pro developers also took advantage of the collaboration in the growing Esri Community Pro SDK Group, as more developers are finding their way to the group to collaborate, find resources and ask technical questions.

New Partner Add-Ins

In 2021, Esri Business Partners continued to make great progress with ArcGIS Pro and released many exciting new Pro add-in products and solutions.  Some of these were updated versions of established ArcMap-based products, and some were brand new products leveraging new capabilities found only in Pro.

The following Partners have new product listings for their add-ins on the ArcGIS Marketplace, where some of the add-ins can be directly downloaded.  These are just some of the new partner add-ins added this past year, with links to more information:

Looking Ahead into 2022

This year, the Pro teams are working on some key changes for ArcGIS Pro 3.0, which is expected for General Availability sometime in Q2.  Also, later in the year, additional SDK capabilities will be coming with Pro 3.1.

ArcGIS Pro 3.0

There is alot of work in progress by the Pro Development teams on 3.0 and the updates discussed here will be expanded with further detail in March during the 2022 Esri Developer Summit.

First, Pro 3.0 will be built on Microsoft .NET 6, formerly known as .NET Core.  For developers, this is likely the most significant change at 3.0.  Pro’s current .NET Framework 4.8 and the upcoming .NET 6 have differences which will need to be considered and handled in migrating Pro 2.x add-ins.

New Add-ins at 3.0

Developing new add-ins at 3.0 will be almost identical to the experience of developing add-ins at 2.x, with only minor changes in the developer experience.  The primary change will be the use of Visual Studio 2022 and .NET 6.  Visual Studio 2017 and 2019, currently supported for Pro 2.9, will not be supported for Pro 3.0 development.  However, developers will continue to use the Pro SDK project and item templates to create new add-in content, within Visual Studio 2022, same as before.

Migrating Existing Add-ins from 2.x to 3.0

ArcGIS Pro 3.0 is a breaking change release, meaning that the public APIs are subject to change. There will be changes related to the move to .NET 6 as well as changes related to deletion of “obsolete” classes and methods (i.e., those items marked as obsolete in a previous release) and refactoring to improve consistency and quality of the public APIS.

Migrating your 2.x add-ins to 3.0 will be a 2-step process:

Step 1:  Convert your add-in Visual Studio project from Visual Studio 2017 or 2019, .NET Framework 4.x to Visual Studio 2022 and .NET 6.  A conversion utility for this purpose will be provided as part of the Pro SDK at 3.0.

Step 2:  Compile your (converted) add-in and fix any compilation errors (related to any breaking changes).

We will provide migration guide documentation to assist developers in migrating, including “before and after” code snippets. Migration resources will be similar to those provided to support the changes from the past move from 1.x to 2.x.  In addition, the Pro SDK includes many community samples that will all be converted at Pro 3.0 and serve as another set of 3.0 code examples for developers to reference.  More details will be provided around the time of the Dev Summit in March.

In terms of compatibility, Pro 3.0 will follow the same pattern of add-in forward compatibility with Pro releases seen with Pro 1.x and 2.x add-in guidelines.  Add-ins compiled with Pro 3.0 will work with all Pro 3.x releases, but not the earlier Pro 1.x and 2.x releases.  Pro 1.x and 2.x add-ins will not work with 3.0 and will need to be migrated.

On a final note, as described in the 2.9 SDK documentation on Third party assemblies, the ChromiumWebBrowser control (built on CefSharp) was deprecated at 2.9 and will be removed at Pro 3.0.  The new WebViewBrowser control is the replacement and is currently supported at Pro 2.9.

New Capabilities in 2022

Although the primary focus of the Pro SDK for 2022 is the move to .NET 6 and 3.0, there are still new SDK capabilities planned for this year including Editing and COGO API enhancements, Geodatabase API enhancements for versioning support and 64-bit OIDS, and a new API for working with the new ArcGIS Knowledge graph functionality.

It’s expected that many of the new capabilities will arrive later this year with the 3.1 release.

In addition, there will continue to be updates to the SDK Resources, including enhancements to concept docs and guides, and code snippets and community samples.

Esri Developer Summit

One of the best Pro SDK learning opportunities of the year is the upcoming Esri Developer Summit.  You’ll be able to attend and learn from ArcGIS Pro and Pro SDK sessions and get updates directly from Pro Team staff who develop the Pro SDK and the Pro APIs.

For Dev Summit 2022, there will again be many Pro SDK sessions throughout the week.  Check the detailed agenda page for the full list of offerings, and search on “Pro SDK” as seen here, and then click on each day to see the SDK sessions scheduled.

There will also be a two-day presummit training seminar available this year – “Building Apps with the ArcGIS Pro SDK for .NET“.

We’ll have more information on all these offerings in the coming weeks.

Collaborate and Share your Feedback

As always, we invite you to send us your feedback and needs for the Pro SDK.  Let us know, find out more and collaborate with others in the Esri Community Pro SDK Group.  The group is very active and allows developers an opportunity to ask technical questions, search for answers on existing threads, and answer questions as well.

Finally, for more information on the latest key features with ArcGIS Pro 2.9, see the What’s New in ArcGIS Pro 2.9 page, which includes the following video highlighting some exciting new features.

We look forward to working with you and seeing your work extending ArcGIS Pro.  Best wishes for the New Year!