I've been playing on and off with Tapestry for the past days , and I 
have mixed feelings about it, in one hand looking at the bundled 
examples, Tapestry seems to be as good as you guys advertise, on the 
other hand trying to do something with Tapestry it's proving to be a 
torture.

First I'd like to say that English is not my native language, so my 
confusion maybe partially related to my poor understanding of the 
documentation (BTW congratulations, hardly never do I see a project 
that makes such an obvious effort in documenting itself).

The first hurdle that I come across is the weird naming conventions 
that you guys follow, terms like "Visit", "Engine", "Service", 
"Gestures" "rewind" and "page recorders". I understand that the Visit 
is the place to store the Session State (why not call it Session?), as 
for the rest of the stuff I'm still fishing. For instance it's still 
unclear to me where to store application level variables.

And how about page initialization. Apparently the method in which to 
perform page initialization is called "detach()"?!?, isn't this 
weird?, a "detach()" method to perform initialization!?! ... what's 
wrong with "init()" or "pageInit()" or "initialize()"?, is it only me 
that finds this stuff confusing? After digging in the docs the reason 
for the "detach()" became more clear, apparently there is a pool of 
pages and when there is a request, a page is retrieved (detached?) 
from the pool and the persistent properties of the page must be 
manually reseted (I'm talking from my ass I don't know for sure if 
this is what happens). But I have a question, why do I need to know 
that there is a pool? I have no interest at this time to know the 
magic behind the curtain, I'm just trying to use Tapestry, is it 
required to know the inner workings of Tapestry to be able to use it?

I understand how pages intercommunicate (wheee ... no more parsing of 
parameters), but how do components "talk" to each other, case in point 
I have a "Portrait" component (it shows a picture from a list of 
available pictures) and a "PortraitExplorer" component, how can I make 
the "PortraitExplorer" tell the "Portrait" to show the next picture on the 
list? I also can't seem to find a way to make a component execute a 
method of the containing page , for example lets say I put the 
"PortraitExplorer" component and the "Portrait" component in a 
"ShowPicassoPictures" page and when I press the "NextPicture" button of 
the "PortraitExplorer" component I want to execute the 
incrementPicassoHitCount() of the "ShowPicassoPictures" page. I think 
that what I'm talking about is to have a method of the containing page 
as parameter of a component, is this possible?

Another thing that I found weird is the "rewind". It seems to be one of 
the focal points in Tapestry but I don't understand it. From what I 
can gather it seems that Tapestry is doing the same work twice, and 
only producing HTML once, isn't this weird?

Helper Beans... like the "EvenOdd" thingy , the whole "Helper Beans" 
stuff remains as one of the most confusing aspects of Tapestry is the 
Bean supposed to be the Model in a MVC design?
Oh... perhaps it would be beneficial to make more clearer in the docs 
the dependency on CSS of the EvenOdd bean, I know its there but it 
took me a while to understand from where the alternating row colours 
where coming.

This post is long already, so I better stop here. If someone could 
shed some light in some of my questions I would be forever grateful.
I'm having a hard time trying to justify the time spent with Tapestry 
and the (almost)zero results so far.


Jorge Chandra



_______________________________________________
No banners. No pop-ups. No kidding.
Introducing My Way - http://www.myway.com


-------------------------------------------------------
This SF.net email is sponsored by: Microsoft Visual Studio.NET 
comprehensive development tool, built to increase your 
productivity. Try a free online hosted session at:
http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en
_______________________________________________
Tapestry-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/tapestry-developer

Reply via email to