Shift in purpose of CGI::App applications

jflowers on 2003-07-05T16:04:42

Applications like MailForm and PhotoGallery are realeased to CPAN as entire apps not components. This I believe is the wrong way to go. Unfortunately CGI::App does not support a plugin style approach. CGI::App currently is intended for use in the develoment of a complete application, not as a framework for which to glue together plugins, producing a complete application.

Tim O`reilly in a recent interview speaks on this very concept and how it plays a role in sucess of failure of buisnesses and projects.

Tim's Interview

At my job I am responsible for a performance metrics web site for one of our customers systems. I have extended CGI::App to a framework in which I can easily plugin new modules to provide new content. This extention is still a prototype and needs to evolve into something greater than it is currently before it would become universaly useful. I fear it is too specialized to my needs, as well as it has sprung from only my perception.

I believe MailForm and PhotoGallery would be much more useful as plugins to be integrated into an application than as applications themselves.

CGI::App needs more than a plugin extension for modules providing content. For this shift in use to succeed there will need to be uniform ways of handling state, authentication, authorization, logging, error handling... and the list goes on. Many of these content plugins will expect state management and other services from the framework. If the framework does not provide these services content plugins will end up stepping on each others resources, not to mention all the duplicated effort

These services provided by the framework already exist on CPAN and are used by many developers, they only need to be rolled into CGI::App in a cohesive way.

I am sure that I am not the only person to have these thoughts. On one of the CGI::App Wikies plugins are discussed.

I am working to finish some UML and code examples to post on one of the CGI::App Wikies to show how I have extended the framework to help supply these services. I doubt it is the best design but I hope it will at least spur a community movement in that direction.