choosing a web framework

Wednesday, July 19, 2006

I've got some ideas floating around about some pretty comprehensive websites I'd like to put together, and decided it was time to start looking at what to learn next to help me put together something really professional. I have a strong preference for Java and like the speed and presentation of DHTML.
I started looking around, and a number of sites pointed out that the old framework of MVC (Model-View-Controller; here and here) (eg Struts) is old news. The newer Component Based Frameworks are much more highly regarded, with examples such as JSF, Tapestry and Wicket. I felt the most positive about Wicket: it is the newest, but has good adoption, is open source, and is code driven rather than depending heavily on XML (like Tapestry). A great review of the Java options can be found at the javalobby.
I had a look at the Wicket site and was very impressed, but knew this wasn't what I wanted. It is too static, having no active pages, instead every click requests an entirely new page from the server - nah! So onto DHTML it was.

On looking into DHTML, I came across Ajax. DHTML and Ajax can be differentiated on the basis that Ajax is a group of technologies, and DHTML is a subset group of those technologies (think Venn diagrams here). And from what I can see, the only technology that Ajax has that DHTML doesn't is the XMLHttpRequest object (XHR; see Dave Massy's succinct formula and Stefan Mischook's comment). In fact if you google it you'll quickly see that a lot of people consider them one in the same.

Ajax's XHR is very important, as it is this that enables communication with the web server without complete page requests (ie. enables 'asynchronous' updates). So it looks like Ajax is my answer, and with exciting resources such as JSTween and repositories like DynamicDrive.com and script.aculo.us, I can see a colourful and exciting web presence ahead.

4 comments:

Came across a JavaScript verifier JSLint. Could be a very useful tool for checking JS syntax before publishing it.

Brad Milne said...
2:50 am  

Come across another great function library for JS, this one is from a kiwi!
Behaviour is a css-like method for attaching javascript actions to elements via an external file, menaing there is no over-abundance of 'onclick=' in the code. Nice one!

Brad Milne said...
12:38 am  

wicket supports ajax. in fact, you can do a lot of ajax in wicket without writing a line of javascript.

Anonymous said...
5:22 am  

Ok, thanks. That wasn't immediately obvious from the homepage or from the demo. On the features page it talks about dynamic components, like 'Programmatic Manipulation of Attributes' and 'Tree Component'. I guess I'll have to look into it closer to see how low the level of control would be in that wrapper environment, because potentially it could be quite limiting.

Brad Milne said...
5:34 am  

Post a Comment