ArcGIS for developers
ArcGIS for developers

The ArcGIS architecture for developers can be thought of as a series of clients and servers connected through a simple services model. ArcGIS clients connect to and use GIS services. The servers expose these services.

Developer support for ArcGIS is based on this client-server paradigm.

The ArcGIS system

ArcGIS includes a rich suite of clients (services clients), designed for a variety of platforms—ranging from Web to mobile to full workstation desktops. ArcGIS also includes a set of servers that expose GIS services. These servers are designed to run as hosted services in the cloud, as enterprise servers, or as a local GIS runtime. Desktop GIS can also be used to access and work with GIS files on their local networks.

ArcGIS clients

ArcGIS includes a number of clients that can be used and supports various development APIs depending on which client you use.

ArcGIS Desktop

Most critically, ArcGIS Desktop is used to create and work with rich geographic information, which is subsequently shared and deployed across the ArcGIS system. ArcGIS Desktop is used to build maps, geographic data, and analytic models and perform GIS project work. It is also the primary workstation used to compile GIS data.

ArcGIS Desktop is used to create and publish the map packages and layer packages that fuel the rest of the ArcGIS system and GIS services on the Web.

ArcGIS Desktop can be customized and extended using ArcObjects APIs for .NET, Java, or C++. ArcObjects is a comprehensive set of software components used to write add-ins and extensions to Desktop.

The ArcObjects programming pattern for Desktop

For more information on writing add-ins for ArcGIS Desktop, see using .NET or using Java.

For information on writing ArcGIS extensions, see Extending ArcGIS with .NET or with Java.

ArcGIS Engine

ArcGIS Engine can be used independently of ArcGIS Desktop to write custom applications and embed ArcGIS into other desktop applications by use of APIs for .NET, Java, and C++.

Using ArcObjects to build custom GIS applications

Like ArcGIS Desktop, ArcGIS Engine is also based on the ArcObjects component library. For more information, visit the ArcGIS Engine resource center.

Web applications

At ArcGIS online, you can access and work with a series of Web APIs for JavaScript, Flex, and Silverlight to build custom Web applications for use with ArcGIS.

Web APIs for building custom Web applications for ArcGIS

These Web applications connect to and leverage map services and other geographic information services from ArcGIS server nodes, ArcGIS online, and consumer mapping servers on the open Web.

There are a number of Web client options for JavaScript, Flex, and Silverlight.

Another option is to use ArcGIS Explorer Online, which can be used to work with Web maps, create and share map presentations, and tell stories with maps. Map-based storytelling is a critical mechanism used to communicate key messages.

ArcGIS for SharePoint

ArcGIS services can also be used in SharePoint Web sites as Web parts for ArcGIS. This allows you to embed ArcGIS Web maps and use them within SharePoint applications. Your Web maps can access and use map services and other GIS services.

ArcGIS Web parts for SharePoint

See Using ArcGIS for SharePoint for more details.

Mobile GIS applications

ArcGIS provides support for a number of mobile clients including Windows Mobile phones, Tablet PCs, and Apple iPhones. For more information, see the Mobile GIS Resource Center.

ArcGIS services

ArcGIS Server deploys ArcGIS capabilities in a server-based architecture. GIS maps, data, and geoprocessing models can be deployed as Web services and accessed by virtually any client for use by GIS professionals and other users. GIS services can be deployed and scaled using banks of computers, both on-site in your organization and in cloud servers on the Web.

Users create important GIS maps and information using ArcGIS Desktop and publish these as Web services using ArcGIS Server. In this way, ArcGIS Server provides broad access to information and the ability to scale your GIS to fit any configuration or situation.

Supported Web service APIs include SOAP, REST, and OGC protocols (such as WMS, WFS, and WCS). See ArcGIS services for more information.

Resources for ArcGIS developers

The ArcGIS Resource Center includes a set of Web pages for ArcGIS developers.

Accessing ArcGIS developer resources

This resource center is a guide for all developers to find relevant developer resources for working with any part of ArcGIS. You can also find help topics, blogs, forums, videos, and useful code samples to help you with your development work.

There are also strong developer communities that you can connect with to download and share useful application code and custom applications.