Newsgroup: it.comp.lang.perl
Titolo: consigli su sviluppo applicazione web

Devo sviluppare una semplicissima applicazione web che si interfaccia
ad un database Oracle. Devo prevedere autenticazione, due tipologie di
utenti possono accedere al database (alcuni potranno solo leggere,
altri potranno anche scrivere). Se possibile vorrei usare semplici
CGI, l'applicazione è in una Intranet e dunque non ci sono problemi di
molteplici accessi concorrenti (ritengo inutile scomodare mod_perl,
Catalyst, ....). Vorrei definire gli utenti su una tabella del
database e vorrei usare le sessioni in modo da passare i vari
parametri tra le pagine dell'applicazione (non più di 10-12) in modo
più "pulito" (evitando i campi nascosti). Allo scopo credo di poter
usare CGI::Session e CGI::Session::Auth::DBI. Vorrei però fare in modo
che la connessione al database sia unica per tutta la sessione di un
utente, evitando di aprire e chiudere la connessione in ogni script
CGI. A tale scopo posso condividere fra gli script CGI l'handle come
ogni altro parametro della sessione oppure c'è un modo migliore per
farlo? In poche parole .... CONSIGLI????
Ciao e grazie a tutti

 farlo? In poche parole .... CONSIGLI????
Per questo si usa un connection manager, che gestisce in maniera 
trasparente un pool di db-handle riusabili, senza che tu debba fare nulla.
Sulla mailing list 
mon...@lists.perl.it
 ultimamente c'� stato un thread 
proprio su questo:
http://lists.perl.it/sympa/arc/mongers/2010-01/msg00007.html
(� richiesta l'iscrizione):
http://lists.perl.it/sympa/subscribe/mongers
Per quanto riguarda infine Catalyst, in realt� ti semplificherebbe la 
vita, dal momento che offre gi� in automatico esattamente tutto quello 
che chiedi. Se gi� non l'hai letto, questo capitolo del tutorial da solo 
copre praticamente tutte le tue esigenze:
http://search.cpan.org/~hkclark/Catalyst-Manual-5.8004/lib/Catalyst/Manual/Tutorial/05_Authentication.pod
Ovviamente � richiesto un piccolo investimento iniziale in termini di 
autoformazione, ma ne vale quasi sempre la pena.
Valuta un po' tu.
Ciao.

 Ciao.
Ti ringrazio molto per le risposte esaurienti. Ho letto con interesse
il thread di cui parli. Comprendo che l'uso di framework quali ad
esempio Catalyst siano auspicabili, però vorrei prima cercare di
ottenere le funzionalità di base che mi servono non in modo così
automatico. Credo che potrei provare ad usare DBIx::Connector, ma non
trovo in rete esempi di utilizzo con semplici CGI. Nella
documentazione si parla di ottenere l'handle della connessione al db e
di memorizzarlo da qualche parte, in modo da poterlo poi riutilizzare.
Ma con i CGI come come si memorizza? Alla stregua di una qualunque
variabile di sessione? Supponiamo di avere due CGI:
#login.cgi
# prende username e password inseriti dall'utente
...
my $conn = DBIx::Connector->new($dsn, $username, $password, \%attr );
my $dbh  = $conn->dbh;
# con $dbh verifica sul database se l'utente ha i diritti di accesso
(se ce li ha vado avanti ... il prossimo script che sarà eseguito sarà
ok.cgi)
...
...
#ok.cgi
# questo cgi dovrebbe ereditare l'handle dal precedente
login.cgi ..... ma come?
my $dbh = $conn->dbh;
# e se nel frattempo la connessione per un qualche motivo è stata
chiusa? dalla documentazione sembrerebbe che se ce n'è una aperta
bene, altrimenti ne apre un'altra .... ma come?
Troppe domande? Abbi pazienza:-)
Ciao e grazie

 chiusa? dalla documentazione sembrerebbe che se ce n'� una aperta


 Troppe domande? Abbi pazienza:-)
No, anzi, stavolta vertono su un unico argomento (quasi).
L'altro messaggio era peggio ;-)
Ciao!

 
http://search.cpan.org/~timb/DBI-1.609/lib/DBD/Proxy.pm
Posso aggiungere DBD::Gopher:
http://search.cpan.org/~timb/DBI-1.609/lib/DBD/Gofer.pm

Mason + mod_perl
http://www.masonhq.com/