EDN (ESRI Developer Network)

EDN: ESRI Developer Network

EDN (ESRI Developer Network)

Starting with ArcGIS version 9.3 in July 2008, developers are encouraged to use the new ESRI Resource Centers to access SDK documentation, samples, product technical information, as well as tools and resources for interacting with communities of ArcGIS developers around the world.

For the time being, this EDN website here will continue to exist and be the repository for developer content for ArcGIS versions 9.2 and prior.  It will no longer be used for ArcGIS version 9.3 nor beyond.

Why?

Our goal here is to create one single website for all users' product usage resource needs.  At version 9.2 and prior, developers used the EDN website and end-users of ESRI's GIS software tended to use the ESRI Support Center online. 

Feedback from the user community, as well as our own technology development goals indicate that developers need information about product installation, architecture, administration, and functional usage as much as any other user, and end-users more and more often are making use of information for product customization, components, scripting, programming, and other resources typically associated with application developers.  As our technology continues to grow along with the maturity of information technology, the lines between "user" and "developer" continue to blur and overlap.

So as you use the ESRI Resource Center online, we encourage you to interact with other developers like yourself, as well as GIS end-users and the resources they all use to be successful.  That is the place online where the EDN community will continue to grow, through code sharing galleries, discussion forums, and blogs from ESRI development teams, as well as new community tools and resources upcoming such as open chat, tech workshop webcasts, and a fully wiki'd Knowledge Base technical documentation set.

What about the EDN program?

The ESRI Developer Network software subscription program and its add-on training and support products are not changing. 

Developers around the world have found EDN to be a very cost-effective and simple way to access the entire ArcGIS technology and product base for product customization, implementation, as well as the design and development of applications and systems.   This has been a popular product and is not going anywhere.   Actually, ESRI is committed to making improvements and additions to the subscription program as our leadership position in the geospatial technology industry continues to grow.

 

 

Some of our systems are being upgraded this weekend. As a result, the EDN web site and this blog may be unavailable between the hours of 7:00AM PST and 9:00AM PST on Sunday, May 11th. Our apologies in advance for any inconvenience this may cause.

Listen in on the following podcast interviews for developers who participated in the ArcGIS Server Code Challenge.

  • Kent Riggins, a software engineer with the U.S. Federal Government, briefly discusses his ArcGIS Server Code Challenge entry, Show Results Table Task in ArcGIS Explorer. 
    Listen or download: MP3 [4:10 | 1.94 MB]

  • Keith Fraley, GIS Developer with Shell Oil Company in the U.S., discusses his ArcGIS Server Code Challenge entry, WMS Search and Spatialization Tool for ArcGIS Server. 
    Listen or download: MP3 [5:03 | 2.35 MB]

  • Dave Bowman, 2nd Place winner in the ArcGIS Server Code Challenge, talks about his code sample entry, ArcGIS Server Virtual Tile Server.
    Listen or download: MP3 [8:22 | 3.87 MB]

ArcGIS Server 9.2 Service Pack 5 includes an enhancement to the ArcGIS Server Java ADF which provides support for IBM Portal Server ArcGIS Portlet development. This gives you the ability to create and publish GIS Mapping Portlets inside IBM Portal Server. In conjunction, SP5 includes a plug-in for the IBM Rational Application Developer (RAD) environment so that you can create and deploy those ArcGIS Portlets more efficiently. The following documents have been added related to this SP5 enhancement.

New article - Install ArcGIS RAD plug-in
Programming language(s): Java
Development platforms: ArcGIS Server
After installing SP5 you will neeed to update the IBM RAD IDE to leverage the ArcGIS RAD plug-in. This article walks you through that process.

New article - Developing ArcGIS Portlet applications in RAD
Programming language(s): Java
Development platforms: ArcGIS Server
This article takes you through the basic steps required to create an ArcGIS Portlet application using the plug-in. The sample application displays a map, toolbar, table of contents, map overview, results, results details, and an empty task pane. 

(The following post was contributed by Divesh Goyal and the Java development team) 

Updated 4/14/08 - Added link to a downloadable ZIP file containing the plug-in. 

