In this topic
ArcObjects is a set of platform independent, component based geographic data models written in C++. ArcObjects offer services to support and build geographic information system (GIS) solutions and is the foundation of the ArcGIS family of products evolved progressively to suit the requirements of GIS developers and users.
ArcObjects services can be categorized as base services, data access, map analysis, map presentation, developer components and Web development framework, and user interface (UI) and extensions.
The services are organized under ArcGIS Desktop, ArcGIS Engine, and ArcGIS Server to tailor the needs of the GIS developer. See the following illustration that shows the services organized with each product:
ArcGIS Desktop applications contain many dialog boxes and property pages allowing end users to work effectively with the functionality of the object. ArcObjects containing properties to be modified by users of these applications should have property pages created for these properties.
Not all objects require property pages.
The base services, data access, map analysis, and map presentation categories contained in all three ArcGIS products, comprise the majority of the GIS functionality exposed to developers and users in ArcGIS. This commonality of functions among all the products is important for developers to understand, since it means that when working in a particular category, much of the development effort can be transferred between the ArcGIS products with little change to the software (this is how the ArcGIS architecture is developed).
ArcGIS Engine uses ArcObjects in custom applications. ArcObjects in ArcGIS Engine must support a variety of uses; simple map dialog boxes; multithreaded servers; and complex Windows desktop applications are all possible uses of ArcGIS Engine objects. The dependencies of the objects in ArcGIS Engine must be thoroughly understood. The impact of adding dependencies external to ArcObjects must be carefully reviewed, since new dependencies can introduce undesirable complexity to the installation of the application built on ArcGIS Engine.
ArcObjects are used in the server framework where clients of the object are usually remote. The remoteness of the client can vary from local; possibly on the same machine or network; to distant, where clients can be on the Internet. ArcObjects running on the server must be scalable and thread safe to allow execution in a multithread environment.