=head1 NAME Application Servers and Toolkits based on mod_perl =head1 Description There are several application servers and toolkits available designed to run under mod_perl, which might provide you with inline-Perl coding, or MVC (Model/View/Controller) frameworks. You probably want to look at L for more information and in-depth analysis of some of the ones listed here. The following frameworks are sorted alphabetically. =head1 Apache::ASP C (http://www.apache-asp.org/) provides an Active Server Pages port to the Apache Web Server with Perl scripting only, and enables developing of dynamic web applications with session management and embedded perl code. There are also many powerful extensions, including XML taglibs, XSLT rendering, and new events not originally part of the ASP API =head1 Apache::PageKit C (http://pagekit.org/) is a web application framework that uses C and XML to separate the Model, View, Content and Controller. Provides elegant solutions to many difficult web programming problems, including session management, language localization, authentication, form validation, and co-branding. =head1 AxKit C (http://axkit.org/) is an XML Application Server for Apache. It provides on-the-fly conversion from XML to any format, such as HTML, WAP or text using either W3C standard techniques, or flexible custom code. C also uses a built-in Perl interpreter to provide some amazingly powerful techniques for XML transformation. =head1 The bivio OLTP Platform (bOP) The bivio OLTP Platform (http://www.bivio.biz/hm/why-bOP) (bOP) is a declarative, multi-layered Perl application development framework. Adapters have been written for Apache/mod_perl, sendmail, Oracle, and PostgreSQL. The Model layer generates SQL for CRUD, lists, and HTTP forms. Views are content-independent hierarchies of widgets. Tasks control security, execution order, and state transitions. Facades map qualified names to URLs, strings, fonts, colors, icons, files, and views. bOP provides a full-suite of services including dynamic tracing, configuration, logging, class loading, type hierarchy, unit testing, and acceptance testing. =head1 Catalyst Catalyst is an elegant web application framework, extremely flexible yet extremely simple. It's similar to Ruby on Rails, Spring (Java), and Maypole, upon which it was originally based. Its most important design philosophy is to provide easy access to all the tools you need to develop web applications, with few restrictions on how you need to use these tools. However, this does mean that it is always possible to do things in a different way. Other web frameworks are initially simpler to use, but achieve this by locking the programmer into a single set of tools. Catalyst's emphasis on flexibility means that you have to think more to use it. We view this as a feature. For example, this leads to Catalyst being more suited to system integration tasks than other web frameworks. Intro document http://search.cpan.org/~jrockway/Catalyst-Manual-5.700501/lib/Catalyst/Manual/Intro.pod Main site page http://catalyst.perl.org/wiki =head1 C C is intended to make it easier to create sophisticated, reusable web-based applications. This module implements a methodology which, if followed, will make your web software easier to design, easier to document, easier to write, and easier to evolve. C builds on standard, non-proprietary technologies and techniques, such as the Common Gateway Interface and Lincoln D. Stein's excellent C module. C judiciously avoids employing technologies and techniques which would bind a developer to any one set of tools, operating system or web server. There's a good article on perl.com about this framework I. =head1 DataBreeze Web Database Platform DataBreeze is written entirely in Perl and utilizes mod_perl within Apache to speed performance. Feedback from the Perl/mod_perl/Apache community is important. You may download the software for evaluation at http://www.databreeze.com or simply logon and try DataBreeze directly online. DataBreeze is very different from typical development tools because it utilizes a pre-built application framework that requires no programming. DataBreeze provides a template environment for building database applications that list, search, explore and edit relational data. The system includes integrated menus, forms, tree-views, security, session/state management and more, all in a Web Browser. DataBreeze can also be extended through the use of Event programs using Perl. This is not free software but nothing is hidden, the complete Perl source code is included so that you may explore how it works. =head1 Embperl C (http://perl.apache.org/embperl/) is a system for building dynamic websites with Perl. It gives you the power to embed Perl code in your HTML documents and the ability to build your Web site out of small reusable objects in an object-oriented style. You can also take advantage of all the usual Perl modules, (including C for database access) use their functionality and easily include their output in your web pages. Embperl has several features which are especially useful for creating HTML, including dynamic tables, form field processing, URL escaping/unescaping, session handling, and more. =head1 Gantry C (http://www.usegantry.org) is a web application framework for Apache/mod_perl, CGI and Fast-CGI. Gantry's object oriented design allows for a pragmatic, modular approach to URL dispatching. Gantry supports MVC and initiates rapid development, offering an organized coding scheme for web applications. It can take advantage of its sister project C, which allows you to describe the data of your application and have it generate or regenerate your database schema and module objects without destroying the portions you have customized. Gantry also has a robust configuration abstraction layer C that allows you to change how your application retrieves its configuration data without requiring any code changes. =head1 Interchange C (http://www.icdevgroup.org/) is a flexible, high performance application server that handles state management, authentication, session maintenance, click trails, filtering, URL encodings, security policy. It's made up of the following components: database abstraction layer, generic templating system, transaction routing rules, customer information object, universal localization scheme, security blackout definition, profiles, filters, search language, and session management. Some of Interchange's many modules are transaction management, pricing, personalization, payment processing, reporting, customer service, and search. =head1 Jifty Jifty is a way to build web applications. Homepage http://jifty.org/view/HomePage =head1 Mason C (http://www.masonhq.com/) is a powerful Perl-based web site development and delivery engine. With C you can embed Perl code in your HTML and construct pages from shared, reusable components. C solves the common problems of site development: caching, debugging, templating, simulating browser conditions, maintaining development and production sites, and more =head1 Maypole Maypole is a Perl framework for MVC-oriented web applications, similar to Jakarta's Struts. Maypole is designed to minimize coding requirements for creating simple web interfaces to databases, while remaining flexible enough to support enterprise web applications. Homepage http://maypole.perl.org/ =head1 OpenInteract C (http://www.openinteract.org/) is a web application environment written in perl and geared to run on the Apache web server using the mod_perl plugin module. The environment is built to be not only friendly to people editing and changing a website's content, but also for the developers who can write code (or complex templates) and create entire applications. =head1 OpenFrame C (http://openframe.fotango.com/) is an open source application framework for distributed media applications. What all this buzzword-compliant mumbo-jumbo really means is that with OpenFrame you can write a single application for multiple downstream clients (ie, Web, WAP, iDTV, Email) and not have to worry about much except the presentation. =head1 PLP PLP (http://plp.juerd.nl/) is yet another Perl embedder, primarily for HTML documents. Unlike with other Perl embedders, there is no need to learn a meta-syntax or object model: one can just use the normal Perl constructs. PLP runs under mod_perl for speeds comparable to those of PHP, but can also be run as a CGI script. =head1 The Template Toolkit The Template Toolkit (http://template-toolkit.org/) is a fast, powerful and easily extensible template processing system written in Perl. It is ideally suited (but not limited) to the creation of static and dynamic web content. The C module provides an Apache/mod_perl interface to the Template Toolkit, providing a quick and simple way to integrate its processing power into your web site. =head1 Uttu C (http://uttu.tamu.edu/) is a web-application driver that provides support for writing application frameworks. This support includes configuration, database connectivity, caching, uri-to-filename translation, and application installation. Uttu makes working with multiple virtual hosts and C, Template Toolkit, or C almost trivial. =cut