New tool - Eclipse plug-in for debugging Java ArcObjects code
Programming language(s): Java
Development platforms: ArcGIS Engine, ArcGIS Server

As we approach another developer summit, I am glad to announce the availability of an Eclipse plug-in for ArcGIS Server and ArcGIS Engine Java Developers that will greatly simplify debugging ArcObjects code.

About the plug-in

One of the most invaluable tools that developers have at their disposal is a debugger through which they can step through code one statement at a time and inspect objects in the application. As most of you may already know, java classes in the  ArcObjects API are really only proxies to underlying COM ArcObjects. As a result, examining these proxies in the debugger only reveals their internal details and not the state of the ArcObjects. This makes it difficult to find out information such as the co-ordinates of an Geometry, or the Layers in a MapServer. Consequently, developers have to sprinkle their code with System.out.printlns and analyze traces on the console to get this information. This approach is inconvenient and time consuming.

With this new Eclipse plug-in, Java developers can examine the state of the underlying ArcObjects right in Eclipse IDE's Debug Perspective by enabling the "Show Logical Structure" option on the Expression and Variables window. Here’s an example of a Point object without the “Show Logical Structure” option enabled.

This information fails to provide any valuable insight into the underlying ArcObject and is not helpful in reasoning through a workflow while debugging. Now here’s the logical representation of the same object using the “Show Logical Structure” option enabled.

The logical representation presents more comprehensible information about the underlying ArcObject's state. This state is defined by the no-argument getter methods on it. You might sometimes see exception messages like “Exception Occurred: com.sun.jdi.InvocationException occurred invoking method” in the logical representation. This is normal and happens when some property of the ArcObject is not valid in the current context of the application.

The underlying ArcObjects could be running remotely in a separate process as in the case of ArcGIS Server web applications, or in the same process like in ArcGIS Engine applications. Thus, both Engine and Server developers can take advantage of this plug-in to debug their applications. I am very excited to share this plug-in with you, and look forward to your feedback. Code on!

How to get the plug-in

Follow these steps to download and install the plug-in from the EDN Website:

  1. In the Eclipse workbench, go to Help > Software Updates > Find and Install
  2. Select Search for new features to install, and click Next
  3. Create a New Remote Site for the URL  “http://downloads.esri.com/EDN/java/plugins/eclipse” 
  4. Enable this remote site and click Finish.
  5. Expand the EDN tree in Search Results, and select the ArcGIS Debug feature.
  6. Proceed to install the plug-in, and restart the workbench when prompted.

Added 4/14/08 - If you are unable to access the plug-in from the URL in Step 3 above, we have also made it available as a downloadable ZIP file here.

More podcasts related to the upcoming DevSummit have been posted on the Conference's Event page. Listen in to get a preview of some of the sessions that we think will be most popular.

  • Jeremy Bartley & Jayant Sai chat about building mash-ups using the ArcGIS Server JavaScript API.
    Listen or download: MP3 [16:53 | 7.73 MB]
  • REST and ArcGIS Server is a hot topic for Keyur Shah & Jeremy Bartley.
    Listen or download: MP3 [13:15 | 6.10 MB]
  • Deane Kensok provides a preview of the "Enhancing Your Applications with ArcGIS Online" session.
    Listen or download: MP3 [6:25 | 2.97 MB]
  • ASP.NET AJAX and the ArcGIS Server Web ADF are discussed by Rex Hansen and Art Haddad.
    Listen or download: MP3 [10:14 | 4.72 MB]

We want to understand you the Developer. Please complete this quick 3 question survey and let us know:

  • Why do you code?
  • As a developer; when/where do you get the best ideas?
  • What inspires you as a programmer?

In addition to the rollout of 200+ new topics aimed at Java developers, there were a couple of other content updates last week.

New article - How to leverage the schema cache
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Desktop, ArcGIS Engine
This new article discusses how to best use the schema cache within an ArcObjects application. The schema cache is a cached snapshot of the geodatabase system tables (often referred to as the geodatabase schema). In an enterprise environment the geodatabase system tables (geodatabase schema) are in constant use by ArcGIS. Caching this schema locally can reduce database roundtrips by using the locally cached representation of the geodatabase schema.

