2 months of Tapestry
- Published May 12th, 2006 in Free Software, Web
After checking out most of the Java web frameworks (Struts, Dynamica, Trails, Spring, etc..) we decided to stick with Tapestry + Tacos. I took a bottom-up approach to decide which framework to use: let’s see what we need and then check which framework suits us best.
Tapestry is a MVC (Model-View-Controller design pattern) framework based on components to promote code reusability. Tacos is a plugin for Tapestry that provides reusable AJAX components. And was precisely on Tacos that we relayed our decision. After all, we’re seeking for an easy to use AJAX framework to help us build a custom CRM in Java.
After 2 months of usage, I can only tell you good things about it. It eases the integration with other frameworks, like Spring or Velocity engine and it’s really powerful. It helps with common and tedious tasks of web development. Despite not being as RAD-alike as Ruby on Rails is, the components are really helpful. To give you an idea, the component Table (part of the Contrib package) provides you automatic sorting (but you can set up your own pattern to apply sorting) and table pages. You can get the data source by simply kicking a List of Objects with the proper getters. Yes, Tapestry will automagically go through the whole List (no matter which data structure), get into the object and to the getters according to what you’ve specified (for instance, if you want the field ‘name’, Tapestry will try to do getName() for each object).
Still, is has a really steep learning curve and the documentation is not that extent (at least, compared with Struts). And trying to adapt a component in order to do something unusual can really be a PITA (Pain In The Ass). But as soon as one surpass the learning phase, you’ll be quite effective.
If you’re looking for a Free/Open Source Software Java web framework with a strong emphasis on the MVC pattern that promotes code reusability, then Tapestry may be for you. Don’t forget to check Tacos too.




No Responses to “2 months of Tapestry”