To extend or enhance ArcGIS Pro, you must use the ArcGIS Pro SDK for .NET. However, before you start writing code, always apply the “Configure first, customize only if you have to” principle to save time and money on development work.
If you have been using Esri software for any length of time, you may have custom code and extensions created for ArcMap that you now want to use with ArcGIS Pro. You now have a range of options to choose from that depend on whether you are dealing with simple workflows that aggregate COTS functions or more sophisticated workflows that implement custom business logic or require additional user interface.
Let’s walk through a few scenarios to help you determine the best approach for your specific needs.
- If your custom app for ArcMap was designed for simple, repetitive workflows, you may be able to use the new ArcGIS Pro Tasks to configure ArcGIS Pro instead of writing custom code.
A task is a set of preconfigured steps that guide you and others through a workflow or business process. A task can be used to implement a best-practice workflow, improve the efficiency of a workflow, or create a series of interactive tutorial steps.
- If your ArcMap customization was created with Python, there is a good chance it might work just fine with ArcGIS Pro. To test the compatibility of your code, you can use the geoprocessing tool called Analyze Tools for Pro. This tool highlights issues that would prevent Python code or Python-based geoprocessing tools from running in ArcGIS Pro.
The Python migration for ArcGIS Pro is covered in details in the documentation pages.
- If your ArcMap customization was created for an enterprise workflow management for a multiuser environment, you may be able to configure the ArcGIS Workflow Manager extension that is available for ArcGIS Pro. Workflow Manager provides tools for allocating resources and tracking the status and progress of jobs.
- If your ArcMap customization was built with ArcObjects AND the scenarios above don’t match your needs, then you will have to rebuild your solution using the ArcGIS Pro SDK for .NET so you can use it with ArcGIS Pro.
The good news is that the new ArcGIS Pro SDK for .NET is a modern API that leverages .NET features and patterns such as Task Asynchronous Programming (TAP). It can save you dozens of lines of code by accessing coarse grained objects and helper functions. Deployment is a simple add-in extensibility pattern, making your applications self-contained and easy to share.
Also, ArcGIS Pro is a multithreaded application, which means that it allows you to run processing tools on a different thread than the thread controlling the user interface. As such, you can build highly functional and dynamic applications that delight your customers with a superb user experience.
To help you get up to speed on the ArcGIS Pro SDK for .NET, we have posted an initial set of samples, an API Reference, and concept documentation on GitHub (as part of the ArcGIS Pro SDK beta program). Additional resources including concepts, guide, tutorials, samples, and snippets will be posted on GitHub with the release of ArcGIS Pro 1.1. You can also check out the following technical sessions from Esri DevSummit 2015:
- ArcGIS Pro SDK for .NET: Introduction, Samples, and How to Contribute
- ArcGIS Pro SDK for .NET: Introduction and Demos
- ArcGIS Pro SDK for .NET: Advanced Programming, Tool Concepts, Map Visualizations, Editing
If you are new to developing with the Microsoft .Net Framework, you can find many resources on the Microsoft website to get you started.
So, whether you are looking to build a brand new extension to ArcGIS Pro or trying to port a custom app from ArcMap to ArcGIS Pro, evaluate the new functionality and patterns that ArcGIS Pro provides as well as the capabilities of the ArcGIS Pro SDK so you can select the right tool for the job.