Usare il Perl nelle Active Server Pages

di Kent Tegels, in Altre tecnologie,

Una buona riuscita nello sviluppo di Active Server Pages (ASP) spesso dipende dalla capienza del proprio 'cilindro da prestigiatore'. Coloro che iniziano a sviluppare applicazioni web in ASP solitamente hanno una buona conoscenza di Visual Basic Script (per gli amici, VBScript) e a volte del più recente Component Object Model (COM) .

Migrare verso ASP provenendo da lidi Web 'non Windows' può rivelarsi un'esperienza frustrante.

Spesso ciò che si dà per scontato da quelle parti, come l'utilizzo di Common Gateway Interface (CGI) e Shell Scripting qui invece non vengono comunemente utilizzati. Strumenti familiari quali il PHP e il Mod Perl hanno preso il loro tempo prima di poter raggiungere la piattaforma Windows.

Uno dei linguaggi più diffusi tra quelli migrati verso Windows è il Perl . Il Perl è un compatto linguaggio di programmazione orientato alle funzioni, run-time compiled. Quando Lerry Wall (vedi The Joy of Perl -- How Larry Wall Invented a Messy Programming Language ) mise mano alla creazione del Perl, voleva che esso fosse immediato quanto bastasse per lasciare spazio da dedicare alla vita mondana, ma robusto abbastanza da potere essere usato per fronteggiare qualunque livello di problema di programmazione. Il Perl fu presto accettato dagli sviluppatori web non-windows per la sua potenza accoppiata a semplicità di utilizzo.

Le numerose differenze tra il realizzare applicazioni web in ambiente ASP e il farlo in altri ambienti rendono la vita interessante a coloro che riescono a farlo in entrambi. Forse non vale la pena ricordare che spesso il migliore modo per risolvere un problema è quello di cercare di sfruttare le proprie conoscenze, adattandole opportunamente alle necessità del momento. Detto questo, se si ha già una buona conoscenza del Perl, è probabilmente ragionevole cercare di utilizzarlo, dove sia necessario, in ambiente ASP.

Cosa fare invece se non si conosce il Perl? Perché ci si dovrebbe interessare a questa tecnologia o a questo articolo? Semplicemente perché è risaputo che il proprio cappello magico non è mai abbastanza capiente! Quando si è particolarmente fortunati capita di dover lavorare allo sviluppo di applicazioni di grande respiro, ben progettate, con dovizia di tempo e spiegazioni. Sfortunatamente è molto più probabile che il vostro datore di lavoro giusto ieri si sia impegnato con un cliente per spostare le sue vecchie applicazioni sulla vostra piattaforma o che vi abbia assegnato il compito di scrivere un sistema automatizzato di autenticazione degli utenti completamente in ASP. Sapere come usare il Perl in ambiente ASP può notevolmente accelerare la riuscita di tali sfide. Questo articolo è basato sull'uso del prodotto ActivePerl della ActiveState Corporation .

Giusto un paio di cose da tenere a mente prima di iniziare:

  • Il modo più comune per utilizzare il Perl in ASP è incorporarlo proprio come si fa con il Visual Basic Script.
  • Così utilizzato viene detto PerlScript.
  • Se si sta effettuando una chiamata ad un programma Perl utilizzando un approccio tipo CGI, il programma che viene eseguito a volte viene chiamato script (facendolo così diventare PerlScript).
  • Per complicare ulteriormente le cose, PerlScript può anche significare il Perl dal lato client che viene scritto nelle pagine ASP o HTML. Per capirci senza ambiguità, in questo articolo il termine PerlScript indicherà esclusivamente il Perl incorporato nelle ASP dal lato server.

Per comprendere appieno il binomio PerlScript-ASP, è necessario avere un'idea di quali possono essere i vantaggi portati dalla presenza del PerlScript. Il successo dell'utilizzo del Perl in ambiente ASP sembra dipendere largamente dal sapere quando usarlo e quando invece evitarlo. Inizierò parlando di questo e quindi mostrerò dove iniziare e come.

Chi dovrebbe interessarsene?

Nel mio lavoro di sviluppatore evito accuratamente di cercare nuove soluzioni per risolvere vecchi problemi. Far sparare raffiche di e-mail ad un'applicazione ASP diventa semplice scrivendo o comprando alcuni oggetti COM che già lo fanno (quale ad es. ASPMail della ServerObjects ). Scrivere per la prima volta quel particolare oggetto COM o quella DLL può essere invece una vera e propria impresa.

