I got this email from a reader a couple weeks ago:

We use several tools that are built as extensions inside ArcGIS as toolbars. Most of these tools are built by other federal agencies (USFS and USFWS). These agencies are hit with cutbacks and budget cuts just like every other government agency. This results in an inability to keep up the extensions with current versions of ArcGIS. Do you know of any type of design/programmatic solutions that could in theory be used to avoid the broken extension problem that I seemed to be plagued with everytime I upgrade my software?

Problem we’ve seen for years. How many friends to do you know still using 9.3.1 because of an extension issue. Now to be fair, this is a problem with many applications and operating systems. My Dad is using Mac OS X 10.6 because some scanning software he uses has never been updated. But here’s the big question from above:

In short is there a way programs can interact with ArcGIS without having to be rewritten everytime a new service pack or upgrade comes along?

Now the kicker for this user is that they are using extensions created by someone else. The trick is to get these under your control. Now you could open up Visual Studio and start coding, but I’d say your better bet is to recreate the geoprocessing using Python and open libraries. That way you’d be software agnostic (well at least besides Python) and not have to worry about what version of ArcGIS you are using. Then I’d leverage Arc.py to call these Python processing scripts and perform the analysis from within ArcGIS Desktop. The best part of this is you can then transport this processing cross platform to any applications you are using. Simply simple!

Nodding

Because the ending as it stands today is very sad:

We just upgraded to ArcGIS 10.1 and it broke all the extensions i use and no updates are available. Hind sight being 20/20 I should not have assumed these tools would work from 10 to 10.1.

Esri gives lots of free Python training classes and Python has no shortage of great documentation.