ArcObjects
ArcObjects is a development environment of the ArcGIS family of applications. Using Visual Basic for Applications, C# or Java SDK for ArcGIS, it allows developers to extend these applications.[1]
ArcObjects is a library of COM components that build up the foundation of the Esri's ArcGIS platform. ArcObjects is written mostly in the C++ programming language. All the ArcGIS for Desktop applications are based on ArcObjects.
Since ArcGIS is completely built on top of ArcObjects, you can make use of COM services and
capabilities to fully customize and extend the ArcGIS platform —meaning that extending the
ArcObjects data model can be done easily and with virtually all COM-compatible programming
languages (like Visual Basic, C#, Visual Basic.NET, Java and Python).
COM enables components to be reused at a binary level. In other words, developers do not require
access to the source code of ArcObjects in order to extend the ArcGIS platform. For this reason, an
ArcObjects programmer can make use of any type inside the ArcObjects system without knowing
the implementation details of the type. The developer only needs to know what the type is able to do. Because
ArcObjects is based on the COM standard, you can easily work with it in conjunction with other
COM objects and applications (many Windows-based software applications such as Microsoft Office are based on the COM standard).
As previously mentioned, the ArcGIS platform was built using ArcObjects types (such as classes,
interfaces, and enumerations). In the world of ArcObjects, classes use interfaces to organize properties and methods. Put simply, classes inside ArcObjects use only COM interfaces to expose their
public members and communicate with each other. When working with an ArcObjects COM class,
you never work with the properties and methods of the class; rather, you always access its properties
and methods via one of its implemented interfaces. As an example, when you instantiate an object,
you can only use one interface. However, after instantiation, you can query for any other interface that is implemented by that object. This process is sometimes called a Query Interface (QI).
Classes in ArcObjects often have many interfaces.[2]
External links
References