Category: Developer

ArcGIS Developer: Social Media and Networking Resources

The EDN Team website now has links to all of the ESRI social networking resources for developers. 


RSS Icon Blogs

Forums Icon Forums

YouTube Icon YouTube

Delicious Icon Delicious

Facebook Icon Facebook

LinkedIn Icon Linked In

 ESRI  ESRIUC  EDN Team  (Jim Barry   Allan Laframboise   David Cardella   Andy Gup

Feel free to join in the conversations, share ideas or just listen in to see what’s going on.


Posted in Developer | Tagged , , | Leave a comment

ArcGIS Developers: ESRI Social Media, Networking and Resources

The value of social media and networking today is becoming more and more important…  The true value becomes apparent when when people in the community come together, share ideas and grow from that experience.

Social media networking is the process of interacting with other individuals through the specific social media tool or community. For example, you could talk to people with similar interests in a forum or communicate with them through a platform like Twitter. 

In the past, traditional tools such as forums and blogs have been the mainstream vehicles for asking questions, interacting with others, providing feedback and publishing information to the community.

With the growth of Web 2.0 however, ESRI and the EDN Team have been helping you connect with others in the user community by using social media and participating in networks such as Twitter, Delicious, YouTube and Facebook.  While there are different use cases for each tool, the one thing they all have in common is that they allow us to share information, discover others in the community with similar needs and interests and provide some type of feedback.

So, if you are interested in connecting with us and others in the online community, asking questions, participating in the conversations, sharing ideas or just seeing what’s going on, be sure to visit the new EDN page.  Here you will find all of our social media resources and links in one location so you can get connected too.  You’ll also find the resources

In addition to these quick links, you’ll find access and tools for interacting with other users and sharing your work and ideas throughout the ArcGIS Resource Centers.



Posted in Developer | Tagged , , | Leave a comment

9.2 SP6 Mobile Server and Client SDK Patch released!

Today we released a general patch titled ArcGIS Mobile Server and client SDK Patch for ArcGIS 9.2 Server for the Microsoft .NET Framework that you can install on top of ArcGIS Server .NET 9.2 SP6.

This patch is a culmination of hot fixes and we felt that it was important we share these fixes with all clients that are still using 9.2 SP6 and cannot migrate to 9.3.1 in the near future.

Please see the link above for details on the patch.

Mobile team



Posted in Developer, Mobile | Tagged , , , , | Leave a comment

ArcGIS RIA Developers: Check out Tour de Flex

Six ArcGIS API for Flex sample apps are now available on Adobe’s Tour de Flex component explorer. If you aren’t already familiar with Tour de Flex, it is a great resource for all Flex developers. Adobe Tour de FlexIt gives you finger-tip access to hundreds of live AIR and Flex sample applications such as common components, skinning effect and more along with source code. 

Our samples include a map drawing tools app, thematic-based tax lots, open a pizza store and the Sample Flex Viewer.

If you have ideas for others samples that you’d like to see up there be sure to leave us a comment.


Posted in Developer | Tagged | Leave a comment

ArcGIS Developer Tip #4: How to use the ArcGIS 9.3.1 Visual Studio Snippet Editor

The ArcGIS Snippet Editor is a new feature of the ArcGIS integrated development environment (IDE) that comes with the ArcGIS Desktop and ArcGIS Engine software development kit (SDK) for 9.3.1. 

The snippet editor allows you to create, edit and manage ArcGIS snippets in Visual Studio 2005 or 2008.  It supports both VB.NET and C# code snippets.

Be sure to check out this video as it illustrates how to accomplish the following:

Snippet Editor Manager
Create a snippet (Function, Sub or Statement)
Auto-reference ArcGIS assemblies
Set the product, version and extension
Set title, description and help string
Store in a custom file path location

Snippet Finder
Search and find snippets by key word
Insert snippets into code windows

You’ll also find other helpful tips and tricks such as how to set the default snippet editor directory in Visual Studio for a system with Windows Vista.



Contributions from Don Kemlage, ArcGIS Product Engineer

Posted in Developer | Tagged , , | 1 Comment

ArcGIS Mobile Preconference Seminar

If you are planning to attend the users conference this year and are looking for a hands-on deep-dive into the ArcGIS Mobile SDK, we will be hosting a preconference seminar on Sunday. There is an additional cost of $325.00 for this event.

Here is a link to the seminar details

Mobile Team

Posted in Developer, Mobile | Tagged , , | Leave a comment

SOE Patterns

There are two parts to a successful pattern with respect to Java Server Object Extenstion (SOE) development which emulates Java EE patterns of separating reusable business logic from specific service level logic.  David has a terrific introductory post to SOE’s which you should read if you are new to SOE’s.  He profides links to the online documentation as well to help get you started. 

Reusable Business Logic pattern for SOE’s. 
SOE’s extend Server Objects by producing a feature capability on a Server Object.  At 9.3.1, Java supports SOE’s with Map Server Objects, so Java SOE’s produce a feature capability on Map Server Objects.  There are multiple steps to synchronizing a SOE feature capability with Map Server Objects.  First we must deploy/register the SOE so the ArcGIS platform can use it and then we need to enable it on a Server Object Type.  For Java, we are currently limited to Map Server Objects.  Once we enable SOE’s on a Map Server Object, it’s feature capabilities are available on all Map Server Objects.  Given this design feature, the Reusable Business Logic pattern promotes encapsulating all business logic (feature capabilities) in SOE’s such that they can be used across all Map Server Objects they extend.  Examples would be, export layer as shapefile or ESRI GRID, Layout View for printing or cartographic products, distance calculations to features, proximity analysis, etc.  

Service pattern
Once our SOE has the encapsulated reusable business logic as a feature capability on all of the Map Server Objects, we can now extend the Web ADF to create service level features.  This way we don’t put all of our application logic into SOE’s which are specific to a single Map Service.  This could cause performance/scalability issues in an enterprise class architecture so by using this pattern we aim to decouple the service level logic from the business level logic. 

Example Architecture
As an example of using both parts of this SOE pattern, lets examine a hypothetical Insurance Application which requires spatial functionality to help determine a risk assessment to be used in the underwriting process.  The application features and results are detailed below: 
Application Features:

  1. Geocode an address
  2. Determine distance to facilities
  3. Determine proximity to natural hazards and zones
  4. Determine what rating territory address is located in

Application Results

  1. A Spatial Risk Assessment value (number)

Using the pattern described above, we would abstract the features into the SOE and use the Web ADF for specific application service level logic.  An example of breaking our features into SOE’s and Service extensions are offered below: 
Reusable Business Logic:
Distance SOE:

  1. Parameters: Takes an address and an array of n layers. 
  2. Returns: An array of distances from address to the layers submitted.

Proximity SOE:

  1. Parameters: Takes an address, an array of  n layers.
  2. Returns:  A Proximity value and/or geometry representing proximity values spatially.

Assessment SOE:

  1. Parameters: Takes an array of distances (double), an array of proximity values (double), and a rating territory (integer)
  2. Returns: A Spatial Risk Assessment value (double)

Service Logic: 
Spatial Risk Assessment Task (Extend the Web ADF Task Framework):


  1. Address, user can select a feature address from the map. 
  2. Facility Layers, user can select from a list of layers or on the map.
  3. Hazard Layers, user can select from a list of layer or on the map.
  4. Hazard Zones, user can select from a list of layers on the map.


  1. A Spatial Risk Assessment value for the address submitted.

The user application workflow presents a Web Application that has a Spatial Risk Assessment Task which collects an address parameter from selections made by users either by entering an address into a form or selecting a location on a map.  Once the task has the address it then goes through the following workflow: 

  1. Gets distances from Distance SOE.
  2. Gets Proximity values from Proximity SOE
  3. Searches Rating Territory DB/layer to get a rating territory from address

Now the Web Application Task submits the return values of distances, proximity, and rating territory to Assessment SOE for a Spatial Risk Value associated with the address submitted or selected from the map and returns this to the user. 
This example architecture separates out reusable spatial business logic from map service specific logic and data.  You could encapsulate all of this logic in a single SOE, but this is not a preferred approach for enterprise applications as it would be bound to the service level of the application and not reusable in the enterprise.




Posted in Developer | Tagged , , , , , | Leave a comment

ArcGIS Developer Tip #3: Passing multiple values to the .NET Geoprocessor Class

The ArcGIS ArcObjects .NET Geoprocessing Class provides you with an easy way to execute GP tools in a pure .NET programming environment.  In some cases however, you may want to pass in multiple input values e.g. feature classes, just like you can with the GP tool dialog in ArcCatalog. 

So how can you accomplish this with .NET Geoprocessor class?

Well actually, there are three ways:

1. Use the parameterized constructor and separate the string parameters with a “;”.

Dim union As ESRI.ArcGIS.AnalysisTools.Union = New ESRI.ArcGIS.AnalysisTools.Union(“c:temptest.gdbstates;c:temptest.gdbcounties”, “c:tempUnion_Output.shp”
GP.Execute(union, Nothing) 

2. Use the object properties and separate parameters with a “;”.

Dim union As ESRI.ArcGIS.AnalysisTools.Union = New ESRI.ArcGIS.AnalysisTools.Union()union.in_features = “C:temptest.gdbstates;C:temptest.gdbcounties”
union.out_feature_class = “C:tempUnion_Output.shp”
GP.Execute(union, Nothing) 

3.       Use a GpValueTableObject (probably the least widely known method, but very powerful!)

‘Feature Class Objects
Dim gpUtils As IGPUtilities2 = New GPUtilitiesClass()
Dim inFeature1 As IFeatureClass = gpUtils.OpenFeatureClassFromString(“C:temptest.gdbstates”)
Dim inFeature2 As IFeatureClass = gpUtils.OpenFeatureClassFromString(“C:temptest.gdbcounties”)
‘Create and populate a Value Table Object
Dim vt As IGpValueTableObject = New GpValueTableObjectClass()       
Dim obj1 As Object = inFeature1
Dim obj2 As Object = inFeature2
‘Run the Tool
Dim union As ESRI.ArcGIS.AnalysisTools.Union = New ESRI.ArcGIS.AnalysisTools.Union()
union.in_features = vt
union.out_feature_class = “C:tempUnion_Output.shp”
GP.Execute(union, Nothing)

NOTE: If you want to union more than two feature classes then you will need an ArcInfo-level license.   See these links for more info:    

How to Access Licensing and Extensions for the Geoprocessor
Licensing for Geoprocessing Tools

Learn more about programming with GP in .NET.  

What is Geoprocessing?
Geoprocessing Class
How to access geoprocessing tools and toolboxes
How to run a Geoprocessing tool

EDN Team

With contributions from Ralf Gottschalk, ESRI Technical Support

Posted in Developer | Tagged , , | 3 Comments

ArcGIS Plug-ins and Eclipse Bundles

Starting with 3.2 Eclipse began to use packages instead of version numbers for each major release:

3.2.x = Callisto
3.3.x = Europa
3.4.x = Ganymede

Generally speaking, our Eclipse plug-ins work with Callisto and above. The server plug-ins require Europa and above. But there are some exceptions. Eclipse’s update manager usually does a pretty good job so you will normally not be able to install plug-ins that aren’t supported by a particular instance of Eclipse. For example, trying to install ArcGIS server plug-in on a non-JavaEE version of Eclipse will result in an error.

It can be confusing to tell which version of Eclipse one has, follow these steps to confirm your version:

  • Select ‘About’ in help

  • Your Eclipse version will show up in the ‘About Eclipse Platform’ dialog.

  • Further configuration details can be viewed by clicking the ‘Configuration Details’ button. 

The most popular bundles appear to be Eclipse IDE for Java EE Developers and Eclipse IDE for Java Developers. Our server plug-in obviously requires the Eclipse IDE for Java EE Developers bundle.  You can still start with the Eclipse Classic SDK bundle although our plug-ins will not work with the classic bundle of Eclipse. Specifically our core plug-ins depend on the org.apache.xerces plug-in which is not available in the SDK bundle, but is included in the Java EE and Java bundles.  If you choose to use the Classic SDK bundle, you will be required to manage the dependency plug-ins manually starting with the xerces plug-in.  Since 9.3, we introduced a new feature in the server plug-ins to support drag-and-drop style of web application design.  This feature is only available in Europa and above. So the server plug-ins now cannot be installed in Callisto.

Equinox P2

As of Eclipse 3.4/Ganymede M6, the Eclipse SDK contains a new provisioning system called Equinox/P2 which replaces the Update Manager as a mechanism for managing Eclipse, searching for updates, and installing new functionality through plug-ins.  Experienced users will notice the new software update dialog which replaces the ‘Find and Install/Manage Configuration’ approach.  The big change is the concept of ‘dropins’ folder which is a default ‘watched’ directory and scanned during start up.  This allows for changes to be immediately applied to a running system.  Plug-ins and features added to the dropins folder are properly installed into the system rather than being forced in by prior versions using the plug-ins folder concept.  Plug-ins installed via dropins behave exactly like plug-ins installed via  the user interface.  Something to note is that updating plug-ins located under the dropins folder through the UI will result in updated plug-ins being saved under the main eclipse/plugins & eclipse/features folders and not under the dropins hierarchy as one might expect.

If you use multiple eclipse installations, you can configure a central shared dropins folder where you can put Eclipse plug-ins used by all your Eclipse installations which links back to your central location. 

The Equinox p2 update UI supports drag and drop of an update site URL straight from your browser or from your OS file manager for local sites.  If you choose to use the UI to install plug-ins they lose control of where Eclipse installs the plug-in as all plug-ins/features go to the default location, which can be a bit overwhelming. 

Finally, you can also configure Eclipse 3.4 to use the legacy update manager which reverts Eclipse back to the ‘Find and Install/Manage Configuration’ approach from previous versions. 

Looking Forward

Eclipse Galileo arrives in 3 weeks on June 24, 2009. 


Posted in Developer | Tagged , , , , | Leave a comment

ArcGIS Developers: What is your #1 enhancement for the code galleries?

Now that many of you have had the opportunity to use the Code Galleries we would like to get your feedback on some ideas we had for future enhancements.


To get the discussion started, we’ve posted a new poll here with the following choices:

-          Contact the Author (email directly)

-          Discussion Forums (for highly active entries)

-          Collaboration Support (project hosting/collaboration)

-          Versioning Support (upload ver 1.0, 1.1…)

-          Sort by date added (easier to find newest)

-          Improved Search (search across all galleries)


Please take a moment to vote for the #1 enhancement that is most important to you.  If you have any other feedback related to Code Gallery enhancements, we encourage you to leave your comments below.




EDN Team


Posted in Developer | Tagged | 2 Comments