I'm sitting in a JAX (conferenc about Java, XML, Apache and Webservices) session about Tapestry and I'm rather impressed. Does anybody have experiences with it?
Tapestry really makes it easy to design web applications with e.g. Dreamweaver and the person who is responsible for this job doesn't need to have a clue about what happens in the background. Of course multi-channel publishing gets lost but: Do multi-channel forms really make sense? Or are they an academic solution because IRL you are forced to rewrite each form because of different screen sizes?
I just have a doc-reading experience of Tapestry, and we (Anyware) have been using this kind of "augmented HTML" for years, compiling it to XSL stylesheets.
Although this works well for simple mappings, I don't know how this can handle conditional layouts (e.g. different HTML when a repeater is empty or not) without requiring a minimal knowledge of some templating language.
But this is something we may work on: I once prototyped a few dozen lines of XSL to transform a regular HTML page with <form> and <input> tags into their <ft:*> counterparts. You can then use dreamweaver to edit your forms.
But Cocoon adds more value to this: from my own experience (related to the people's skills in my company), most pages in a webapp are designed by people that know the application domain and are therefore more often developpers than web designers. In this organisation, the work of the web designer is to produce a "skin" that gives some styling for all graphical layouts used throughout the application. That skin is then translated to XSLT (+CSS). The page developper then only has to write very basic HTML (page structure) that is fed into the skinning XSLT to add all the fancy graphical layout.
Result: productivity boost and ability to have multiple skins (and to some extent multiple channels). It's called "SoC" I guess... ;-)
Sylvain
-- Sylvain Wallez Anyware Technologies http://www.apache.org/~sylvain http://www.anyware-tech.com { XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
