On Sat, Mar 29, 2008 at 2:44 AM, Andy Blower <[EMAIL PROTECTED]> wrote: > > Hi there, I'm evaluating Tapestry (among others) for the web framework we'll > use at my company for the next 5 years or so. We've used Struts 1 for the > last 5-6 years and it's served us well, even if it was higher maintenance > than was first apparent. I have spent over two days reading about Tapestry > history and general thoughts about past and future which has proved rather > distracting. I'm really not sure whether I should evaluate 4.1 or 5 because > the documentation and intro/tutorial material isn't ready yet for 5 and I'm > completely new to component oriented frameworks. If I evaluated 4.1, would > that be valid for us still to go on to use 5? It's really hard to get a > handle on the differences of two things you don't yet understand! > > I have three (more specific) questions: > > 1) What methods are known for implementing webpage templates in Tapestry > (e.g. banner, nav, sidebar, content, footer) and is there one considered > 'best practice'? >
The layout pattern is the best way to approach this class of problems: http://tapestry.apache.org/tapestry5/tapestry-core/guide/layout.html These kinds of layout components can be very smart and highly adaptable via templates and other techniques. > 2) How easy is it to add custom AJAX interactions? I'm thinking of > interactions like checking a checkbox to mark a search result, return > success and visually change the appearance. Very easy, because Tapestry's makes it very easy to create a URL that triggers an event within a specific component. The component can respond to the event via an event handler method, and can easily communicate a response back to the client by returning a stream, a JSON Object, or some rendered markup. > > 3) Is it practical to have base classes containing common functionality, > which are extended by very terse page classes along with actual page > templates or am I thinking about this wrong? Yes, and Tapestry even has some support for JDK Generics for this purpose. However, I would caution not to go overboard with base classes, when injection is *so* easy; Common behavior can be factored into IoC (Inversion of Control) services that can be injected directly into component fields. A relatively flat (1 - 2) level inheritance hiearchy, with common code in injectable services, is much easier to maintain. > > With the only T5 examples being so trivial, it's really hard to get a bigger > picture view at the moment, but I am very intrigued. And I here you, but the community is stepping up; please check the T5 home page and wiki with links to prototype applications, tutorials and other examples. And some very useful component libraries. > -- > View this message in context: > http://www.nabble.com/-T5--Tapestry-evaluation-%2B-questions-tp16368331p16368331.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Howard M. Lewis Ship Creator Apache Tapestry and Apache HiveMind --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]