perl 用の優れた MVC フレームワークを提案できますか? 私が知っているのは、Catalyst です。
必要なのは、Java/.Net アプリケーションからシームレスに呼び出すことができる perl インフラストラクチャでサービスを公開できることです。
perl 用の優れた MVC フレームワークを提案できますか? 私が知っているのは、Catalyst です。
必要なのは、Java/.Net アプリケーションからシームレスに呼び出すことができる perl インフラストラクチャでサービスを公開できることです。
Catalyst は、迅速なアプリケーション開発 MVC フレームワークという点で、Perl 開発者の間で群を抜いて最高の評価を得ていることをここでお伝えします。
「純粋な」MVCに関しては、「成熟した」、または少なくとも本番対応の代替品がそれほど多くあるかどうかはわかりません。
Catalyst が適切でないと思われる場合は、ニーズに合わせて軽量フレームワークCGI::Applicationを構築するか、 PageKitやMaypoleなどのあまり知られていない MVC フレームワークを調べてみてください。
この古いスレッドが現れたので、Perl MVC の世界に新たに追加された 2 つのエキサイティングなことについて言及します。
(注: 私はダンサーよりもモジョリシャスを使用しています。そのため、モジョリシャスについてリストしたダンサーの機能を見逃していた場合は、事前に謝罪します)
既に述べたもの以外のもう 1 つの選択肢は Continuity です。ただし、(名前が意味するように) 通常の意味での MVC ではなく、継続ベースです。それでも、これは優れた Perl Web フレームワークの 1 つであるため、言及する価値があります。
そうは言っても、私はどの代替品よりも Catalyst の方がずっと好きです。そして、それはまだ常に良くなっています!その欠点は、現在推奨されているコーディング アプローチがかなり急いで進化し続けていることです。ただし、最後の 2 つのバージョンでは、API の互換性が非常に重視されているため、管理上の負担はほとんど精神的なものになっています。特に Moose への内部の移植は、いくつかの優れた利点を提供する予定です。
しかし、Catalyst を支持する最大の議論である IMO は、Chained ディスパッチ タイプです。私は web-framework-dom のすべてでそのようなものを見たことがなく、コードを可能な限り DRY に保つための最も優れたツールです。これは、Catalyst が提供するもう 1 つの優れた機能、つまりuri_for
、コントローラーと一連の引数を受け取り、その場所にディスパッチして返す URI を構築するメソッドとうまく結合します。これらの機能を組み合わせることで、URI 空間を任意の方法で構造化できると同時に、コントローラーを構造化してロジックの重複を回避し、テンプレートを URI 構造から独立させておくことができます。
それはただ素晴らしいです。
他の人からの支持コメント: Catalyst (多かれ少なかれ Maypole から分岐した) は、それらの中で最も完全で堅牢です。ジョナサン・ロックウェイの本があり、それを理解するのに役立ちます。
'Chained' ディスパッチ タイプに加えて、:Regex (および :LocalRegex) ディスパッチ メソッドは非常に柔軟です。ここで構築した最新のアプリは、:LocalRegex を使用したほんの一握りのサブルーチンを介して、多くの異なる URL をサポートしています。
また、特定のテンプレート言語やデータベースに限定されないという事実も特に気に入っています。メーリング リスト (および本) はどちらも Template::Toolkit (私もそうです) と DBIx::Class (引き続き Class::DBI を使用します) を優先していますが、ほとんど何でも好きなものを使用できます。Catalyst は驚くほど不可知論的です。
Catalyst が依存関係として CPAN の半分を必要とするように見えるという事実に気を悪くしないでください。起動して実行すると、十分に油を塗ったマシンになります。いったん理解すると、「背景に消えていく」ことがわかるほど、成熟したレベルに達しています。使用するツールと格闘するのではなく、ビジネス ニーズの解決に時間を費やします。
それはブリキに書かれていることをします。触媒++
ここ数日、スクワットで遊んでいますが、非常に有望で、使用するのが楽しかったと言わざるを得ません。
これはマイクロ Web フレームワーク (または Web マイクロフレームワーク ;-) であり、Ruby で記述されたCampingの影響を強く受けています。
注意。Squatting (& Camping) には、フレームワークに焼き付けられたモデル コンポーネントがありません。モデルに関する著者のコメントは次のとおりです... 「モデル? 全世界があなたのモデルです。;-) 私はここでポリシーを定義することについて常に曖昧でした. あなたに合ったものを使用してください.」
CGI::Application もありますが、これはフレームワークの根幹に似ています。これは、基本的な CGI を作成し、それにビットを接着して、好きなようにカスタマイズするのに役立ちます。そのため、ほとんどのモジュールを使用することも、太陽の下でほぼすべての人を使用することもできます。
すでに Catalyst を認識している場合は、それに集中することをお勧めします。成熟しており、十分に文書化されており、非常に大きなユーザーベース、コミュニティ、およびプラグインのコレクションがあります。
触媒は行く方法です。Jifty もありますが、(前回見たとき)ひどいドキュメントがありました。
あなたの問題については、さまざまな形式を使用してモデルとアクションにアクセスできる Jifty::Plugin::REST を調べます。
Jifty にはひどいドキュメントはありません。ただし、含まれているドキュメントのほとんどは API ドキュメントですが、有用なヒントやアプリケーションへのリンクを含む非常にノイズの少ないメーリング リストがあります。
http://jifty.org/のWikiは、役立つ情報を提供する別のリソースです。
午後に動画ストア (4GL と CRUD フレームワークの私のお気に入りのベンチマーク) を作成することが目標である場合は、一見の価値があります。
便利なデータベースに裏打ちされたアプリケーションとして私がお勧めできるClearpressもあります。必要な依存関係はCatalystよりも少なくなります。私たちはそれを使っていくつかの大きなアプリケーションを書きました、そして私はそれを使ってバドミントンラダーのウェブサイトを運営しています。
もう 1 つのオプションはGantryです。BigTop モジュールと組み合わせて使用すると、単純な CRUD サイトの構築にかかる時間を短縮できます。