Catalyst (software)

From Wikipedia, the free encyclopedia

Jump to: navigation, search

ATI also produces a driver suite called Catalyst

Catalyst is an open source Web application framework written in Perl, that closely follows the Model-view-controller (MVC) architecture, and supports a number of experimental web patterns. It's heavily inspired by such frameworks as Ruby On Rails, Maypole, and Spring.

Catalyst is primarily distributed through the CPAN, which is the official distribution channel for Perl libraries and applications.

Contents

Catalyst is based on a "Don't Repeat Yourself" (DRY) principle, which means that definitions should only have to be made once.

Catalyst can be used with automatic class loading from the database through one of the many loader modules, thus requiring no code for the database layer. But, if you require the flexibility of manually doing everything, it's also an option. Another guiding principle of Catalyst is flexibility.

Catalyst promotes the re-use of existing Perl modules that already handle common web application concerns well.

  • The Model part is handled through DBIx::Class, Plucene, Net::LDAP and other model classes.
  • The View layer is usually handled by Template Toolkit, Mason, or HTML::Template.
  • The Controller layer, of course, is written by each application author. Large chunks of Controller functionality can usually be deferred to one of the many Catalyst plugins (e.g., Catalyst::Plugin::FormValidator, Catalyst::Plugin::Prototype, Catalyst::Plugin::Account::AutoDiscovery, etc.).
  • Finally, Catalyst offers a set of helpers to simplify flow control and mapping URLs to controller methods.

Catalyst has a large selection of plugins. For example, it has javascript generation for Ajax and RIA using the Catalyst::Plugin::Prototype module (prototype is an Ajax framework).

For development and testing, Catalyst has a built-in simple HTTP server. For production use, Apache or lighttpd with FastCGI or mod_perl support is recommended, but any web server with CGI or FastCGI support will work. On Apache, mod_perl can help with performance considerably, though its use might be an issue because it can be unsafe to share multiple applications under mod_perl.

Catalyst can run using any database supported by Perl's DBI (this means almost anything, even a CSV file), but a proper RDBMS is recommended. The database access is entirely abstracted from programmer's point of view and Catalyst, through one of its model classes, handles access to all databases automatically – though, if needed, using direct SQL queries is possible. This means you get database-neutrality, application portability over different database systems, and usability of pre-existing databases for Catalyst application development as much as possible, though due to different feature sets of the RDBMSes, it is not completely guaranteed by the framework alone. Several different RDBMS systems are supported, including MySQL, PostgreSQL, SQLite, IBM DB2, Oracle and Microsoft SQL Server.

A lot of Catalyst-based projects use DBIx::Class as the ORM layer, which provides further abstraction of SQL queries, using a resultset based API with transparent (and efficient) support for arbitrary joins and other features.


Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.