In this
presentation, filmed at The Ajax Experience in October 2006, Bram Smeets, core developer for the Spring Modules at Interface21, looks at different ways of tying your Spring middle tier to an Ajax front end. Some of the frameworks that he covers include, JASON-RPC for Java, DWR, GWT, Echo2 and TIBCO GI.
From the presentation:
I was talking to someone yesterday, and he said "I have been a Java developer and have been using Spring. I've sort of got my stuff together on the back end, and I really know how to program Java Enterprise applications, doing transactions, etc. and leveraging the power of Spring. But now my manager comes to me and he says, we want AJAX. Our new web application has to be Web 2.0, so we want to use AJAX."
I've heard that a lot, and the problem that I think most of you have and at least I've had, is where to start, right? Which framework to take from that, and what I will hopefully show you is what I think is the right decision...
There is a lot of difference in the types of (Ajax) frameworks that are out there and what they actually do for you. One of the categories of framework is the 'User Interface' framework. This typically provides you with things like animation, drag and drop, widgets like Dojo, but they really do not provide you with anything else on the server side. So, it is fairly limited to client-side AJAX.
Next, we have the RPC frameworks. These are the frameworks that are really targeted at just providing you with a bridge between your Java backends and your browser clients.
The third category is the utility framework. These actually do really specific things. If you have a problem, for instance, such as history management, then there is a framework out there called ‘Really Simple History’ which has a really nice solution which you can use independently of whatever framework you are using. Another utilitly framework is AJAX Pages, which only does rendering and provides you with templates....
What are some of the challenges you've come across developing an Ajax front end for your Spring application?