A while back I’ve posted my opinion about the ArcGIS Web ADF 9.2. It wasn’t a positive one. Since then, I’ve had a chance to work a little with the new version – the ADF 9.3, and even attended a seminar held by Rex Hansen, which – as I understood – is one of the main contributors to the design of the Web ADF.
On the surface it seems that the Web ADF took a leap forward at 9.3. It is now built upon the Microsoft Ajax library, instead of ESRI’s own callback-based solution (you know, the whole ICallbackEventHandler headache). Performance should be better, as the map now uses a custom .ashx handler to serve the images, instead of doing a bunch of full postbacks. But the question that remains is – Is the API any better? Are simple stuff simple? Is customization any easier?
Ajax is a bit easier this time around, since we can use ScriptManager to register client scripts, but it still took us a while to figure out how to make it all play nicely together (this article provides some solutions, by the way). I hate having to read mountains of documentation before I can get anything done (on the bright side – at least there is documentation), and trying to explain a newbie programmer about the difference between a “partial postback” and a callback is hard.
There are some more unpleasant surprises for you here. Noam Sheffer (hebrew link) mailed me about a problem he had. It seems that the map control still initiates a full postback to the page with every zoom operation. This is of course bad for performance, and also caused him issues with maintaining the state of some of his controls. Checking out an example site with Fiddler or Firebug, can show you that this is indeed the case.
And a word about the seminar by Rex Hansen. He showed some of the product’s new features, performance tips, and solutions to common problems. Thing is, I don’t care about being able to customize the MapTips template. It shows that ESRI focus is on the wrong thing – instead of simplifying the API, they’re adding more features so that it is even more complex.