ESRI’s Web ADF is one horrific development platform

Doron Yaacoby writes that he’s absolutely frustrated with ESRI’s Web ADF.

As I’ve said before, this is one horrific development platform. I’ve started to seriously think about coding a replacement that will work against ArcObjects (at least something that will satisfy my team’s needs), but it would take a lot of time which we currently do not posses. One day, though, one day.

I think most of us have felt this way. He had earlier said this about the ADF:

…the API is riddled with bad design choices and bugs. Weird exceptions get thrown. You find out that there are 5 different classes that are called Converter in this API, in 5 different namespaces, which in some situations can definitely be used together. Documentation for most methods is something like: Map.GetFunctionalities – “Returns the functionalities of the map.” Oh really? Now I couldn’t guess that on my own. I should mention that since the initial release the documentation has improved a lot, but it is still no paradise. Recent documentation for this method (added since Service Pack 2, if I am not mistaken), explains that it returns a collection of IMapFunctionality. So why, why oh why, does this method has a return value of IEnumerable? This is a .net 2.0 only library, for pit’s sake, they can use generics. And they do, in many other places. Here, they don’t. This kind of API inconsistency can drive a man insane, I tell you.

The WebADF which was supposed to help ArcGIS Server developers ends up being more of a hindrance to them. We looked at the ADF early on for our products but my lead developer threw up his hands and said no more and I spent a whole week trying to write a WebTask and it was virtually impossible to figure out. Sure it works great for ESRI’s example but when you try and extend beyond what they’ve documented you might as well be coding with your eyes closed.


I haven’t tried coding with the WebADF with a bucket on my head yet

This brings up a bigger issue with ESRI products lately. With long lead times between versions, we get so much more added functionality in each release. So rather than small jumps where feedback can help grow the product we are left with frameworks being dumped on us and we have to figure it out because of poor documentation. Sure 9.3 is supposed to fix all this, but 9.2 has been out since November 2006 and if 9.3 is released to beta right before the Dev Summit how much do you want to bet that the final comes out near November 2008, almost 2 years later. So in the mean time, developers such as me get so damn frustrated working with ArcGIS Server WebADF that we toss it aside. And don’t get me started on ArcGIS Server 64bit.

As Doron says:

For the amount of money an ArcGIS Server license costs, a .NET developer like me could very well expect a decent .NET API to work with. The Web ADF is a .NET API, but it is hardly as powerful as ArcObjects are, nor is it any kind of decent.

Could all this be why so many ArcGIS Server developers I know are looking at SharpMap?