Hi Geoff,

I really like the sound of this.  Having non-visible components which
control application lifecycle and workflow logic sounds like a great
addition to Tapestry.

Sure, you can do it all yourself, as you have done, but it would increase
the value of Tapestry as a frameowkr if it had support for this sort of
thing built in.

As you say, workflow/lifecycle becomes a time-consuming part of the
development process for large apps, which are the sort of maps that Tapestry
is best suited to.

The Jakarta project had some workslow-specification project going, but I
think they've over-reached themselves.  We need something simple, yet
powerful.

I'd be interested to read anything you have about this.

kenny



> -----Original Message-----
> From: Geoff Longman [mailto:[EMAIL PROTECTED]]
> Sent: 10 July 2002 13:26
> To: [EMAIL PROTECTED]
> Subject: [Tapestry-developer] More Controller (aka) MVC in Tapestry
> 
> 
> Hello Howard and the community!
> 
> I have been playing around with the idea of getting more of 
> the Controller
> in MVC while using Tapestry.
> 
> We are building a large app in the telco space, many screens. 
> I forsee that
> even with Tapestry the
> app getting quite complex. Putting the business logic and the page
> navigation stuff in the pages themselves
> will become burdomsome to maintain as we get to 100+ pages.
> 
> Our app, as most are, is divided into use-cases, each of 
> which collaborates
> with several pages. We are playing with the
> notion of centralizing logic for each use-case within a bean we call a
> WorkUnit (WU). At the lowest level a WU knows about the pages it
> collaorates with, has business logic, and navigation rules.
> 
> I have instrumented my Engine and Visit to handle the lifecycle of WU
> Also WU's are instrumented so they can have listener methods.
> 
> So, the WU is attached to the Visit and activates pages and 
> those pages call
> get/sets in the current WU and also call WU listener methods. The WU
> listenerMap will throw StaleLinkExceptions if a page tries to call a
> listener that does not exist, this might happen if the user 
> used the Back
> button. A bonus of using the Tapestry propertyHelper stuff to 
> access WU's is
> that it is possible to share pages among WUs.
> The pages themselves a relegated to handling whatever 
> transmorgifigcation is
> needed to pull/push data to/from a WU, field validation etc.
> 
> WU's always remember the page they last display so in the 
> case of stale link
> exceptions it is feasible to restore the app for the
> user to the last good page. There's lifecycle stuff too so 
> that if, say a
> user triggered an action that would attach an different WU to 
> the visit,
> the current WU gets a chance to examine its state and perhaps veto its
> replacement, or attach the new WU as a child. In the case of 
> a child WU the
> parent would lose control to the child, then regain control 
> when the child
> is done.
> 
> What I have works, but I know that it could be better and 
> perhaps the basis
> for a new feature for Tapestry. ie. non rendering controller 
> components.
> 
> If there is interest, I'll post a more detailed explanation 
> on the Tapestry
> Wiki and we can discuss.
> 
> 
> Geoffrey Longman
> Intelligent Works Inc.
> 
> 
> 
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Two, two, TWO treats in one.
> http://thinkgeek.com/sf
> _______________________________________________
> Tapestry-developer mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/tapestry-developer
> 


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Two, two, TWO treats in one.
http://thinkgeek.com/sf
_______________________________________________
Tapestry-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/tapestry-developer

Reply via email to