ArcObjects
ArcObjects är en utvecklingsmiljö i ArcGIS- familjen av applikationer. Genom att använda Visual Basic for Applications , C# eller Java SDK för ArcGIS, tillåter det utvecklare att utöka dessa applikationer. ArcObjects är ett bibliotek av COM-komponenter som bygger upp grunden till Esris ArcGIS-plattform. ArcObjects skrivs mestadels i programmeringsspråket C++ . Alla ArcGIS for Desktop-applikationer är baserade på ArcObjects. Eftersom ArcGIS är helt byggt ovanpå ArcObjects kan du använda COM-tjänster och funktioner för att helt anpassa och utöka ArcGIS-plattformen – vilket innebär att utvidgning av ArcObjects datamodell kan göras enkelt och med praktiskt taget alla COM-kompatibla programmeringsspråk (som t.ex. Visual Basic , C# , Visual Basic.NET , Java och Python ). COM gör att komponenter kan återanvändas på binär nivå. Utvecklare behöver med andra ord inte tillgång till källkoden för ArcObjects för att utöka ArcGIS-plattformen. Av denna anledning kan en ArcObjects-programmerare använda vilken typ som helst i ArcObjects-systemet utan att känna till implementeringsdetaljerna för typen. Utvecklaren behöver bara veta vad typen kan göra. Eftersom ArcObjects är baserad på COM-standarden kan du enkelt arbeta med den tillsammans med andra COM-objekt och applikationer (många Windows-baserade mjukvaruapplikationer som Microsoft Office är baserade på COM-standarden). Som tidigare nämnts byggdes ArcGIS-plattformen med ArcObjects-typer (som klasser, gränssnitt och uppräkningar). I ArcObjects värld använder klasser gränssnitt för att organisera egenskaper och metoder. Enkelt uttryckt använder klasser i ArcObjects endast COM-gränssnitt för att exponera sina offentliga medlemmar och kommunicera med varandra. När du arbetar med en ArcObjects COM-klass arbetar du aldrig med klassens egenskaper och metoder; istället kommer du alltid åt dess egenskaper och metoder via ett av dess implementerade gränssnitt. Som ett exempel, när du instansierar ett objekt kan du bara använda ett gränssnitt. Men efter instansieringen kan du fråga efter vilket annat gränssnitt som helst som implementeras av det objektet. Denna process kallas ibland ett Query Interface (QI). Klasser i ArcObjects har ofta många gränssnitt.