ArcObjects Help for .NET developers


In this topic


About the ArcObjects Help for .NET developers

ArcObjects is a library of Component Object Model (COM) components that make up the foundation of ArcGIS. To work with ArcObjects in the .NET development environment, a collection of .NET primary interop assemblies (PIAs) and COM object libraries have been generated to manage .NET–COM interaction. ArcObjects components are installed with the ArcGIS Desktop, ArcGIS Engine, or ArcGIS Server products and can be used in a number of ways:
  • To customize the ArcGIS Desktop applications
  • To build standalone mapping applications
  • To develop Web applications 
This software development kit (SDK) for developing with ArcObjects in .NET will assist developers in writing their applications by providing best practices, conceptual documentation, code sections, and samples.
If you are new to ArcObjects development, you should first determine what type of application you need to build to address your problem. This topic presents the different development options and will point you in the right direction. Once you know what type of application you are going to create, the Learning ArcObjects topic provides a foundation as you begin to build ArcObjects solutions.
Developers with existing solutions built on earlier releases of ArcGIS should read What's new for developers at 10? and the section on Migrating and upgrading your code.
Although this software development kit (SDK) focuses on C# and VB .NET development, it also contains resources for the VC++ developer. To access those resources, you need to select them as a part of your SDK installation. If you did not do so, you can modify your installation and select the VC++ option to get additional Help topics and samples.

Customizing ArcGIS Desktop

ArcGIS Desktop is a suite of integrated applications including ArcMap, ArcGlobe, ArcScene, and ArcCatalog. ArcGIS Desktop applications allow you to perform geographic information system (GIS) tasks from simple to advanced, including mapping, geographic analysis, data compilation, data management, visualization, and geoprocessing. The ArcGIS Desktop User Help system provides topics about these applications.
ArcGIS Desktop applications can be customized to automate GIS tasks or create unique workflows and environments suitable for your organization. The following are the four ways you can customize ArcGIS Desktop applications:
  • Configure the application user interface (UI), such as rearranging toolbars, tools, commands, and dockable windows
  • Python scripting to automate workflows
  • Develop add-ins to create custom applications and extensions for ArcGIS Desktop
  • Develop custom components to add new functionality to ArcGIS applications
This SDK only addresses customization through developing add-ins and custom components. For UI configuration and python scripting, developing with ArcObjects and .NET is not required. Those topics are covered in the ArcGIS Desktop Help.

User interface configuration

The ArcGIS Desktop application graphical user interfaces (GUIs) are composed of menus, toolbars, and dockable windows, that you can configure to meet your daily tasks and requirements without writing a single line of code. Configuration changes can be performed by any user, do not require programming, and are persisted between application sessions.
These tasks are accomplished by dragging and dropping within the application, and do not require administrative privileges. The configuration changes are saved with your document, so that when your document is opened, the layout of the GUI remains the way you last configured it.
The following are examples of UI configurations:
  • You can add or remove new commands and tools on to the application's toolbar from the Customize dialog box.
  • You can create new toolbars and menus, or rearrange existing toolbars and menus to group the commands and tools that are frequently used. 
  • You can drag and drop geoprocessing tools and models on to the application's toolbar from the Customize dialog box.
  • You can hide and show, or close dockable windows, such as the Search window, table of contents (TOC), and so on. Dockable windows can also be positioned to float or remain docked in a specified area in the application.
  • You can assign and work with default geographic data (via templates).
See the following screen shot that shows the Customize dialog box in the ArcMap UI:
Since programming is not required, this SDK does not cover this type of customization. For more information, see About configuring the user interface in the ArcGIS Desktop User help system.

Scripts to automate workflows

ArcGIS Desktop provides automation through geoprocessing tools and ModelBuilder, which requires no coding. However, you can use scripting to automate batch processing of a number of different and large datasets, map documents (.mxd) and layer (.lyr) files.  You can automate execution of simple repeatable tasks and complex processes that invoke other built-in geoprocessing tools. The scripts must be authored based on arcgisscripting and the arcpy.mapping module using the Python scripting language. The arcgisscripting module provides Python functions to access data and data properties. By using the Python functions in your script, you can automate data conversions, load data into geodatabases, project a set of feature classes, and so on.
The arcpy.mapping module provides Python functions to open and manipulate map documents (.mxd) and layer files (.lyr). By using the arcpy.mapping module, you can query and alter the contents, print, export, or save the modified map documents and layer files.
The following are the advantages of scripting with Python:
  • Automate geoprocessing tasks with a single tool, multiple tools, or with other custom scripts tools.
  • Schedule the script's execution to run daily and weekly, or daily or weekly without user interaction.
  • Interoperable with other Python based third-party libraries and scientific packages available for advanced analysis.
  • Drag-and-drop script tools on to the application's toolbar for easy access.
  • Easy to share and can be executed independent of the ArcGIS Desktop application UI across any platform. 
However, scripting with Python has some limitations. Not all areas of ArcGIS are exposed in Python, nor does it provide access to ESRI's many COM extensibility points.
Since .NET programming is not required, this SDK does not cover this type of customization. For more information, see A quick tour of ArcPy and Geoprocessing scripts for map document management and output in the ArcGIS Desktop User help system.

