Domanda

Potete suggerire qualche buon framework MVC per Perl? Uno di cui sono a conoscenza lo è catalizzatore

L'esigenza è quella di poter esporre servizi sull'infrastruttura perl che possano essere richiamati dalle applicazioni Java/.Net senza soluzione di continuità.

È stato utile?

Soluzione

Ti dirò subito che Catalyst ha di gran lunga la migliore reputazione tra gli sviluppatori Perl in termini di framework MVC per lo sviluppo rapido di applicazioni.

In termini di MVC "puro" non sono sicuro che ci siano molte alternative "mature" o almeno pronte per la produzione.

Se Catalyst non ti sembra adatto, potresti basarti sulla struttura leggera CGI::Applicazione per soddisfare le tue esigenze o dare un'occhiata ad alcuni dei framework MVC meno conosciuti come PaginaKit E Albero di maggio.

Altri suggerimenti

Dato che è apparso questo vecchio thread, menzionerò due nuove entusiasmanti aggiunte al mondo Perl MVC:

  • Ballerino (CPAN) che è fortemente influenzato dal Sinatra di Ruby, noto per essere molto leggero
  • Mojolicious (CPAN) che è stato scritto dallo sviluppatore originale di Catalyst per utilizzare ciò che ha imparato lì, non ha dipendenze non core, con built-in molto moderni (HTML5/CSS3/Websockets, parser JSON/XML, il proprio UserAgent/motore di template)

(N.B.Ho usato Mojolicious più di Dancer, quindi se mi sono persa alcune funzionalità di Dancer che ho elencato per Mojolicious, mi scuso in anticipo)

Un'altra alternativa oltre a quelle già citate è Continuity;tuttavia, è (come suggerisce il nome) basato sulla continuazione piuttosto che su MVC nel senso tipico.Vale comunque la pena menzionarlo perché è uno dei migliori framework web Perl.

Detto questo, preferisco Catalyst a qualsiasi altra alternativa.E continua a migliorare continuamente!Lo svantaggio è che gli attuali approcci di codifica preferiti continuano ad evolversi in modo piuttosto frettoloso, ma per le ultime due versioni è stata posta una forte enfasi sulla compatibilità API, quindi il carico ora è principalmente mentale piuttosto che amministrativo.Il prossimo trasferimento dei servizi interni a Moose, in particolare, è pronto a fornire alcuni eccellenti vantaggi.

Ma il più grande argomento a favore di Catalyst, IMO, è il tipo di spedizione concatenata.Non ho visto nulla di simile in tutto il web-framework-dom ed è uno strumento eccellente per mantenere il tuo codice il più ASCIUTTO possibile.Questo si abbina bene con un'altra grande cosa che Catalyst offre, vale a dire uri_for – un metodo che prende un controller e una serie di argomenti e quindi costruisce un URI da inviare a quel luogo, che restituisce.Insieme, queste funzionalità significano che puoi strutturare il tuo spazio URI nel modo che ritieni giusto, ma allo stesso tempo puoi strutturare i tuoi controller per evitare duplicazioni di logica, E mantenere i modelli indipendenti dalla struttura dell'URI.

È semplicemente geniale.

Commenti secondari fatti da altri:Catalyst (che più o meno si è biforcato da Maypole) è di gran lunga il più completo e robusto di questi.C'è un libro di Jonathan Rockway che ti aiuterà sicuramente ad affrontarlo.

Oltre al tipo di invio "Concatenato", i metodi di invio :Regex (e :LocalRegex) forniscono un'enorme flessibilità.L'ultima app che abbiamo creato qui supporta molti URL dall'aspetto disparato attraverso solo una manciata di sottotitoli utilizzando :LocalRegex.

Mi piace particolarmente anche il fatto che non sei limitato a un particolare linguaggio di template o database.La mailing list (e il libro) hanno entrambi una preferenza per Template::Toolkit (come me), e DBIx::Class (continuiamo a usare Class::DBI), ma puoi usare praticamente qualsiasi cosa tu voglia.Catalyst è meravigliosamente agnostico in questo senso.

Non lasciarti scoraggiare dal fatto che Catalyst sembra richiedere metà di CPAN come dipendenze.Una volta installato e funzionante, è una macchina ben oliata.Ora ha raggiunto un livello di maturità tale che, una volta che lo si affronta, si scopre che “svanisce sullo sfondo”.Trascorri il tuo tempo risolvendo le esigenze aziendali, non litigando con gli strumenti che utilizzi.

Fa quello che dice sulla scatola.Catalizzatore++

Ci ho giocato Accovacciarsi negli ultimi giorni e devo dire che sembra molto promettente ed è stato divertente da usare.

È un micro framework web (o microframework web ;-) ed è fortemente influenzato da Campeggio che è scritto in Ruby.

NB.Squat (e campeggio) non hanno componenti del modello integrati nella struttura.Ecco i commenti degli autori sui modelli... "Modelli?Il mondo intero è il tuo modello.;-) Sono sempre stato ambivalente riguardo alla definizione della politica qui.Usa quello che funziona per te"

C'è anche CGI::Application, che è più simile al cuore di un framework.Aiuta una persona a scrivere CGI di base e incollarvi sopra dei pezzetti per renderlo personalizzato come preferisce.Quindi puoi fare in modo che non utilizzi quasi nessun modulo o quasi tutti sotto il sole.

Il catalizzatore è la strada da percorrere.C'è anche Jifty, ma (l'ultima volta che ho guardato) aveva una documentazione terribile.

Se conosci già Catalyst, ti consiglio di concentrarti su di esso.È maturo, ben documentato e dispone di una base di utenti, comunità e raccolta di plug-in molto ampia.

Per il tuo problema, darei un'occhiata a Jifty::Plugin::REST che consente l'accesso a modelli e azioni utilizzando vari formati.

Lasciatemi solo dire che Jifty non ha una documentazione terribile.Tuttavia, la maggior parte della documentazione inclusa è documentazione API, ma esiste una mailing list molto silenziosa che contiene suggerimenti utili e collegamenti alle applicazioni.

Wiki su http://jifty.org/ è un'altra risorsa che contiene informazioni utili.

Se il tuo obiettivo è creare un negozio di video (il mio punto di riferimento preferito per 4GL e framework CRUD) nel pomeriggio, vale davvero la pena dargli un'occhiata!

Un'altra opzione è Portale se utilizzato insieme al modulo BigTop può ridurre il tempo necessario per creare semplici siti CRUD.

C'è anche Cancellapress che posso consigliare come utile applicazione supportata da database.Ha bisogno di meno dipendenze rispetto a Catalyst.Abbiamo scritto alcune applicazioni di grandi dimensioni con esso e gestisco un sito Web di ladder di badminton utilizzandolo.

Ho creato alcune applicazioni con Fuco, è facile da imparare e molto utile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top