[Melbourne-pm] Perl web application framework recommendations

Daniel Pittman daniel at rimspace.net
Sun Aug 15 02:24:22 CDT 2004


On 14 Aug 2004, David Dick wrote:
> Daniel Pittman wrote:
>> I am looking at doing some web application development, both to keep my
>> hand in on the programming side and because I have a need for a couple
>> of database driven tools.
>> I have taken a look at a variety of packages out there, and now I am
>> looking for recommendations about which ones actually work *well*.
>
> Okay. Work well to what purpose? 

Thanks. Those were the questions that I should have been asking, and
have helped clarify my mind about what, exactly, I was trying to do
here.

> Do you want to obtain a deeper level of understanding about the
> subtler aspects of web development (hence writing your own framework
> is probably a good task) or is speed of development a bigger concern?

Two things:  build a working web-based application, and work out which
tools are worth using the next time I need to do this.

So, speed of development and the ability to reuse existing work is the
biggest point of interest to me, I think.

> Are you designing for cross platform (mod_perl/ISAPI/etc)
> compatability or can you not afford to sacrifice any performance hit
> at all?

Neither.  Cross-platform would be vaguely nice, but running under
mod_perl is sufficient for anything I anticipate caring about.

As for performance ... as with any development, performance is nice, but
I would rather get something done sooner and easier, then resolve any
real performance issues.

>> So far, the three options that look worth considering are OpenInteract,
>> Maypole and writing my own framework.
>
> why are these the attractive options? might be worthwhile listing the
> advantages/disadvantages that you see in these and see if anyone else 
> can think of other points.

OK. Working through that tells me that what I am really looking for is a
framework with the following features:

* abstract "authentication" and session support.
* simple, and extensible, mapping of HTTP requests to Perl module calls.
* hooks into Template::Toolkit, or a similar template engine, for output.

I would also like, but can reasonably easily supply externally:

* simple, and extensible, database wrapper generation.
* simple workflow management (create/update/search/display/delete)

I also have one hard requirement, which is to be able to get the
database abstraction layer to provide a *nice* interface to maintaining
an ordered set of objects - the sequence of text "steps" associated with
producing mixed drinks, specifically.


OpenInteract is a fairly good match for these requirements.

It has the auth and session layer, and the mapping of HTTP requests to
Perl modules, and provides standard workflow classes.

The big issue I have hit with it is that it is tied to SPOPS for the
database persistence layer, and it looks very hard to get SPOPS to
provide an "ordered set" interface or object.


Maypole is also a fairly good match for the requirements.

Like OpenInteract it has all the basic requirements, as well as the
simple workflow stuff.

After spending a few hours trying, though, I can't convince it to let go
enough to allow me to use the Class::DBI objects that provide the
"ordered set" interface.


So, having actually spent the time to try and get my code working, even
in a very basic form, with the promising looking tools, I am thwarted.

Both of the options that look reasonable are, in fact, full of tight
bindings between their "user interface" layer and their "data storage"
layer, and usually with tentacles into their "business logic" layer as
well.

Since none of them supplied a "data storage" layer that met my
requirements, this means that I can't use their "user interface" or
"business logic" components.


So, I guess the next step is to move back and look to see which, if any,
modules provide support for building the user-interface side of a
mod_perl application.

OTOH, at least I now know how to get mod_perl configured and running
nicely in a testbed environment, and how it holds itself together, so it
isn't wasted time getting this far.

        Daniel

...though I am starting to consider giving up on the web application and
moving directly to the mixed drinks stage. ;)

-- 
Sometimes a scream is better than a thesis.
        -- Ralph Waldo Emerson


More information about the Melbourne-pm mailing list