Add-ins for interactive tasks

The new desktop add-in model provides developers with a declaratively based framework for creating blocks of custom functionality within a single compressed file. These add-in files can then be easily shared between users without relying on installation programs or Component Object Model (COM) registration. Add-in files can be installed by copying them to a well known folder location and uninstalled by deleting them from that folder location.
Desktop add-ins can be authored using VB .NET, C#, or Java. To simplify development, ESRI provides add-in wizards that integrate with popular development environments including Eclipse and Microsoft Visual Studio.
Users can obtain information concerning the source, content, and other details through Extensible Markup Language (XML) metadata contained within the add-in file. This information can be used to discover add-ins within Web portals, filter or restrict add-ins based on polices in the consuming organization, and generally manage add-ins when copied on the user's machine. Add-in files can also be shared between users within an organization using a centralized network share.
See the following screen shot that shows the Add-In Manager option and dialog box in the ArcMap UI:
Add-ins support the following fixed set of add-in types:
  • Commands and tools
  • Combo boxes
  • Menus and context menus
  • Toolbars
  • Tool palettes
  • Dockable windows
  • Application and editor extensions
For more information on using add-ins, see Building add-ins for ArcGIS Desktop.

Custom components to add new functionality

ArcGIS applications are built on a common and extensible framework known as ArcObjects. You can add custom components to ArcGIS applications by extending the ArcObjects framework. These custom components can interact with other ArcObjects components and add new functionality to ArcGIS applications. Examples of custom components that you can create are tools, renderers, feature symbols, layers, editor customizations, geodatabase class extensions, and plug-in data sources.
The following screen shot shows the Layer Properties dialog box with a custom created PointDispersal renderer that disperses coincident points in a layer:
The custom component is created by developing components in .NET (C# and VB .NET) or Java using the appropriate ArcObjects application programming interface (API). The custom components must be COM visible and registered to specific ESRI component categories. Also, the installation of custom components requires administrative privileges.
The following are the advantages of custom components:
  • You can create custom components that are specific to your data, domain or organization by leveraging the wide spectrum of ArcObjects APIs.
  • You can build domain specific customizations and advanced extensions. Some of the ArcGIS extensions, such as Production Line Tool Set (PLTS) for ArcGIS are examples of advanced application extensions created by extending the ArcObjects framework.
  • Can be easily delivered to end users via custom setup programs.
For more information on extending ArcObjects, see Extending ArcObjects.

Building stand-alone applications with ArcGIS Engine and ArcGIS Desktop

Building standalone applications with ArcGIS Engine and ArcGIS Desktop
Standalone applications leverage the functionality available through the ArcGIS Desktop and ArcGIS Engine applications while providing a customizable user experience. These applications can take advantage of the mapping functionality available through ArcObjects without requiring the use of the ArcGIS Desktop applications. Developers often create the following types of applications:
  • Cost-effective ArcGIS Engine applications for mapping and visualization.
  • Stand-alone Windows form applications with embedded geographic information system (GIS) functionality.
  • Command-line applications utilizing ArcObjects functionality without a graphical user interface (GUI) to perform large processing tasks.
For more information on building standalone applications with ArcObjects, see Building stand-alone applications.

Developing Web applications with ArcGIS Server

As an ArcGIS Server developer, you have access to the Web ADF and if you choose, ArcObjects on the server. While the Web ADF provides Web controls and convenience classes to work with multiple data sources, it might be necessary to work with functionality only available in ArcObjects via ArcGIS Server. 
You can build a number of different types of applications using ArcGIS Server. If you are working with the ArcGIS Server ArcObjects API using the Microsoft .NET Framework, you can build server applications, such as Web applications, Web services, desktop client applications, and mobile applications. If you are using ArcGIS Engine, you can build desktop applications that work with ArcObjects both locally and remotely via ArcGIS Server. If you are using ArcGIS Desktop, you can extend ArcGIS Desktop applications to include functionality that uses the geographic information system (GIS) server.

While this SDK does not cover developing with the .NET ADF, it is intended to help the server developers who are using ArcObjects in their applications. For information on developing Web applications with ArcGIS Server, see Developing with ArcGIS Server. For information on developing with the .NET ADF, see the .NET Web Application Developer Framework SDK available with ArcGIS Server.

References

The following are reference links to get you started:
  • Developing with ArcGIS—Introduction to the ArcObjects platform and its capabilities. 
  • ArcObjects namespaces—Application programming interface (API) help for every ArcObjects library.
  • Using geoprocessing—Introduction to the spatial analysis and visualization tools available through the ArcGIS geoprocessing framework.
  • Building stand-alone applications—Guide to your development options for stand-alone ArcObjects applications.
  • Developing with ArcGIS Server—Guide to your development options for developing ArcGIS Server Web applications.
  • Tips for using the ArcObjects .NET SDK—Tips and tricks that will make you more productive and successful when using the ArcObjects .NET SDK.