An Overview of the Foundation of ArcInfo 8
Developers Use the ArcObjects Framework to Enhance/Extend ArcInfo
ArcObjects is the technology framework that forms the foundation of ArcInfo 8. Developers can use the ArcObjects framework to enhance and extend ArcInfo programmatically. With ArcObjects, developers can add new tools or work flows to ArcMap and ArcCatalog or extend the ArcInfo data model by adding new custom feature types. ArcObjects is not a software product in its own right; rather it is a technology included with ArcInfo, much like Avenue is an integral part of ArcView GIS. To use ArcObjects you must obtain a copy of ArcInfo, and any derivative applications require a licensed ArcInfo seat.
ArcInfo 8 includes three levels of customization, two of which utilize ArcObjects directly. The first and simplest level of ArcInfo customization involves no programming and, therefore, no direct use of ArcObjects. All users can easily change the look and feel of the ArcInfo applications by using standard user interface capabilities. For example, toolbars can be turned on and off using the Customize dialog.
The second level involves using the built-in Visual Basic for Applications (VBA) scripting capabilities to add new menus, tools, and work flows. With VBA it is possible to create extensive and sophisticated applications based on ArcObjects that run within the ArcMap and ArcCatalog application frameworks. VBA is useful for many of the same types of tasks that ARC Macro Language (AML) has been used for in the past.
The third level of customization requires a COM-compliant programming language such as Visual Basic, Visual C++, or Delphi. Software developers who want to create reusable software building blocks, new applications, or custom feature additions for the geodatabase object model will prefer to work with ArcObjects directly. COM is a protocol that connects one software component or module with another. By making use of this protocol it is possible to build reusable software components that can be dynamically interchanged in a distributed system.
Developing with COM means developing using interfaces. All communication between COM components is made via the components' interfaces. COM interfaces are designed to be a grouping of logically related functions.
"ArcObjects is an incredible resource for developers large and small," says David Maguire, Esri director of products. "The state-of-the-art object components offer great flexibility and allow developers to create new extensions and even new mapping and GIS applications."
The ArcObjects software components are delivered as an organized collection of object components. The ArcInfo Object Model describes the scope and organization of the components. Subsystem object models document the many classes that make up ArcObjects and the relationships between these classes. Each diagram has a description of what components can be found and many of the common tasks performed on these objects are shown with examples.
ArcMap and ArcCatalog provide the developer with an application framework that can be extended with little effort. Extensions can range from simple commands and tools to complete industry-focused solutions comprising customized tools, renderers, and user interfaces.
The ArcInfo data model can be extended in one of two ways. Specific behavior relevant to individual object classes of the data model can be modeled within the system framework using custom features, relationships, etc. More generic support for new data types can also be added by extending the data formats supported by the geodatabase.
Since ArcObjects is based on COM, any application that is capable of integrating COM components can embed ArcObjects. For example, a software developer can embed ArcObjects inside Microsoft Word to provide a simple map viewer within Microsoft Word documents. In a similar fashion, developers can use ArcObjects to create stand-alone applications.
Included with ArcObjects is a rich collection of developer-oriented resources including a printed developer guide, online developer help, and a series of class diagrams. The ArcObjects Developer's Guide is for anyone who wants to learn the basic techniques and principles of customizing the ArcInfo end user applications by working graphically with the user interface or by referencing the ArcObjects object model in a development environment. The ArcObjects Developer Help provides reference information, coding tips, and tricks as well as a number of complete code samples, written in both Visual Basic and Visual C++.
In summary, ArcObjects offers the developer four main opportunities: to extend existing Esri applications (ArcMap and ArcCatalog), extend the data model used by applications based on ArcObjects, embed ArcObjects within existing applications, and create entirely new applications. More details can be found in the ArcObjects white paper (www.esri.com/arcinfo) and online (www.esri.com/arcobjectsonline). To begin using ArcObjects, you will need to license ArcInfo. To license ArcInfo, contact your Esri regional office. Outside the United States, please contact your local Esri distributor. For information, please visit www.esri.com/partners.