Frage

Können Sie ein gutes MVC-Framework für Perl vorschlagen? Eines ist mir bekannt Katalysator

Der Bedarf besteht darin, Dienste auf der Perl-Infrastruktur bereitzustellen, die von Java/.Net-Anwendungen nahtlos aufgerufen werden können.

War es hilfreich?

Lösung

Ich sage Ihnen gleich, dass Catalyst unter Perl-Entwicklern den mit Abstand besten Ruf genießt, wenn es um ein MVC-Framework für die schnelle Anwendungsentwicklung geht.

Was „reines“ MVC angeht, bin ich mir nicht sicher, ob es überhaupt so viele „ausgereifte“ oder zumindest produktionsreife Alternativen gibt.

Wenn Ihnen Catalyst nicht das Richtige erscheint, können Sie auf dem leichtgewichtigen Framework aufbauen CGI::Anwendung um Ihren Anforderungen gerecht zu werden, oder werfen Sie einen Blick auf einige der weniger bekannten MVC-Frameworks wie PageKit Und Maibaum.

Andere Tipps

Da dieser alte Thread aufgetaucht ist, möchte ich zwei aufregende Neuzugänge in der Perl-MVC-Welt erwähnen:

  • Tänzer (CPAN), das stark von Rubys Sinatra beeinflusst ist, das für sein sehr geringes Gewicht bekannt ist
  • Mojolicious (CPAN), das vom ursprünglichen Entwickler von Catalyst geschrieben wurde, um das zu nutzen, was er dort gelernt hat, es hat keine nicht zum Kern gehörenden Abhängigkeiten und verfügt über sehr moderne integrierte Funktionen (HTML5/CSS3/Websockets, JSON/XML-Parser, ein eigener UserAgent/Templating-Engine).

(Anmerkung:Ich habe Mojolicious häufiger verwendet als Dancer. Wenn ich daher einige Funktionen von Dancer verpasst habe, die ich für Mojolicious aufgelistet habe, entschuldige ich mich im Voraus.)

Eine weitere Alternative neben den bereits genannten ist Kontinuität;Es ist jedoch (wie der Name andeuten soll) auf Fortsetzungen und nicht auf MVC im typischen Sinne.Dennoch ist es erwähnenswert, da es eines der besseren Perl-Webframeworks ist.

Trotzdem gefällt mir Catalyst viel besser als alle Alternativen.Und es wird immer besser!Der Nachteil dabei ist, dass sich die derzeit bevorzugten Codierungsansätze ziemlich schnell weiterentwickeln – bei den letzten paar Versionen wurde jedoch großer Wert auf die API-Kompatibilität gelegt, so dass die Belastung jetzt eher mentaler als administrativer Natur ist.Insbesondere die bevorstehende Portierung der Interna auf Moose dürfte einige hervorragende Vorteile bringen.

Das größte Argument für Catalyst ist meiner Meinung nach jedoch der Chained-Dispatch-Typ.Ich habe im gesamten Web-Framework-Bereich noch nichts Vergleichbares gesehen und es ist ein hervorragendes Tool, um Ihren Code so trocken wie möglich zu halten.Dies lässt sich gut mit einer anderen großartigen Sache kombinieren, die Catalyst bietet, nämlich uri_for – eine Methode, die einen Controller und eine Reihe von Argumenten benötigt und dann einen URI erstellt, der an diesen Ort sendet und diesen zurückgibt.Zusammengenommen bedeuten diese Funktionen, dass Sie Ihren URI-Bereich so strukturieren können, wie Sie es für richtig halten, und gleichzeitig Ihre Controller strukturieren können, um eine Duplizierung der Logik zu vermeiden. Und Halten Sie Vorlagen unabhängig von der URI-Struktur.

Es ist einfach genial.

Unterstützende Kommentare anderer:Catalyst (das mehr oder weniger aus Maypole hervorgegangen ist) ist bei weitem das vollständigste und robusteste von ihnen.Es gibt ein Buch von Jonathan Rockway, das Ihnen sicherlich dabei helfen wird, damit klarzukommen.