NIM012341 - ArcGIS Server EDN link to monitoring performance is broken
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Server
The Overview of ArcGIS Server application performance tuning article has been updated to correctly point to the topics that discuss performance monitoring capabilities and options in ArcGIS Server.

Over the last few months the Java Engine team has been feverishly producing over 200 new help topics, most of which include code snippets. Since these topics are applicable to 9.2 we've decided to publish them now rather than waiting to deliver them with the next software release. You can find the topics in a new ArcObjects Developer Guide section within the Building cross-platform solutions with ArcGIS Engine using Java book in the EDN Documentation Library. The topics are grouped into a number of sub-sections that focus on different areas of the ArcGIS architecture. These include:

As an added bonus, each of these new topics also includes the comment feature! You can use it to ask for additional clarification on the topic, offer suggestions for other related topics of discussion, or provide your own expertise in that area to the Java community at large.
The first in a series of podcasts about the upcoming DevSummit is now available. Listen to Rob Elkins and Jim Barry, from ESRI’s Product Development team, talk about what you will see at this year's conference. MP3 [15:40 | 7.21 MB]
by eleanord | 1 Comments
Filed under:
The Developer Summit conference calendar has been posted, along with descriptions of the content in the pre-conference seminars (free!) and the technical sessions. Check it out here or go to www.esri.com/devsummit. And, don’t forget to take advantage of the early bird special rates for the Developer Summit. Early bird rates are good up until February 15th. The Developer Summit is March 17 – 20, 2008 in Palm Springs, California.
by eleanord | 0 Comments
Filed under:

This week the latest version of the ArcGIS Explorer SDK was posted. This release of the SDK coincides with the release of Build 440. While there were no API changes in Build 440, the updated SDK features a Custom Task Style Guide and example code for each of the E2API classes as in the View3D class shown below.


 

The following content changes related to ArcGIS Desktop, ArcGIS Engine, and ArcGIS Server development have been made this week.

New article - How to extrude features in globe
Programming language(s): C#
Development platforms: ArcGIS Desktop with 3D Analyst
Extrusion is the process of stretching a flat 2D shape vertically to create a 3D object. It is a simple way to create three-dimensional symbology from two-dimensional features. For example, you can extrude building polygons by a height value to create realistic building shapes. The three basic geometry types—points, lines and polygons—all support extrusion. This article explains the process of extruding a feature layer using different extrusion options in globe. Note: At the publish date, the code fragments in this document are provided in C# only. VB.Net code will be added at a later date.

NIM010762 - Document where temporary rasters are created
Programming language(s): VB6
Development platforms: ArcGIS Desktop, ArcGIS Engine
The Working with ArcGIS Spatial Analyst objects article has been updated to document where temporary rasters are created by default and how to control their location using IRasterAnalysisEnvironment.

New sample illustrating animated zooming with dynamic display
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Engine
The sample Dynamic display animated zoom demonstrates using a rubber banding envelope to animate zooming in and out on the map in dynamic mode.

New sample & updated discussion on the EditorTask control in the Web ADF
Programming language(s): C#  or VB.Net
Development platforms: ArcGIS Server
The EditorTask control provides a suite of tools for Web-based editing of feature layers in ArcGIS Server map services. It can be customized and extended to filter attributes, manage tools, handle events during the editing process, and manage panels. Details of the customization options have been added to the EditorTask control discussion topic. In addition, the Common Custom EditorTask sample has been added. This sample illustrates both of the options the EditorTask offers for developing a custom solution:
  1. Using the out-of-the-box EditorTask, add custom functionality by handling EditorTask events in a page.
  2. Create a custom Web control by subclassing the EditorTask and its child controls.

While content updates have continued to roll on over the past month, I have not been around to post about them. Hopefully, you'll excuse the delay. Below is a recap of the more signifcant updates made during my absence. Additionally, lots of topics were updated to fix broken links and formatting issues that were noted by EDN readers. These types of updates are not included in the list below.

