29

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?

5
  • 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, 2011 at 21:24
  • 1
    @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? Mar 3, 2011 at 21:41
  • I consider them equals; perhaps a better way to answer is to describe how they differ?
    – mwalker
    Mar 4, 2011 at 16:52
  • @mwalker agreed, title changed. Mar 4, 2011 at 18:25
  • 1
    Good summary in the 2011 Esri User Conference Q & A: events.esri.com/uc/QandA/… Jul 6, 2011 at 2:26

6 Answers 6

13

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.

2
  • 2
    its a nightmare to debug javascript! at least for me. Mar 7, 2011 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, 2011 at 17:18
9

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).
3
  • 1
    Silverlight seems like it has lots of advantages for the developer, not so much for a broad base of users...
    – DavidF
    Mar 3, 2011 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, 2011 at 18:56
  • @dassouki - Good point, in those trusted situations WPF XBAP's make sense. I'll update Silverlight to include WPF. Mar 3, 2011 at 19:16
8

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.

3

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.

3

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.

1
  • Arguably, using ArcGIS Online with templates... is in a sense a Viewer for javascript -- no coding, gives you basic map functions.
    – awesomo
    Jan 21, 2013 at 19:15
1

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.

13
  • 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? Mar 3, 2011 at 19:32
  • 2
    what if [x] standard changes? no one is 100% sure that everything will be the same forever. Mar 3, 2011 at 19:36
  • 2
    @Swingley when ArcServer11 comes out and only supports Rest2.0 all your work is screwed (I remember Avenue and AML).
    – Ian Turton
    Mar 3, 2011 at 20:34
  • 1
    Still use Avenue and AMLS...
    – Mapperz
    Mar 3, 2011 at 21:48
  • 1
    @iant AML tools in ArcGIS 10 (Workstation) help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//…
    – Mapperz
    Mar 4, 2011 at 4:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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