Uno dei maggiori punti di forza del Perl non risiede nel linguaggio stesso ma nella comunità che lo adopera. Il Perl è un importante e duraturo elemento dell' Open Source Movement . Un risultato di ciò è l'archivio conosciuto come il Comprehensive Perl Archive Network (CPAN) . Qualunque cosa serva vi sono buone probabilità che qualcuno l'abbia già scritta e fornita al CPNA, rendendola così disponibile al libero utilizzo. Nel CPNA si possono trovare package di sorgenti, moduli e, a volte, anche file binari pre-compilati pronti al download e all'uso. Di solito dovranno essere debitamente decompressi, compilati e installati, ma questo è solo un piccolo prezzo da pagare se si pensa al risparmio rispetto a dover fare tutto da capo. Oltre a poter ottenere il sorgente, si è anche quasi sempre liberi di copiarlo e incollarlo dentro il proprio codice per adattarlo ai propri bisogni.

Amministratori di sistema

Quando lavoro come amministratore di sistema, non mi piace assolutamente fare la stessa cosa manualmente tante e tante volte. Una delle peggiori cose mi sia capitato di fare è stato dovere spostare qualche centinaio di utenti (e assegnarli agli appositi gruppi) da una piattaforma non Windows a un dominio NT. Non è certo una cosa drammatica da fare se si possiedono gli strumenti giusti, ma naturalmente, in quel caso non ci era dato di avere il Windows NT Server Resource Kit , così fu necessario usare ciò che avevamo a disposizione. Il Perl ha reso divertente, veloce e gradevole ciò che poteva essere un processo manuale arduo, mangia tempo e a rischio di errori. Questo grazie alla distribuzione e allo scambio operati in seno alla comunità Windows Perl. Una grande quantità di cose alle quali devono potere accedere gli amministratori (Event Log, Database degli utenti e Registry) sono pienamente accessibili con un po' di moduli Perl già pronti.

Quali sono i vantaggi?

Una caratteristica del Perl che io apprezzo particolarmente è la velocità con la quale ci si può muovere dall'inizio alla fine. Il Perl stesso conduce ad uno sviluppo veloce perché non ha particolari problemi di sovraccarico. Mentre esistono molti ambienti di sviluppo integrato e debugger, io posso semplicemente lanciare il Visual NotePad, una shell di comando e mettermi subito al lavoro. Dato che il Perl è run-time compiled, non devo avere a che fare con un compilatore e un linker. Questo è un gran modo per fare velocemente ed ad-hoc molte piccole cose.

Ovviamente questo modo di operare presenta molti seri problemi in certi ambienti di sviluppo. Il codice compilato in run-time non è mai veloce, leggero e scalabile quanto quello compilato. E la mancanza di un ambiente di sviluppo strutturato può portare a programmi scarsamente strutturati e poco documentati.

Con ciò non sto certamente dicendo che gli sviluppatori ASP dovrebbero evitare di usare il Perl per i loro progetti più ambiziosi! Il VBScript condivide molte debolezze e molti punti di forza del Perl. Io sono pronto ad aderire a quella scuola di pensiero che sostiene che l'ASP deve essere considerato la colla per gli oggetti COM . Se appropriatamente utilizzato e con un congruo numero di componenti, il VBScript è un buon collante. La stessa cosa dicasi per il Perl. Grazie al contributo del CPAN e dato l'ampio spazio di utilizzo del Perl nel mondo non-Windows, il Perl è spesso la colla più adatta.

Ho già detto che gli amministratori di sistema apprezzerebbero probabilmente quanto sia facile fare molte cose altrimenti complesse, come lavorare con gli account degli utenti e il registry. Insieme a questi componenti di sistema, la quasi totalità delle API Win32 è disponibile attraverso una manciata di moduli Perl pre-assemblati.

Gli Array Associativi (detti Hash)

Probabilmente la collection Request.Form vi sarà familiare. Per ogni campo di un form, si può avere ottenere il valore immesso richiedendo un elemento tramite il nome del campo stesso. Questo particolare oggetto registra i dati in coppie chiave-valore. Ad es., per scrivere l'indirizzo di e-mail ricevuto attraverso un form, si può fare come riportato di seguito:

<%= Request.Form("email") %>

Così facendo, anziché richiedere il secondo o il quinto elemento di un array, si richiedere direttamente l'elemento 'email' della collection. Gli oggetti Dictionary e Look Up forniscono questa funzionalità a Visual Basic Script.

Perl supporta gli hash come i tipi di dato associative array. Non c'è bisogno di creare oggetti per poterli utilizzare. Comunque, a differenza degli oggetti Dictionary e Look Up, gli array associativi del Perl possono avere dimensioni multiple. Approfondiremo questo argomento nel paragrafi 'Mettere tutto insieme'.

Espressioni regolari

Nessuna discussione sul Perl sarebbe completa se non si parlasse del suo motore per le espressioni regolari . Questo strumento permette l'esecuzione di espressioni complesse su stringhe come la ricerca di pattern, la sostituzione, la translazione e il parsing. Queste operazioni possono essere eseguite senza problemi sia su pochi caratteri che su file di testo di centinaia di Megabits.

4 pagine in totale: 1 2 3 4
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata