Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

jsmith (3335)

jsmith
  (email not shown publicly)
http://www.jamesgottlieb.com/
Jabber: jgsmith@tamu.edu

I'm a web applications developer trying to bring all things open source to all things humanities at Texas A&M University.

Journal of jsmith (3335)

Wednesday February 25, 2004
01:14 AM

First release of Gestinanna framework

[ #17611 ]

I finally got enough code together to put something out on CPAN. It's not complete, but enough is there to get it running.

The framework maps urls to content. Four content providers are in the base distribution: documents (unparsed), views (parsed by Template Toolkit), portals (documents that can embed other content), and xsm (eXtensible State Machines). The last one, xsm, acts as the controller in an application. Each state can map to a view which has access to the state information.

Sessions are handled automatically. If cookies are not available, then the URL is mangled, though some support work remains for this -- external links don't redirect correctly yet to lose the session id information. Each state machine has its own independent context. If I have time, I want to develop an application that allows help desk people to trace the path a customer took through an application so they can see what the customer might have done wrong or what the customer needs to do next.

Forms automatically fill themselves out based on the context information. The TT2 view doesn't have to track default values. Using the XPath-like expression syntax in XSM makes data management in complex forms simple -- take a look at the wizard creation wizard for an example: we have a wizard that can contain multiple steps, each of which can require multiple pieces of data.

The XML schema for form markup makes embedding one form in another simple. It also means the form elements should be coded based on their logical relationship to one another, not based on how the page should be laid out.

Views are inheritable, for the most part (this may still require a bit of work). I can subclass an existing application and only change those views that require changing. Only change those state transitions that require changing.

I think it's neat. There's too much there to try and cram it all into one post. If you have time and want to just play around with some new code, download the packages and give it a spin. I'd love to hear what you think.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.