Hi,
I'm going to develop an Add-in (or Extension?) for ArcMap that will include a custom non-Modal window opened by clicking a button on toolbar to enable the user entering some data and interact with the map and layers extracting geometries and perform some geometric calculations.
Regarding the above I have two questions:
1. Would the above description require an Add-In or an Extension? What are the differences and limitations of one and the other?
2. What would be a better approach, to use ArcObjects or ArcGIS Runtime?
Also, since there is no ArcObjects help available on the ArcGIS for Developers, I was wondering if ArcObjects are getting deprecated?
Thanks!
I'm a little confused with your first question. I believe that what you want to ask is would what you're trying to accomplish require a COM component or an Add-In. For the most part these are the two technologies that you would host an Extension, Button, ComboBox, etc. One involves creating a dll that will need to be registered on the on client machine and the other creates an esriaddin file that can easily be installed on a client machine without any admin privileges or registry access. Also, COM components may require that you build them for each version you want to utilize them at, whereas AddIns are forwards compatible.
The location you'll place the form will depend on what you need the form to do. If you're want the form to display automatically during a particular event in the ArcMap application you could use an Application or Editor extension. For example, if you wanted to show the form when someone starts a new map, opens an existing map, or open a particular item you could use an application extension. If you wanted to show the form when someone starts editing you'd use an Editor Extension. If you wanted the user to have more control over when the form shows you could launch it with a Button, ComboBox, MenuItem, or host it in a DockableWindow. The choice would just depend on the story of when the form should appear.
In regards to your second question, if you're wanting to create something to work within ArcMap you wouldn't want to use the .NET Runtime. The Runtime products do not allow you direct access to ArcObjects. You could surely write a .NET Runtime application to work side by side with ArcMap, but the Runtime Application and ArcMap would have a hard time communicating with each other.
Also, the ArcObjects API is not being deprecated. It is not included on the Developers site because this site is dedicated to the Runtime and Web APIs. The Desktop APIs, such as ArcMap (ArcObjects) and ArcGIS Pro SDK will be hosted in a separate environment.