Enhanced Export topology errors sample
Programming language(s): VB6
Development platforms: ArcGIS Desktop
The Export topology errors sample has been enhanced to work with high precision and File geodatabases. The Export Errors sample can be used to export topology errors and optionally, exceptions, to Shapefile, Personal or File Geodatabase format. Errors can be exported based on three criteria; shape, type of topology rule, or topology rule.

Create and load a personal geodatabase sample updated
Programming language(s): VB6
Development platforms: ArcGIS Desktop, ArcGIS Engine 
The Create and load a personal geodatabase sample has been updated to include license initialization as well as minor changes to the way the spatial reference and geometries are created. The update was made in response to an EDN user comment reporting an issue with the sample.

Enhanced Import signposts sample
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Desktop, ArcGIS Engine
The Import signposts sample has been enhanced to widen columns on the output feature class and to provide geoprocessing help on the tool. The sample demonstrates how to create a tool that generates a new signpost feature class and signpost streets table from data in Tele Atlas Dynamap or NAVTEQ NAVSTREETS format.

Updated Custom map selection commands sample
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Engine
The Custom map selection commands sample has been enhanced based on feedback and comments from EDN readers. The updated version corrects the issues reported and simplifies the code. The sample illustrates a Select Features tool and a Clear Selected Features command that can be used in conjunction with the MapControl, PageLayoutControl, and ToolbarControl.

NIM009360 - Corrected invalid remarks about the usage of the IElement.Locked property
Programming language(s): C#, C++, Java, VB6, VBA, VB.Net, or VC++
Development platforms: ArcGIS Desktop, ArcGIS Engine, ArcGIS Server
The Locked property on the IElement interface in the esriCarto library can be can be set to 'TRUE' to stop users from modifying a particular element. Prior to this correction, the remarks incorrectly stated that the property needed to be set to 'False' to stop such modifications.

Updated ArcGIS Server .NET samples
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Server
A number of samples targeting web application development were updated to improve their usability. These include the following samples that illustrate functionality available in the ArcGIS Server APIs:

  • ArcGIS Add Dynamic Data—demonstrates adding dynamic layers to a pooled ArcGIS Server map server object first using the ArcGIS Server ArcObjects API and then using the Web ADF and the ArcGIS Server local data source implementation classes.
  • ArcGIS Add Graphics—illustrates how to add custom graphics to an ArcGIS Server service and display the results in a Web ADF Map control.
  • ArcGIS Buffer Geoprocessing—shows how to work with an ArcGIS Server Geoprocessing service using the Web ADF GeoprocessingResourceManager and GeoprocessingFunctionality class.
  • ArcGIS Server Internet Connection to a Service—shows how to connect to an ArcGIS Server Web Service endpoint using precreated Value objects and a proxy class included with the Web ADF.
  • ArcGIS Server Local Connection to a Service—This example illustrates how to connect to a map server object and create a server context.
  • ArcGIS Select Buffer Tool—illustrates how to show selected features and buffer geometry with ArcGIS Server data sources in the Web ADF.

Also updated were the ArcIMS Select Buffer Tool and ArcIMS Connect to a Service samples using the ArcIMS API.

Finally, updates were also made to the following samples that showcase functionality in the Web ADF Common API:

  • Common Add Custom Tool—demonstrates how to add a custom tool, command, and dropdown to a Web application using the Web ADF.
  • Common Add Dynamic Data—illustrates adding dynamic resources to a Web ADF MapResourceManager, Map, and Toc. Three different types of resources are presented: ArcGIS Server Local, ArcGIS Server Internet, and ArcIMS.
  • Common Add Graphics—demonstrates how to add a custom graphics layer to a Map control.
  • Common Custom Data Source—illustrates how to add a custom data source to the Web ADF.
  • Common Access the ArcGIS Server ArcObjects API—shows how to access ArcGIS Server locally, work with the ArcObjects API via a MapResource, and iterate through the layers in a map server object.
  • Common Access the ArcGIS Server SOAP API—details how to work with an ArcGIS Server service using the SOAP API implementation that is part of the Web ADF.
  • Common Access the ArcIMS API—demonstrates how to access the ArcIMS API via an existing Map control and iterate through the layers in an ArcIMS image or ArcMap service.
  • Common Attribute and Spatial Query—illustrates how to use the generic Common API interfaces in the Web ADF to query a feature layer within a resource.
  • Common Use the Connection Manager—demonstrates how to use the Connection Manager to manage connections to ArcGIS Server and ArcIMS.
  • Common Identify—shows how to use the generic Common API interfaces in the Web ADF to identify features within multiple layers, in a resource.
  • Common Query All Layers—illustrates how to iterate through a set of map resources in a Map control to query each feature layer.
  • Common Set Visible Layers in a Map and Toc—demonstrates how to use MapFunctionality to change the visibility of layers associated with a resource.

