This is the first in a series of posts that will discuss implementation considerations around the ArcGIS Pro SDK. This first post will focus on some standard, high-level questions around getting started with ArcGIS Pro and the Pro SDK. In future posts we’ll explore learning resources for the Pro SDK, planning considerations, migrating customizations from ArcMap, and patterns for add-in design and development.
Update February 2018: For additional information and resources, see the ProConcepts Migrating to ArcGIS Pro document.
For those of you who are new to ArcGIS Pro and/or the ArcGIS Pro SDK, and considering getting started with the SDK, this post will hopefully help solidify your interest and help you get rolling. For those who have been actively using the Pro SDK Group here on GeoNet, thank you for being part of the community and please keep participating. For newcomers, please consider joining the Pro SDK Group here as well.
A few assumptions to get us started. It’s understood that if you’re an ArcMap user and have not begun to work with ArcGIS Pro yet, a couple reasons may be that you’re still trying to decide on whether it makes sense to begin to move over to ArcGIS Pro now or wait until a later release, or potentially are waiting for the right project opportunity. Learning a new application like ArcGIS Pro, with a new and different SDK (even though easier to learn and code with) is a significant investment of time and resources. Also, you likely know that the Pro SDK and ArcObjects SDK are different, and so in migrating any existing tools to ArcGIS Pro, your existing ArcObjects code will need to be rewritten. Depending on the size of your existing codebase, migrating to the Pro SDK could be a large effort… and if so, that will require planning. All this being said, the opportunities with ArcGIS Pro are very significant, and definitely warrant your consideration. Please keep reading!
There are a number of common implementation questions which you are likely thinking about with ArcGIS Pro, such as:
- What are the new capabilities in Pro that can enhance my existing solutions?
- How will a move to Pro impact my day-to-day work?
- Do ArcGIS Pro and the Pro SDK together have the functionality to fully support my needs and existing projects?
- With investments in ArcMap and ArcObjects, does it make sense to begin to move to Pro now?
These are all important questions to begin to try to answer – today. This series will hopefully help you along towards answering some of these, and potentially provide some new ideas and perspectives.
Consider How you will use ArcGIS Pro
A first step when considering both a move to Pro, and/or whether to use the Pro SDK, is to actually step back and think about how you or your end customers will actually use the Pro application. With the new capabilities in Pro, you’ll want to understand all the opportunities and new ways to get work done:
- More efficiently – with tasks, 64-bit multithreading, and the Pro SDK
- With better results – with 2D and 3D, and improved cartography
- Standardized across the platform – with sharing, mobile packages, and vector tiles
Considering actually how Pro will be used is important to identifying what you can take advantage of quickly right through the Pro application. Some resources to point out. There is a comprehensive set of Pro documentation and quick start guides to help you get started. Keep in mind that the Pro SDK extends and builds on the Pro application, which is different from the ArcGIS Runtime SDK for .NET and the earlier ArcGIS Engine which allow developers to build standalone applications. So if you’re planning to extend ArcGIS Pro, keep in mind that you’ll always be working within the Pro UI.
Again, if you’re coming from years of ArcMap use, Pro will look new and different. With the modern and contextual ribbon UI, Pro workflows will be slightly different and these also can be streamlined using Pro tasks. It may take some time to get to know the new UI elements and terminology, and there are good reasons for all of the changes. You’ll want to understand all these aspects and opportunities with Pro. Again, if you’re coming from ArcMap, you’ll want to compare and contrast workflows within ArcGIS Pro and consider these differences as you get started. Again, all of this is important to essentially understand what you can do within Pro, what is available out-of-the-box (OOTB) in the Pro UI, and where and when it makes sense to extend with the Pro SDK.
Next, when beginning to consider the question of configuration or customization with the Pro SDK, you’ll need to decide whether you actually even need to use the Pro SDK for your level of work. There are three main ways of looking at building on the Pro OOTB functionality:
- Configured through tasks or the basic configuration settings
- Automated with Python for repeatable geoprocessing operations
- Extended with the Pro SDK for additional UI/UX functionality
In looking at these options, there are always going to be implementation trade-offs with each. For example, if you can simply leverage OOTB with some configuration such as building tasks, the advantages are found in that it’s usually easier and faster to define the solution. This is due to normally minimal ramp up time for configuration, as there’s no need to learn automation with Python, or learn the Pro SDK, and of course no development time required. This approach could also potentially save time in future upgrades, because as there is no customization, there are no code changes to consider. The trade-off is that although it’s easier to get to your solution, the configuration approach may still have an involved and lengthy workflow for the end user.
Depending upon the number of users that are using the workflow and how long it takes, choosing to either automate with Python or geoprocessing, or developing an add-in with the SDK may make more sense. An excellent blog post from last year to reference on this discussion is found here, which can help you understand our recommended approach to evaluating this decision. For example, when considering a simple workflow within Pro, going with an OOTB set of repeatable steps configured with a simple set of workflow tasks may be all you need, and from a project standpoint, easier to implement and maintain.
Next, if you decide that you do indeed need to use the Pro SDK – for example, to introduce your own functionality, or save a large number of standard, repeatable steps, etc., then you should again take an even closer look, from the perspective of how Pro works in comparison to your current tool or application workflow. As mentioned earlier, depending on if you’re coming from development with ArcMap, the way that you’ve built something before is going to be different with Pro. There are many new opportunities to take advantage of, and which may entirely change your workflows. One easy way to get started is with some initial tests to build a Pro project and begin to port over an ArcMap map document, migrating your existing project items, maps and other content. These steps can help you to begin to see how things will work in Pro UI/UX. The next step may be to then try building some simple Pro SDK add-ins around some existing functionality you’ve previously developed in ArcMap.
Finally, some users may also be asking, is the current version of the Pro SDK the right one to get started with? The answer: Yes, definitely. The Pro 1.2 SDK, or the soon to be released Pro 1.3 SDK, are both excellent versions to get started with, being both comprehensive, very well documented, and well integrated with Visual Studio. Again, learning a new API or SDK is a significant time investment, and it’s understandable this may hold some back from jumping right in. Still, getting started now will help you to take advantage of the many opportunities that are available. So the sooner you get started, the sooner you can start taking advantage of the great new functionality in the next generation of Desktop.
Bottom line: Once you make the decision to proceed with extending Pro with the Pro SDK, you’ll want to begin as soon as possible to try it out and understand how it works. This will help you begin to learn its key features, like asynchronous programming, as well as learn about some of its potential limitations… depending upon your perspective. Again, things will look different if you’re coming from development with ArcObjects. Like many of our SDKs, the ArcGIS Pro Team is growing the Pro SDK based upon your input on needs and requirements. We want to help meet those needs for the next generation of Desktop, and the sooner we can understand what you’ve learned from trying the Pro SDK, the sooner your requirements can potentially be worked into a future release.
Thanks for reading. In our next post, we’ll explore the many learning resources available for the Pro SDK and recommendations for getting the most from them.