Skip To Content

Steps to develop and deploy extensions

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

  1. Install ArcGIS Enterprise SDK—Before you begin working with SOEs or SOIs, you need to install ArcGIS Enterprise SDK and have a corresponding integrated development environment (IDE) in which you can write and debug the code. The supported IDEs include Microsoft Visual Studio (if using .NET) or Eclipse and IntelliJ IDEA (if using Java). See ArcGIS Enterprise SDK system requirements for details.

    Make sure you've already installed your IDE of choice prior to installing the ArcGIS Enterprise SDK.

  2. Write the code—When working in Java, you can get started creating an extension using an SOE or SOI from the Maven archetype. If you're working in .NET, you'll start in Visual Studio with a template project. The templates ensure that your extension implements the required interfaces and can respond to REST or SOAP web service calls.
  3. Build your project and package it into an .soe file—SOEs and SOIs are both encapsulated in an .soe file which will be deployed to ArcGIS Server.
  4. Deploy the extension—Before you can use your extension, you need to deploy it to ArcGIS Server. You can do this by adding the .soe file of your SOE or SOE as an extension in ArcGIS Server Manager.
  5. Enable the extension on your 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.

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

  6. 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.