Welcome to ESRI Blogs

Which ESRI Web mapping API should I choose?

Since the release of ArcGIS Server, ESRI has offered Web application developer frameworks (ADFs) for .Net, and Java. Last year, ESRI also released Web mapping APIs for JavaScript, Flex, and Silverlight, further expanding the choices for developers.

One of the most common questions we’ve received at the ESRI User Conference and other recent seminars is: “Which API should I use?” When presented with this question, I like to respond with some questions of my own.

Which platform are your developers most comfortable with?

The APIs are functionally very similar, and often the most important question is not “What do you want to do?” but rather “Which platform are your developers most comfortable with?” If you’ve been working with the Microsoft stack and your developers are inclined in that direction, .Net and Silverlight look like good choices for you. Using similar logic, if your developers have spent the past 10 years adding custom scripts to your ArcIMS applications, they’ll probably find the JavaScript API to be a nice fit.

Choosing a platform that your developers already know and enjoy can save you ramp-up costs and keep morale high. This is where the variety of APIs offered becomes a benefit instead of a burden.

What’s the experience level of your developers?

Many beginning developers find the JavaScript, Flex, and Silverlight APIs to be easier to learn than the Web ADFs because they have a more basic architecture. These APIs also have online Resource Centers, where you can watch videos, read tutorials, and examine working samples that are designed for beginners. ESRI has made sample ArcGIS Server deployments available so that you can practice with the APIs. In fact, you can get a JavaScript mapping application running on your machine with just Notepad and an Internet connection.

In contrast, some developers like the deep functionality and familiar coding patterns of the .Net and Java ADFs; especially developers who have already worked with a lot of .Net, Java, or ArcObjects in the past.

Are browser plug-ins an option?

The ArcGIS APIs for Flex and Silverlight require browser plug-ins. If your application absolutely cannot require a plug-in, the JavaScript API or one of the ADFs will need to be your choice.

The ArcGIS API for Flex requires the Flash plug-in, which Adobe asserts is present in “99% of Internet-enabled desktops in mature markets”. The Silverlight plug-in has not yet reached the same level of ubiquity, but can be expected to gain ground.

Plug-ins come in different versions, which may also present a hurdle in getting end users to experience your Web site in the way you expect. If you choose to use Flex or Silverlight, it’s wise to consider how flexible your clients are in their ability to upgrade plug-in versions. The ArcGIS API for Flex requires Flash Player 9 or above, or Adobe AIR. The 1.0 release of the ArcGIS API for Silverlight requires Silverlight 2 or above.

Future editions of these APIs may require higher versions of the plug-ins. Also, any functionality that you add that is not native to the ESRI APIs may require higher versions.

Do you want to use an IDE? If so, which one?

When you choose an API, you are also making choices about the environment where you’ll spend your time coding. Flex users are probably going to need Flex Builder. .Net and Silverlight users will be doing work in Visual Studio or Visual Web Developer Express. Expression Blend is another option for Silverlight developers. Java developers can use Eclipse or NetBeans. JavaScript programmers probably have the most choices, including the option to just write code in a text editor.

The pros and cons of these IDEs are beyond the scope of this post. Some IDEs cost money, but the time they save you in designing and debugging applications may help you recuperate the cost. If funds are tight, you may be able to get by without an IDE, especially if you are using JavaScript. Many commercial IDEs offer trial versions or free development versions that can help you decide if you want to make the purchase.

Do you need to edit features over the Web?

The .Net and Java ADFs offer access to fine-grained ArcObjects, which can be used to edit feature geometries. The ADFs contain out-of-the-box tasks (widgets) for basic Web editing operations. If you need to build an application with Web editing right now, one of the ADFs is your most likely option.

Web editing is planned for the JavaScript, Flex, and Silverlight APIs at the release of ArcGIS Server 9.4 in 2010.

Do you need to overlay basemaps from Microsoft or Google?

Your organization may require you to use base data from Microsoft’s Bing Maps (formerly Virtual Earth), or Google Maps in your application. This can affect your decision of API.

  • Bing Maps is supported as a layer in the ArcGIS APIs for JavaScript, Flex, and Silverlight, as well as the .Net ADF. There is also an ArcGIS JavaScript Extension for the Virtual Earth API.
  • Google Maps is available in the ArcGIS JavaScript Extension for the Google Maps API.

Are you more comfortable with established technologies or emerging technologies?

Some organizations approach new technologies with caution, whereas others jump at the chance to develop with the newest thing. Your organization’s attitude toward emerging technologies is important to consider, especially if you’re choosing between something like JavaScript, which has been around “forever”, and Silverlight, which just came on the scene in late 2007. This question is largely a matter of opinion, but can tip the balance in organizations where opinions run strong.

Have you talked with others who have made this decision?

ESRI conferences, forums, user groups, and blogs are a good place to learn from people who may have gone through a similar decision process. In fact, many of you who are reading this post may have additional advice, insight, or opinions on this question to share with others who are making the decision. Have you gone through this process before? Did you make a good choice? Is there anything you would have done differently? Leave a comment here.

Contributed by Sterling Quinn of the ArcGIS Server software development team.

