I always thought the original Apache::ASP (by Joshua Chamas) was the most underrated web framework around.
Me too! It's been in use on every Perl web application I've built since 2003 (or thereabouts). Joshua Chamas made my life (and the lives of many others) much easier with the release of Apache::ASP.
How compatible is your new code, for people on Apache::ASP who want to try migrating?
Mostly compatible. There are some breaking changes however.
For example, the "global.asa" file is replaced with subclassing GlobalASA.pm. $Response->Cookies has been simplified ($Response->AddHeader is there for complex HTTP header manipulation).
I can't promise the new API extensions won't change before the v1.0 release, so I wouldn't recommend migrating any production websites to it just yet. However - anyone who's used Apache::ASP and wanted feature "X" added in or thought "Y" should be different, now is the time to speak up. Once v1.0 is released I'm going to freeze the API.
I hope to release v1.0 by the end of this month (June 2007).
Aside from a different session backend, are there any specific advantages your version has over Apache::ASP?
Some advantages include:
- The introduction of "Apache2::ASP::Handlers" - an object-oriented approach to website development means you can write little or no code. I expect several independently-developed Apache2::ASP::Plugin::* modules in the future.
- "Handlers" can inherit from each other. So you could have base global "create", "update" and "delete" Handlers that other handlers simply subclass.
- File uploads go far beyond the old $Request->FileUpload(). Subclassing Apache2::ASP::UploadHandler or Apache2::ASP::MediaManager gives you the ability to set up callbacks like before_create(), after_update() or before_delete(). With a few lines of code you can build an upload progress indicator (see example on website).
- What's more fun than uploading your movies/photos so other people can see them? MediaManager makes this as easy as use base 'Apache2::ASP::MediaManager';
- As stated earlier, database-persisted Session and Application state means that your web application can span multiple servers. Servers may share roles or handle roles all by themselves (i.e. 3 WWW servers and 2 Media servers).
To help the Apache2::ASP API solidify, I'm building some web apps with it. The Apache2::ASP homepage is running it now. More sections will be added soon.
Thanks for commenting.
| [reply] [d/l] |