Zusätzlich zum Versandtyp „Chained“ bieten die Versandmethoden :Regex (und :LocalRegex) enorme Flexibilität.Die neueste App, die wir hier erstellt haben, unterstützt viele unterschiedlich aussehende URLs durch nur eine Handvoll Subs, die :LocalRegex verwenden.

Besonders gut gefällt mir auch, dass man nicht auf eine bestimmte Template-Sprache oder Datenbank beschränkt ist.Die Mailingliste (und das Buch) bevorzugen beide Template::Toolkit (wie auch ich) und DBIx::Class (wir verwenden weiterhin Class::DBI), aber Sie können so ziemlich alles verwenden, was Ihnen gefällt.Auf diese Weise ist Catalyst wunderbar agnostisch.

Lassen Sie sich nicht von der Tatsache abschrecken, dass Catalyst anscheinend die Hälfte von CPAN als Abhängigkeiten benötigt.Sobald Sie es zum Laufen gebracht haben, ist es eine gut geölte Maschine.Es hat mittlerweile einen Reifegrad erreicht, bei dem man merkt, dass es „in den Hintergrund tritt“, sobald man sich damit auseinandergesetzt hat.Sie verbringen Ihre Zeit damit, geschäftliche Anforderungen zu lösen, anstatt sich mit den Tools herumzuschlagen, die Sie verwenden.

Es hält, was es verspricht.Katalysator++

Habe damit gespielt Hocken Ich muss sagen, dass es in den letzten Tagen sehr vielversprechend aussieht und Spaß gemacht hat.

Es ist ein Mikro-Webframework (oder Web-Mikroframework ;-) und wird stark von beeinflusst Camping welches in Ruby geschrieben ist.

NB.Beim Hocken (und Camping) sind keine Modellkomponenten in das Framework integriert.Hier sind die Kommentare des Autors zu den Modellen ... „Modelle?Die ganze Welt ist Ihr Vorbild.;-) Ich war immer ambivalent, was die Definition der Politik angeht.Verwenden Sie, was für Sie funktioniert“

Es gibt auch CGI::Application, das eher den Eingeweiden eines Frameworks ähnelt.Es hilft einem, einfache CGIs zu schreiben und Teile darauf zu kleben, um es so individuell zu gestalten, wie man es möchte.Sie können also kaum ein Modul oder nahezu jedes Modul verwenden.

Katalysator ist der richtige Weg.Es gibt auch Jifty, aber (das letzte Mal, als ich nachgeschaut habe) hatte es eine schreckliche Dokumentation.

Wenn Sie Catalyst bereits kennen, empfehle ich Ihnen, sich darauf zu konzentrieren.Es ist ausgereift, gut dokumentiert und verfügt über eine sehr große Benutzerbasis, Community und Sammlung von Plug-Ins.

Für Ihr Problem würde ich einen Blick auf Jifty::Plugin::REST werfen, das den Zugriff auf Modelle und Aktionen in verschiedenen Formaten ermöglicht.

Lassen Sie mich nur sagen, dass Jifty keine schlechte Dokumentation hat.Allerdings handelt es sich bei den meisten enthaltenen Dokumentationen um API-Dokumentationen, aber es gibt eine sehr übersichtliche Mailingliste mit nützlichen Tipps und Links zu Anwendungen.

Wiki unter http://jifty.org/ ist eine weitere Ressource, die nützliche Bits enthält.

Wenn Ihr Ziel darin besteht, am Nachmittag einen Videospeicher (mein Lieblings-Benchmark für 4GLs und CRUD-Frameworks) zu erstellen, ist es wirklich einen Blick wert!

Eine weitere Option ist Portal In Verbindung mit dem BigTop-Modul kann es die Zeit reduzieren, die zum Erstellen einfacher CRUD-Sites benötigt wird.

Es gibt auch Clearpress was ich als nützliche datenbankgestützte Anwendung empfehlen kann.Es benötigt weniger Abhängigkeiten als Catalyst.Wir haben damit einige große Anwendungen geschrieben und ich betreibe damit eine Badminton-Leiter-Website.

Ich habe einige Anwendungen mit erstellt Seetang, es ist leicht zu erlernen und sehr hilfreich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top