ArcGIS Server

Steps for developing and deploying extensions

Developing and deploying an extension (SOE or SOI) for a map or image service takes several steps.

Install the ArcObjects SDK—Before you begin working with SOEs, you need to install the ArcObjects SDK for your language of choice, as well as a corresponding integrated development environment (IDE) in which you can write and debug the code. Appropriate IDEs include Microsoft Visual Studio (if using .NET) or Eclipse (if using Java).

Write the code—When working in Java, you can get started creating an extension using an Eclipse plug-in wizard. If you're working in .NET, you'll start in Visual Studio with a template project. The wizard and templates ensure that your extension implements the required interfaces and can respond to REST or SOAP web service calls.

Build your project and package it into an .soe file—SOEs and SOIs are both encapsulated in an .soe file. After compiling your code, you create the .soe file using Esri-provided utilities integrated into your IDE.

Deploy the extension—Before you can use your extension, you need to deploy it to ArcGIS Server. You can do this in ArcGIS Server Manager by browsing to your .soe file.

Enable the extension on your map or image service—When you create or edit the service, you can enable the extension. The next time the service starts, the extension is available for use. If the extension exposes properties, a property page in Manager allows you to set those.

Dive-in:

If you're developing an extension, you can extend this property page. The samples in the ArcObjects SDK explain how to do this.

Use the service in a client application that you develop—Since an extension is just a web service that takes HTTP requests, many types of clients can invoke it. In the case of REST extensions, this includes the ArcGIS web and mobile APIs. In the case of SOAP extensions, it includes any client that can make a SOAP web service request. The client code must set up the parameters for the extension, make the web service call, and handle the response.

The above steps are explained in further detail in subsequent topics of this help system.