Navigation
  • Home
  • Recent
  • Most Active
  • Popular
  • Blog
  • Credits
  • RSS
  •   Interaction
  • Register
  • Statistics
  •   Help
  • Suggestions
  • Contact Us
  • How to Edit
  • Help



  • [Edit]



    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.


        Catalyst (software)
            Philosophy
            Web server support
            Database support
            Websites built with Catalyst
            Open Source Software built with Catalyst

    top

    Philosophy
    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 javascript generation for Ajax and RIA using the Catalyst:
    Plugin:
    Prototype module (prototype is an Ajax framework).


    top

    Web server support

    For development and testing, Catalyst has a built-in simple HTTP server. For production use, Apache, lighttpd or Nginx 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.

    top

    Database support

    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.



    top

    Websites built with Catalyst

      iusethis - Software site based on usage patterns
      MightyV - Award winning TV-program listing for BBC
      Vox - Social blogging platform

    top

    Open Source Software built with Catalyst

      Devel:
      ebug (a perl debugger) On CPAN
     
    Search more:
     

       
    Source Privacy License Download Contact Us Atlas
    Scientus.org Dictionary (Yet Another Wiki) RC : 1.39
    MIT OpenCourseWare
    This article is licensed under the GNU Free Documentation License [copyleft]. It uses material from the Wikipedia article "Catalyst (software)". link