Howard Lewis Ship <hlship <at> gmail.com> writes:

> 2) It took me quite a lot of time to understand the existence and
> > the name of ComponentResourcesCommon. Maybe it could be renamed
> > as ComponentContext or ComponentInstance.
> 
> I'm going to start cranking out tutorials soon, perhaps this will help.  Did
> you miss the fact that
> ComponentResources extends ComponentResourcesCommon?  Or the fact that an
> instance of ComponentResources is injected into your component?

No. I believe that names like XXXCommon confuse people and are not 
conveying the real meaning. The class comment doesn't really help:

  Operations shared by ComponentResources and ComponentPageElement

I think something being common to X and Y doesn't have to extracted
into a single Z, particular if we can't find a good name for Z. We 
could extract some subset into Z1 and another subset into Z2, so as 
to give Z1 and Z2 meaningful names.

> 3) Due to the extensive use of action links and that the context is
> > stored on the client, an average Tapestry app will be heavily
> > subjected to security issues. Signing the context is not effective
> > as it can be grafted into another page. Storing the state into the
> > session seems to be the only way.
> 
> I'm not sure I follow you.  This really is not much different than T4,
> except for how "listener parameters" (in T4) are stored as context value on
> the request path in T5.  And that it's more readable (simple toString() /
> parse, rather than DataSqueezer).
> 
>  The fact that pages that exist to display an instance of some kind of
> entity can provide handlers for
> "passivate"  and "activate" should result in more readable URLs and less
> session data (always good for dealing with the browser back button).

This is not much different than T4 in principle; it is just making 
client-persistent state more pervasive. For example, in T4 if I'd like
to display some selected strings from a list to be edited in a Form, 
I will probably store the loop source into the session for the rewind. 
In T5, as there is no rewinding anymore, how can each TextField figure 
out which string it should set? I guess the index has to be stored by 
on the client. By modifying the index on the client, a hacker will be
able to modify strings not selected for editing.

--
Author of a book for learning Tapestry (http://www.agileskills2.org/EWDT)


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to