Thursday, 24 March 2016

What are differences between ArcGIS Web APIs (JavaScript/WPF/Silverlight/Flex)?


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?



Answer



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.




No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...