25 May 2006
Ajax Issue Part II
Continuing my observations on the current sets of ajax framworks out there.
Most Ajax frameworks can be break down into the following categories (just don't fight the semantics here, they are just my personal perferences)
- Data Layer Service(No Proxy) - It serves for the sole purpose of retrieving data from the backend server, examples of such frameworks are
- Ajax.NET Professional. - No proxy is needed like a sepearate webservices layer or a dynamic pages.
In your javascript, you call the name of your backend method, get the returned object in whatever the format, you are done. What you do with the returned data is none of its business.
- Data Layer Service (W Proxy) - The only difference is that they require a proxy for retriving your data such as webservices and a dynamic page, exampls of such frameworks are
- Dojo
- Scriptaculous
- Atlas
Again, what you do with the returned data, is none of their business. (Atlas is an exception in some ways, which I'll dicuss later)
Now, if you haven't noticed, all these frameworks, in addition to provide "Ajax" capabilities, some of them provides an extensive sets of UI widges (dojo), animation effects (dojo, scriptaculous).
So what's the issue? Well, none of these frameworks provide an easy way to make the proper connections between the retrived data and the UI componets itself.
For example,
In Dojo, you can retrieve server data in JSON format, but if you want to bind the data into a "sorted table", you don't have UI methods to do so! like new SortedTable(MyJSONData), Ajax.NET Professional is the same. In these cases, you have to be somewhat good at javascript before you can present these information to your users.
Atlas on the hand, allows you to do that. HOWEVER, it only works with your .NET componets and everything is packed tightly together. In addition, it requires a werbservices proxy. If say you want to replace the Data Layer with another framework (which I prefer to use Ajax.NET Professional, because it simply requires no proxy), I will have a hard time in terms of binding say a datatable object to a .NET server side GridView. On the flip side, after atlas retrieve the data back from my webservices, I want to bind it to a scriplaculous sorted list, no spahetti code, can't do either.
In my opinions, all these frameworks need to improve on three areas, if they havne't already done so
1. Modualize the Data Layer, so it can be replaced by another framework
2. Modualize the UI Binding Layer, so it's easier to bind to a thrid party DHTML componet
3. Have UI componets that takes returned data in JSON format and inject it onto the web page.
I have to be honest here, I think Atlas might have a way to do the trick if I get into the client script section, but I'm not so confident about that. I'll do more research and post back later.
*Frustrated*
Comment Notification
If you would like to receive an email when updates are made to this post, please register here
Subscribe to this post's comments using
Comment Policy: No HTML allowed. URIs and line breaks are converted automatically. Your e–mail address will not show up on any public page.