Do not look at me for an unbiased opinion ... The tapestry has been my life for several years, and I continue to love it.
Thus, the learning curve becomes less steep, documentation is improving rapidly, and Igorβs book is just around the corner.
Some things that confuse people are simply the lack of documentation; for example, naming conventions are optional, there is always a more explicit configuration (in the form of method annotations), which is more convenient for some people.
To address a few of Hanning's points:
Tapestry component patterns are static in design (and this is very important for scaling and classifying Tapestry clusters). However, adding this part of my TapX library supports dynamic external templates that fill the gap.
In addition, if you want your templates to be protected as much as possible, you can also do this, for example:
<form t: id = "myForm">
... in the template with the remainder in the Java class:
@Component (parameters = {"zone = target", "clientValidation = blur", "context = client", "secure = true") private Form myForm;
.... In other words, all the specific content from the tapestry from the template and into the code. Not ideal for trivial components (more switching between the template and the Java source), but great for maintaining the worlds in general and separately.
Howard M. Lewis Ship
source share