I've got a web application that communicates with the server via traditional html+http and some flex/amf via spring-blazeds integration. I'm not interested in porting the core application over to ajax, as I find that back button support and other things are headaches that I don't want to deal with, and users generally prefer a page-based paradigm for online apps, anyway. However, we do have functionality we'd like to enable via ajax - things like suggestions, validation, and a couple of places where a single interaction happens via multiple forms that actually makes more sense as a single 'page unit' so I prefer to handle the transitions via ajax.
I'm looking at a couple of possible implementations, and I'm fairly agnostic about which to choose. I'm also curious as to whether there are options I should consider that I have not yet encountered.
DWR - My gripe with DWR is that it bypasses my SpringMVC layer. This isn't the end of the world, but it adds to the complexity of the app. However, given that the blazeds interaction already does the same thing, and works in an almost identical manner, it is something I can definitely live with.
JsonView via spring-json - I really like the fact that this uses the springMVC infrastructure and should be totally agnostic about how the client side is implemented. I'll admit to leaning in this direction, but I haven't done that much research yet, so I can be convinced to go another way.
XT Ajax Framework - I really don't like the look of this. It seems to be quite complex and doesn't really mesh well with the rest of my application, from what I can see (I've only read through the docs). Again, I can easily be talked into it with a good argument.
I'm curious about your experience from a performance perspective, integration with spring-security, ease of use (I'm a very fast learner, so learning curve isn't an issue so much as how much coding is necessary to support the framework once I'm up and running), client side simplicity (my front end guys are not java devs, so I'd prefer a clean separation between client and server side code), and anything else you can think of.


Reply With Quote
Sami
