Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Esri currently offers 3 different web API's that can be freely downloaded.

Are they all equal?

If not, what are the relative strengths/weaknesses of each of these API's?

share|improve this question
    
It would be cool if we had 3 answers and "permit" edits to add or expand each as time goes. Does that violate the GSE policy? –  Brad Nesom Mar 3 '11 at 21:24
    
@Brad since this is community wiki, anyone with at least 100 rep can edit any post. I don't know of a way to "permit" edits only to 3 posts though. OTOH, maybe having finer grained responses would allow users to vote on how relevant each pro or con is. So maybe I should break my answer into 5 responses? –  Kirk Kuykendall Mar 3 '11 at 21:41
    
I consider them equals; perhaps a better way to answer is to describe how they differ? –  mwalker Mar 4 '11 at 16:52
    
@mwalker agreed, title changed. –  Kirk Kuykendall Mar 4 '11 at 18:25
1  
Good summary in the 2011 Esri User Conference Q & A: events.esri.com/uc/QandA/… –  Derek Swingley Jul 6 '11 at 2:26
add comment

6 Answers 6

up vote 10 down vote accepted

From a totally abstract management perspective, the three APIs are equal. They represent code that runs in a web browser, the purpose of which is to display map data to a user over the internet. You can create a successful, meaningful mapping application with any of the APIs.

Furthermore, the impact of each strength/weakness (difference) in each API will vary depending on the audience. Programmers will be keenly interested in language features or drawbacks, your network folks will want to know bandwidth requirements and server prerequisites, the GIS folks will be deeply concerned that the displayed map is truly rendered, and your end users could care less about all of that and just want to do whatever it is they started doing.

So here are some key items about the three APIs:

  • Cross-domain resource handling: Silverlight and Flex can use a "cross domain policy" file that exists on the TARGET server. So, third party map publishers may grant you access to them. With the Javascript API, cross-domain requests are usually handled by implementing a "proxy page" using a server-side language of your choice (PHP, JSP, ASP, etc). This "soft requirement" isn't a huge problem for most servers, but does add another layer of complexity. Note that there's nothing stopping you from using the same proxy page with the plugin APIs, should your desired resource NOT expose the necessary cross-domain files.

  • Graphics: Silverlight and Flex both allow you to easily paint arbitrary pixels on the user interface. Javascript also allows this, but you can quickly overload the browser's capacity without some careful code and preparation. Similarly, operating directly with binary formats or network traffic can only be done in Javascript with the help of web services.

  • Developer Environment: I am biased here. Silverlight is my favorite for developing. the Visual Studio environment is mature, fast, and has a top-notch debugger. Javascript comes in second place; the tools available now are better than ever and always improving, but we can never seem to escape the curse of "ye must test on all supported browsers, then fix those weird things that happen". The Flex environment seems antiquated and bloated, and basically hinders development.

share|improve this answer
2  
its a nightmare to debug javascript! at least for me. –  George Mar 7 '11 at 13:02
3  
@George Between Chrome's builtin debugger, Firebug, and the IE Developer Toolbar, it's not nearly so bad now as it used to be. –  mwalker Mar 7 '11 at 17:18
add comment

Silverlight/WPF Cons

  • Requires a plugin
  • Future is less certain than javascript (HTML5)

Silverlight/WPF Pros

  • Fully supported by Visual Studio
  • Has better multithreading support (at least compared to flex).
  • Better SOAP support (Esri's SOAP is more complete than REST).
share|improve this answer
1  
Silverlight seems like it has lots of advantages for the developer, not so much for a broad base of users... –  DavidF Mar 3 '11 at 18:37
1  
@DavidF - I would say that it's designed for the corporate user that already has sharepoint, .net, and such applications already installed and used by every machine. So deployment over 20,000 machines is relatively easy –  dassouki Mar 3 '11 at 18:56
    
@dassouki - Good point, in those trusted situations WPF XBAP's make sense. I'll update Silverlight to include WPF. –  Kirk Kuykendall Mar 3 '11 at 19:16
add comment

I guess all these answers are good but a bit out dated. Flex and Silverlight were surely very popular compared to Javascript and some might argue that building Application using these APIs was really easy, but the BIGGEST DEFICIT that Flex and Silverlight have is that they are PLUGINS. And that is the cause for their annihilation.

With the onset of HTML5 and Javascript being the integral portion of Web App development, the Future is Javascript API. With Adobe abandoning Flash and Silverlight 5 being the last update by Microsoft, Flex and Silverlight are now redundant technologies.

So if you are starting Web GIS Application development using the ESRI APIs, start learning Javascript API as that is the only future in the near Future.

share|improve this answer
add comment

None of them support open standards so you suffer from vendor lock in and the risk of losing your investment if ESRI decides that 3 is 1 or 2 too many.

share|improve this answer
    
Sometimes that's not a bad thing if the end product is a lot easier to get too and display to your corporate users. –  dassouki Mar 3 '11 at 18:56
    
The three APIs in question all use Esri's GeoServices REST spec: esri.com/industries/landing-pages/geoservices/geoservices.html It is an open standard, just not an OGC standard. –  Derek Swingley Mar 3 '11 at 19:06
1  
If Esri changes it, I would think the version number would be incremented(it's currently 1.0). If you build a tool that implements it, why wouldn't you be able to go on using that tool? –  Derek Swingley Mar 3 '11 at 19:32
2  
what if [x] standard changes? no one is 100% sure that everything will be the same forever. –  George Mar 3 '11 at 19:36
2  
@Swingley when ArcServer11 comes out and only supports Rest2.0 all your work is screwed (I remember Avenue and AML). –  iant Mar 3 '11 at 20:34
show 8 more comments

The Silverlight and Flex API's are by far the most popular ArcGIS API's and have the advantage of being browser plug-in's which provide a much richer and consistent user experience which is often quite important with GIS web apps. Silverlight is a probably the best choice if you favor .NET development and Flex would be best for developers that prefer the Adobe environment. Flex also has the advantage of wider adoption as a browser plug-in than Silverlight.

The Javascript API has the advantage of more cross-platform reach since the browser plugin's are not needed so it can be used in iOS devices like the iPhone and iPad. The downside is you can often see differences in how the apps behave in the various browsers such as IE, Chrome, Firebox, Safari, etc.

As far as their features they really are very similar which is what esri has always tried to do with these and seems committed to continue to keep strong feature parity between them moving forward. So I think it really comes down to Flex's and Silverlight's strength as rich clients and Javascripts cross-platform reach.

share|improve this answer
add comment

There is an ArcGIS Viewer for Flex.

There is an ArcGIS Viewer for Silverlight.

But there is currently no Esri-supported ArcGIS Viewer for Javascript, nor is there one planned.

See related question.

"Viewer" is a term Esri uses for web apps that allow a user to create mapping web apps without writing any code. Typically these created web mapping apps will be viewers, but with the appropriate add-ins (or widgets) it is possible to create viewers with editing capabilities.

share|improve this answer
    
Arguably, using ArcGIS Online with templates... is in a sense a Viewer for javascript -- no coding, gives you basic map functions. –  awesomo Jan 21 '13 at 19:15
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.