A common application framework


In the earlier section, ArcObjects: Foundation of ArcGIS, you learned that the ArcGIS product family shared a similar architecture based on ArcObjects. The desktop applications also share a common application framework, which you should understand before undertaking any desktop development.
The ArcGIS Desktop applications are developed using ArcObjects. When you use an application, such as ArcMap, most of the time you are simply looking at or working with ArcObjects.
The graphical user interface in each application is also developed using the same objects, such that in each application you will find the interface contains toolbars, menus, commands, and tools that have the same look and feel. The interfaces can also be easily manipulated in terms of adding and removing toolbars, docking toolbars, adding and removing commands, and so on. This nonprogrammatic manipulation of the interface is actually the first of the customization options that will be described later.
It's important to remember that every command or tool you use, for adding data, editing, or performing some GIS analysis, is simply running some code that includes ArcObjects behind the scenes. The application framework of the desktop applications allows you, as a developer, to write your own code using ArcObjects to perform some customization.
Each desktop application includes VBA. The VBA development environment is integrated within the application and provides the Customize dialog box for user interface manipulation, as described above, and the Visual Basic Editor, which provides an interface for creating forms and writing ArcObjects code. The integration between the application and VBA allows you to create your own controls and work with the application and current document.
The application framework also provides for the creation of components, such as new commands, tools, or extensions, that plug in to one or more of the desktop applications. These components are typically created with development environments, such as Visual Basic 6 or .NET.
Recall that all the desktop applications are built using the same objects, share a common interface, and allow for the creation and integration of your own ArcObjects code. The way you develop a customization for applications, such as ArcMap, is no different from creating a customization for another desktop application, such as ArcGlobe or ArcCatalog. The ArcObjects that you consume will be different, but the implementation is essentially the same due to the common application framework that these applications share.