Published Monday, October 19, 2009 11:14 AM by sterlingdq

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: Which ESRI Web mapping API should I choose?

My 2 cents... Avoid the client side components of the ADFs. Use the light-weight clients to hit the REST and/or SOAP API's, and when you need to get down and dirty, write your own service that will use the ADF to get at ArcObjects. This may be a *little* more work that using the ADF's, but if your app is beyond trivial, you'll need all the same skills anyhow. The major difference is that your app will be much easier to upgrade over time (b/c of the loose(er) coupling to the server), and will likely result in a faster web app. But hey - this is just my 2 cents ;-) Dave
Monday, October 19, 2009 11:43 AM by Dave Bouwman

# re: Which ESRI Web mapping API should I choose?

For almost all general public facing web apps, I would go with the REST API either directly or accessed via GMaps, BingMaps, or OpenLayers (unoffical) API extenstions. This gives you the flexibitly to leverage any framework you are already using and comfortable with. Any use case that would not be well covered by that API is likely complex enough as to require some user education and selection or would be appropiate for use within a knowledgable group.
Monday, October 19, 2009 11:59 AM by Matt Priour

# re: Which ESRI Web mapping API should I choose?

I still think the “What do you want to do?” question is valid. Also, "how quick do I want to get it done?" should be asked. And, lastly, "What is the industry trend?"
Monday, October 19, 2009 12:56 PM by MapsRus

# re: Which ESRI Web mapping API should I choose?

We've been told by our ESRI supplier that from 9.3 the Web ADFs are pretty static aside from bug-fixes. To me this implies that if you use the Web ADF now for a new develelopment, you're going to be on an out of date platform very soon. Does anyone have any comments on this?
Monday, October 19, 2009 7:22 PM by Dan

# re: Which ESRI Web mapping API should I choose?

I'm using the ArcObjects and it's working well. Thanks for sharing some info.
Wednesday, October 21, 2009 3:05 AM by Rick

# re: Which ESRI Web mapping API should I choose?

After spending a year with the ESRI Web APIs, I would question the value of any of the ESRI web development strategies.

A good ArcEngine app is at least maintainable and will run circles around any javascript hokum--and more important, it will address the often complex business problems faced by utilities and other networks.  ESRI should free up the ArcEngine platform and development kit and call it a day.

If you must publish anything to the web, leave it to the Google and Bing APIs.

Wednesday, October 21, 2009 7:47 AM by blekros

# re: Which ESRI Web mapping API should I choose?

We have the .Net version of ArcGIS Server deployed with OOTB web apps and are looking into trying to develop off of the free FLEX viewer sample and can't seem to get it to work. Do you have to use the Flex stuff with ArcGIS Server for the Java Platform or can it be used with ArcGIS Server for the MS .Net framework? thanks.
Wednesday, October 21, 2009 8:21 AM by Chris Folta

# re: Which ESRI Web mapping API should I choose?

my vision of the future,,gis application will RIA, with geoprocessing web services serving,, for RIA choose silverlight or Flex
Saturday, October 24, 2009 10:34 AM by Noureddine Elzaatari

# Dr

Why is there no mention of SOAP as a further alternative? We have worked with both Silverlight and WebADF (and are in the process of deciding how to migrate from ArcIMS). But we have also found significant advantages to using SOAP. To access information or just pass maps to our customers SOAP serves us very well. But with just a single WebService engine we can both provide such information as well as have a viewer. I have written an elementary viewer with HTML, C# and javascript all using SOAP. With a little effort templates for various Map application formats could be created to simplify creating SOAP applications. Much of the functionality a la ArcIMS is exposed to users. WebServices are meant to be the flexible means for writing applications across the internet. Why not promote them more?
Wednesday, October 28, 2009 9:15 AM by Avron Polakow

# http://geo.geek.nz/development/which-web-mapping-api-should-i-choose-silverlight-flex-or-javascript/

Thursday, October 29, 2009 12:23 PM by TrackBack

# re: Which ESRI Web mapping API should I choose?

Online editing will be possible in Client side API like Javascript and flext etc ?
Tuesday, November 17, 2009 2:28 AM by Venkat

# re: Which ESRI Web mapping API should I choose?

After a year of working with the Web ADF for Server 9.3 and then upgrading to 9.3.1 (which I never should have done because it broke every bit of online sample code due to assembly versioning issues) I'm excited about the opportunity to use the Silverlight API.

I went through the samples one by one and found they met most of the basic needs for any future applications we will be developing - not to mention that they <b>actually work</b> the first time if you copy/paste the code into a new silverlight project in VS 2008.

Since I'm still relatively new to ArcGIS programming its important to me that I have a good resource base to support my efforts - read lots of working code to c&p from. :)

We're predominantly a Microsoft house here, so I haven't really given much attention to the javascript and Flex api's, thus cannot really comment about their effectiveness.

Tuesday, November 17, 2009 5:36 AM by Loran

# re: Which ESRI Web mapping API should I choose?

@Venkat - Yes, at the release of ArcGIS Server 9.4 you will be able to perform editing with the ArcGIS APIs for JavaScript, Flex, and Silverlight.

Tuesday, November 17, 2009 3:41 PM by sterlingdq

Leave a Comment

(required) 
required 
(required)