The following content changes related to ArcGIS Desktop, ArcGIS Engine, and ArcGIS Server development have been made this week.

Updated Merge Network Features sample
Programming language(s): VB6
Development platforms: ArcGIS Desktop
The Merge Network Features sample has been enhanced based on feedback from the ArcGIS Desktop Discussion Forums to support the same functionality that is available in the Merge command contained with the ArcMap Editor.  Specifically, it now allows you to select from which feature the attributes should be retained when the features are merged.

Deploying your custom ArcMap command
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Desktop
You can deploy your ArcMap customization in a number of ways. How to share a custom ArcMap command (DLL) created with Visual Studio 2005 illustrates a quick method of sharing your dll for testing purposes prior to creating a full installer.  

NIM010997, NIM010625 - Resources missing from select VB & VC++ samples
Programming language(s): VB and VC++
Development platforms: ArcGIS Desktop, ArcGIS Engine
In some samples, resources for the sample were part of a subdirectory called \res. In a few cases, this directory was missing from the downloadable ZIP file of the sample. This issue has now been corrected.

Each of the following Controls-related samples has been updated to include the missing \res folder.

In addition, the Draw using ADODraw with the ESRI OLE DB provider sample was also missing the \res folder.

How to create a custom install program article updated
Programming language(s): C# and VB.Net
Development platforms: ArcGIS Desktop, ArcGIS Engine
The How to create a custom install program article was updated to improve clarity in response to a comment posted by a user.

Geoprocessing documentation updates
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Desktop, ArcGIS Engine
Posted a new article provides information on How to work with tool return values. Also a slight addition was made to the article How to work with geodatabases and the geoprocessor and a number of cross-references to other topics were added in order to better connect this overview with more detailed documentation. Both of these changes were in response to issues reported by EDN readers. 

How to add display caching
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Desktop, ArcGIS Engine
Updated the code in the article How to add display caching to correct a compile error reported by an EDN reader.

Code correction in the Display library overview
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Desktop, ArcGIS Engine
Updated some code in the overview document for the Display library to correct an error reported by an EDN reader. 

Best practices for using dynamic display
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Engine
Revised the article Best practices for using dynamic display to correct issues reported by two EDN readers. 

New sample demonstrating access restrictions for a web application
Programming language(s): C# or VB.Net
Development platforms: ArcGIS Server
The Common Security sample shows how you can use Forms authentication and a user's login to restrict access to the web application and to Web ADF functionality within the application.

New PocketPC samples for the Mobile ADF
Programming language(s): C#
Development platforms: ArcGIS Server using the Mobile ADF
The Mobile ADF for ArcGIS Server .NET is showcased in these three new samples for the PocketPC environment:

  • ESRI Construction—Sample application enabling field workers to perform data collection that includes geometry creation and attribute updates
  • GeoData Relation—Geodata services in ArcGIS Server are used to publish geographic data, related tables, and standalone tables that can then be consumed during common workflows and user interactions with the Mobile ADF applications. This sample illustrates how to consume related tables from an ArcGIS Server geodata service.
  • Live Traffic—This sample gets information from a public web service that disseminates traffic status. It illustrates how to incorporate data from non-ArcGIS Server sources into your Mobile ADF application.
More Posts Next page »