Some of the new features in 3.0 include a newly redesigned start page, export presets for maps and layouts, maps in reports, new geoprocessing tools, and many performance and productivity enhancements. ArcGIS Pro developers will find many new opportunities to support and streamline organizational workflows with custom tools built with the SDK.
Here are some of the SDK highlights of the release with links to new documentation and resources.
Pro 3.0 and .NET 6 Changes
ArcGIS Pro 3.0 is built on .NET 6.0, Microsoft’s latest edition of .NET with Long Term Support. As this a major update for Pro, the 3.0 version change is a breaking change release. The APIs include breaking changes with important functional, performance, and quality improvements.
Due to the .NET 6 upgrade and API breaking changes, Pro developers will need to recompile their 2.x add-ins with Pro 3.0 and Visual Studio 2022 so that they will work with 3.0. Users should refer to the ProConcepts 3.0 Migration Guide document for important updates and extensive information on steps and considerations for migrating 2.x code to 3.0. There are further points on Visual Studio 2022 below.
The guide’s Migrating section provides a comprehensive discussion of the conversion process and discusses options for code migration, including manually upgrading your project by hand, and the option of using the “Pro Migrate Project” tool.
The guide’s Breaking Changes By Assembly section discusses the main breaking changes by assembly, with before (2.x) and after (3.0) code snippets. Users can also review the API Changes section of the What’s New page of the Pro API reference for a complete listing of all the changes.
A demonstration of the Pro Migrate Project tool, migrating to a Pro 3.0 version:
Visual Studio 2022 Support
At ArcGIS Pro 3.0, the Pro SDK now supports Visual Studio 2022, Microsoft’s latest edition of its IDE. To develop add-ins for ArcGIS Pro 3.0, Visual Studio 2022 v17.2 or newer is recommended.
Recommended minimum version of Visual Studio 2022
Developers should install a minimum version of 17.2 of Visual Studio 2022. This version includes .NET 6.0.5 (with .NET SDK 6.0.3). Installing an earlier version of Visual Studio 2022 may require a separate install of the .NET Desktop Runtime 6.0.5 and/or .NET SDK 6.0.3. Consult Microsoft’s Download .NET 6.0 site for more information.
Additionally, with earlier versions of Visual Studio, you may encounter the following message when installing the Pro SDK prosdk_utilitiesPackage.vsix for 3.0. Simply click “No” to continue and consider updating your Visual Studio 2022 version.
Visual Studio error message, a version update to 17.2 or newer is recommended:
If you are using Visual Studio 2022 version 17.1.6 or earlier when compiling your add-ins, you may notice that the CopyLocal behavior of the add-in (or Configuration or Plugin) is broken. Even though Pro assemblies (or any assembly) have the CopyLocal=No attribute set in the property UI, the assembly is still copied local (and added to the add-in archive). To fix this issue, it is recommended that you upgrade your Visual Studio 2022 to 17.2 or newer. After upgrading your Visual Studio 2022, “clean” the add-in project and ensure that the “obj” folder, within the project, is deleted. Check all Pro assembly reference properties in the .csproj or .vbproj and ensure that CopyLocal is set to No. Rebuild the project.
New Item Templates
The new Layout Tray Button and Map Tray Button item templates allow developers to create buttons in the tray of the layout and map views respectively. These can be used for running a frequently used command or toggling the activation of tools.
See the new Layout Tray Buttons section in the ProConcepts Layout document, and also the new ProGuide Tray buttons document for walkthroughs on how to work with the new tray buttons. You can also try the new TrayButtons sample which provides a sample application using the new tray buttons.
Screenshot of a sample layout tray button:
As with each release, there have also been updates to the many existing Pro APIs. The following are the main API updates at 3.0:
For the Editing API, there are new enhancements to EditOperation and Map Topology.
At 3.0, there have been a number of updates to the EditOperation class. For example, the EditOperation.Create method overloads now return a RowToken instance that can be used to retrieve the ObjectID and GlobalID of the newly created feature. There are also expanded overloads for the Create and AddAttachment methods. There’s also a new ExecuteMode property that provides the ability to manage the execution of EditOperation methods.
You can find an introduction to edit operations in the ProConcepts Editing document.
Map Topology updates
With 3.0, there is a new Map Topology section which describes new functionality to build and navigate the nodes and edges of a map topology using the Pro API. Map Topology and geodatabase topology differ in the fact that a map topology operates on all features in the editable layers in a map, whereas a geodatabase topology limits topological editing to features participating in the rules of the topology.
You can find a sample related to map topology graphs here.
At 3.0, there are enhancements for versioning workflows.
Reconciling and posting of versions are now accomplished by two different methods: Reconcile and Post from the Version class. The Post method takes a PostOptions object as an argument. The post options object specifies a list of selected features for partial post, service synchronization type (whether or not Post should run synchronously), and the target version (use null to specify the default version). There is also a new VersionBase class which represents either a Version or a HistoricalVersion in a Geodatabase.
For more information, see the Versioning section of the ProConcepts Geodatabase document.
There are several updates to the Layout API at 3.0, including new graphic element updates and LayoutFactory class enhancements. The ProConcepts Layouts document has been updated with new sections on Layout Element Creation and Element Content. In the Element Creation section, there’s a discussion of the updates on the new ElementInfo class. Starting at 3.0, additional element properties can be specified using ElementInfo at the time of element creation.
Finally, as mentioned earlier in the New Templates section, check out the new Layout Tray Button template.
Updates to the Map Authoring API include display and feature caching enhancements described in the new Display and Feature Cache section of the ProConcepts Map Authoring document. Developers can update the cache options for a layer by using the SetCacheOptions Method. If the layer’s feature class supports feature caching, then both the display cache and feature cache are set, otherwise only the display cache is set.
There’s also a new section on Working with Elevation Surface Layers. Starting at 3.0, Elevation surfaces and sources are represented by an ElevationSurfaceLayer class. This section discusses some of the common ways of working with this layer type.
All 3.0 API Changes
For a complete list of all of the 3.0 API enhancements, see the “API Changes” section of the What’s New for Developers at 3.0 page in the API Reference.
Installation and Documentation
Check out all of the information resources on the SDK documentation site with all the concept and guide documents and links to the many community samples.
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. You can ask technical questions, search for answers on existing threads, and answer questions as well. We look forward to hearing about your new work with Pro.
For more information on all the key updates in ArcGIS Pro 3.0, see the What’s New in ArcGIS Pro 3.0 page.