Catalyst (logiciel)
Un article de Wikipédia, l'encyclopédie libre.
- Voir aussi l’article homonyme : Catalyst
Catalyst est un framework open source écrit en Perl, qui applique strictement le modèle de conception Modèle-Vue-Contrôleur (MVC), et qui supporte certains modèle expérimentaux de conception pour le web. Il est fortement inspiré de cadriciels comme Ruby On Rails, Maypole, et Spring.
Catalyst est surtout distribué à travers le CPAN, qui est le canal de distribution des bibliothèques et applications Perl.
Sommaire |
[modifier] Philosophie
Catalyst est fondé sur le principe "Don't Repeat Yourself" (DRY). En Français : ne vous répétez pas.
Vous pouvez utiliser Catalyst avec la chargement automatique de classes grâce à uns de multiples modules de chargement, ne requiérant ainsi pas de code pour la couche base de données. Mais, si vous avez besoin de la flexibilité de tout faire à la main, c'est aussi possible : la flexibilité est un autre principe guide de Catalyst.
Catalyst promeut la réutilisation modules Perl préexistants qui gèrent déjà bien les applications web.
- La couche Modèle est gérée par DBIx::Class, Plucene, Net::LDAP et d'autres classes modèles.
- La couche Vue est généralement gérée par un patron web tel que Template Toolkit, Mason, ou HTML::Template.
- La couche Contrôleur est gérée par chaque auteur d'application. De larges pans des fonctionnalités du contrôleur sont délégués à des plugins Catalyst tels que Catalyst::Plugin::FormValidator, Catalyst::Plugin::Prototype, Catalyst::Plugin::Account::AutoDiscovery...
- Finalement, Catalyst offre des ensemble de helpers pour simplifier les structures de contrôle et connecter des URLs à des méthodes de contrôle.
Une large sélection de plugins est incluse avec Perl ou est fournie sur CPAN.
Par exemple, la génération de code Ajax et de RIA avec le module Catalyst::Plugin::Prototype (Prototype est un cadriciel Javascript).
[modifier] Support de serveur web
Pour le dévelopement et les test, Catalyst comporte un serveur HTTP intégré. Pour la production , Apache, lighttpd et Nginx avec le support de FastCGI ou mod_perl sont recommandés, mais tout serveur web avec support de CGI ou FastCGI fonctionnera. Sur Apache, mod_perl peut améliorer les performances considérablement, mais son utilsation peut être un problème car il n'est pas sûr de partager de multiples application sur un même serveur mod_perl.
[modifier] Support des bases de données
Catalyst peut tourner toute base de données supportée par le DBI de Perl. Celà signifie à peu près tout, même un ficher CSV, mais une véritable base de données relationnelle est recommandée. L'accès à la base de données est totalement découplé du point de vue du programmeur. Catalyst, grâce à une de ses classes modèle, gère l'accès à toutes les bases de données automatiquement, même si des requêtes SQL explicites sont possibles. Ne pas faire de requêtes SQL explicites signifie que vous êtes neutre vis à vis des base de données et obtenez la portabilité de l'application entre différentes bases de données, et la possibilité d'utiliser autant que possible les bases de données préexistantes pour Catalyst, mais dû à des ensembles de fonctionnalités différentes des RDBM, ce n'est pas garanti par le cadriciel Catalyst lui-même. Catalyst supporte différents RDBMS dont MySQL, PostgreSQL, SQLite, DB2, Oracle et Microsoft SQL Server.
[modifier] Sites web consruits avec Catalyst
- (en) iusethis - site logiciel fondé sur les usage patterns
- (en) MightyV - Award winning TV-program listing for BBC
- (en) Vox - plate-forme sociale de blog
- (en) EditGrid - tableur à base de web
[modifier] Logiciels Open Source Software construits avec Catalyst
- Agave (software) (blog)
- Angerwhale (blog) Trac Site
- Devel::ebug (un déboggueur Perl) sur CPAN
- Handel (software) (cadriciel de commerce) Site
- Meios
- MojoMojo (wiki)
- Sosa (software)
[modifier] Liens externes
- (en) Project homepage
- (en) Application construites avec Perl5 et Catalyst
- (en) Catalyst article on PerlNet
- (en) Catalyst sur CPAN
- (en) Planète Catalyst
Portail des logiciels libres – Accédez aux articles de Wikipédia concernant les logiciels libres. |