Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ESRI frameworks: java vs javascript

I'm about to develop a web mapping application with ESRI Products like ArcGIS Server and Image Server.

I can't find a good comparison between the Java Web ADF and the Javascript Framework. They're of course different because one is a full environment and the other is only client side but it's much more concise and the step to start is minimal.

Another problem is that the Java Web ADF is not compatible with our current application server (JBoss 4.2.2) and require an old 4.0.2 version.

Someone out there has experience that can help me?

Many thanks.

like image 299
Luke Avatar asked Dec 22 '22 09:12

Luke


2 Answers

I don't have direct experience with the Java Web ADF, but I have worked with the .Net version and am now working with the Flex API.

The main problem with the Web ADFs that I have seen and heard from other developers is that they're very cumbersome to use. The newer frameworks (Javascript, Silverlight, and Flex) are much lighter-weight, easier to use, and you can up to speed much quicker with them. For example, a test application I wrote withg the .Net ADF took me almost three weeks before I gave up on it. At that time I gave up using the ADF and just did WebService calls against ArcGIS Server since that was easier to do than to try to figure out the ADF. Contrast that to using the Flex API on a similar project, which I just started last week, and I have an almost complete app as of this morning.

I would avoid the ADFs and go with the Javascript API.

like image 171
Michael Todd Avatar answered Dec 27 '22 14:12

Michael Todd


What you need depends on what you want. If you want to create just a viewer (as opposed to an application in which users can add (e.g. draw) geographical data), by all means, use the javascript api!

I've been working with the web adf (v9.3) for some time now and am still frustrated at every turn. Primarily for its lack of proper documentation, but also for various other reasons, such as these:

  • It requires you to use the jsf reference implementation, but it does not allow you to use some of its basic functionality, such as (f:)subviews. This makes it impossible to use any templating systems, such as facelets.
  • Lots of stuff you want to be able to configure is hardcoded in esri's jar files. For example, the map MUST be directly under < form> which must be the first element of the DOM tree. If not, map-movement listeners such as the ContinueousPanListener are unable to find the map and hence fail at updating the map position.
  • It's impossible to code your jsp pages in xml style, since the web adf inlines pieces of at a lot of places in your code, with xslt.
  • Its learning curve is very steep and without the proper docs, you'll be looking for days or even weeks on how to do the most trivial things. Some of these end up to be downright impossible or impractical, because you're not adopting esri's mindset.
  • The default interface is not very intuitive. You may still end up doing lots of work in javascript to get the way the application draws to your liking.
  • The undo functionality requires a versioned database, which is impractical/impossible for application that serves more than 10 or so users at the same time, plus, the round trip to the server for every undo action is a waste.

In short: You can make some interesting apps and if you know your stuff, there's work a plenty to be found in the sector, but if its just for 'some project', I'd switch to some.. any! other framework, such as openGeo..

like image 39
Roel Avatar answered Dec 27 '22 12:12

Roel