Creating ArcGIS Server Solutions - Developing Applications  

Getting Started

ESRI provides a collection of software products designed to deliver enterprise GIS solutions that are centrally managed and support multiple users.  Software developers can access these solutions in both server and client-side application environments.    The purpose of an application and its ease of distribution will often dictate which environments are most suitable.   For ESRI server based applications, the following general development paths are available, increasing in complexity and functionality from path I to IV.  The paths available to a developer depend on the type of application being created.  For example, all paths can be utilized in a Web application, but only path IV is available for Desktop client applications.   In general, the best practice is to start with the simplest path available and select a more complex path only when necessary.  Selecting a more complex path depends on the functionality you need in your application.

Listed below are the types of applications you may choose to build, and the resources (tools and APIs) provided to create and develop these applications.  Specific developer paths are listed where available. 

Developing Web Applications

A Web application provides content from a server to a client as a visual interface for a user, often within a Web browser.  Much of the business logic, data, and other processes are managed on the server-side using a rich programming environment, such as C# or Visual Basic.NET.  Since the user interacts with a Web application via a Web browser, the client-side application is built using Web standards to create a user interface, such as HTML, CSS, and scripting languages such as JavaScript.
A number of resources are provided to get you started.  To create feature rich Web applications without writing code, use the Manager Web application.  For addition information, see the section titled  Developing Web Applications with Manager (if available) or access the help system within the Manager application.   Manager creates a predefined Web application based on the Web Mapping Application template, ready for deployment.  Although Manager provides a number of options to customize your Web application, you may choose to extend it further.  For additional information on customizing the Web application generated by Manager, see the section titled Extending Manager Web applications.

If you have access to Visual Studio 2005, use the Web Mapping Application template included with the Web Application Developer Framework (Web ADF) to get started.   The Web ADF also provides custom Web controls to display and interact with map data from multiple data sources as well as a Common API for interacting with different data sources in the same way.  Developer paths I, II, and III are specific to the Web ADF.  If you can accomplish the task you need using the out-of-the-box Web controls, use path I.  If you would like to customize the Web ADF to work with all data source types by using generic functionalities in the Common API, use path II.  If you want to custom the Web ADF to work with a specific data source implementation of Common API functionality, use path III.  See the section titled Developing Web Applications using the Web ADF  for more information.

To utilize functionality associated with a specific data source (such as an ArcGIS Server server object or an ArcIMS service), a data source specific API may be provided.   This option is associated with developer path IV and offers the most functionality since you are working directly with the data source's API.  Note that each API can be used independent of the Web ADF controls and Common Data Source API.

To work with ArcGIS Server Local data sources, see the section titled Working with the ArcGIS Server ArcObjects API.  ArcGIS Server also provides the ability to customize and extend functionality on the server.  In the ArcGIS Server ArcObjects API discussion, see the section titled Extending ArcGIS Server for additional details.

To work with ArcGIS Server Internet data sources, see the section titled Working with the ArcGIS Server SOAP API.

To work with ArcIMS data sources, see the section titled Working with the ArcIMS API.

To access data source specific APIs from the Web ADF Common Data Source API, see the section titled Access a data source specific API.

Developing Web Services

A Web service provides content from a server to a client as information, usually via simple text.  Access to business logic, data, and other processes are managed on the server-side using a rich programming environment, such as C# or Visual Basic.NET.  Since the user interacts with a Web service programmatically, the Web service developer is responsible for providing access to information on the server using Web standards for Web service description and distribution, such as SOAP, WSDL, and UDDI.

From the ArcGIS perspective, two types of Web services can be created: a GIS Web Service and an application Web service.  A GIS Web Service provides an ESRI standard for publishing ArcGIS server objects (an ArcGIS Local data source) as an ArcGIS Server Web service (an ArcGIS Internet data source).   For more information on publishing GIS Web services, see the section in ArcGIS Server help on the types of services you can publish.   GIS Web Services are not developed, instead they are published and consumed.   Some existing ESRI products, such as ArcMap, are designed to consume a GIS Web service without requiring any custom components or developer experience.  In addition, the Web ADF controls and Common API are designed to consume a GIS Web Service, see the section titled Developing Web Applications using the Web ADF for more information.  Since a GIS Web Service is based on Web service standards, it can also be consumed as a traditional Web service.  The section titled Working with the ArcGIS Server SOAP API discusses the API which can be used by developers to interact programmatically with a GIS Web Service.
An application Web service is a custom application built using Web service standards which can programmatically leverage interaction with an ESRI data source.  Since Web services do not have a user interface, developer path I is not an option.  Paths II and III may offer a generic solution if working with common functionalities across data sources.  Developer path IV is the most viable option since Web services can utilize the full functionality any of the data source specific APIs provided by ESRI.  See the Developer APIs section for additional details.   A scenario illustrating the development of a custom application Web service with an ArcGIS Server Local data source is provided here: Developing an application Web service.   

Developing Desktop Client Applications

Desktop client applications are standalone applications with a visual interface, and have the business logic to consume and process local solutions or server solutions via the Web or a LAN.   In general, desktop client applications are created by developers utilizing one or more APIs to access different functionalities.  Those functionalities may include adding a control for a visual application, or writing code to access and iterate through a data set.  ESRI provides two options for accessing GIS functionality and services in a custom desktop client application: ArcGIS Engine and data source specific developer APIs.  Only developer path IV is available for desktop client applications. 

ArcGIS Engine includes a rich set of controls and APIs to interact with GIS resources locally and consume ESRI data sources remotely.  However, different components must be licensed before being used or distributed.  If the ArcGIS Engine help system is installed, see the section titled "Building solutions with ArcGIS Engine using .NET" for additional details. 
Any of the data source specific developer APIs provided by ESRI can be utilized programmatically within a desktop client application.  See the Developer APIs section for additional details.   A scenario illustrating the development of a custom desktop client application with an ArcGIS Server Internet data source is provided here: Developing an ArcGIS Server Web service client

Developing Mobile Applications

Mobile applications are similar to both Web applications and Web services, but they are usually designed for a specific client environment, such as PocketPC.  The Mobile ADF provides a set of controls for mobile applications to work with ArcGIS Server Web services that have enabled the Mobile Data Access extension.  Although a set of controls are provided, most Mobile ADF developers will follow path IV since it will enable them to take full advantage of the rich functionality exposed via ArcGIS Server Web services and the SOAP API.  For more information on creating mobile applications, see the section titled Developing Mobile Applications using the Mobile ADF .