All,

About a month ago, I was put on a project that was perl-based, but with no
framework. As our GUI team develops mostly in java, and now mostly with
struts, I came to love the MVC architecture. Simple to estimate, design, and
maintain. I loved struts mvc so much that I implemented a struts-like
framework in plain old CGI. I used it for the perl project with great
success: quick, modular development from the client to the API.

I called it Straps (STRuts - A Perl Substitute). [Struts-developers: Let me
know if I've broken the rules for embedding Struts in the nickname]. It is a
bit of a cutesy name, but I didn't want to assume I could use Struts.pm --
and it really isn't just an interface to a struts-ish servlet, it actually
replaces one.

The main controller, rather than a java servlet, is a cgi installed in the
docroot at /straps/servlet.cgi
All requests go through this cgi, fire off Actions and ActionForms (just
like struts), store data in the session. and then land on a resulting cgi
page that would get the data out of the session and load up an
HTML::Template for the view. The ActionForms contain our application data
models. 

All in all, a rudimentary, but working version of a perl implementation of
struts.

But like most CGI apps, there were failings (performance, URI control, etc)

In the last two weeks, I've converted the "servlet" cgi to mod_perl, and
made it look like a real struts servlet. I have not ported the application
yet, but I have a new project that is also perl so I will build this app on
top of the mod_perl version of Straps, which I am tentatively calling
Apache::Straps. You all know the kinds of speed improvements I've seen
(100-150x on the loading of the framework alone with a small test
application), not to mention the hooks into the URI-mapping and request
cycle that I am ecstatic about.

Anyway, I thought the Right Thing To Do was get the idea out on this list
before any upload to CPAN, etc. I suppose at some point I'd have to talk to
the Struts people to find out if they mind as the framework and config file
uses the same naming conventions as struts.

Comments?

Thanks,
Stuart
 
Stuart Moffatt - [EMAIL PROTECTED]
Software Developer, User Interface - (613)591-6655 x2009
http://www.bridgewatersystems.com

-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html

Reply via email to