Active Server Pages+: come ci siamo arrivati

di Alex Homer, in ASP.NET,

Sebbene l'inchiostro si sia appena seccato sulla documentazione su Active Server Pages 3.0, la Microsoft si è già messa duramente al lavoro sulla prossima generazione della sua principale tecnologia di programmazione per server. In questa serie di tre articoli, introduciamo questo nuovo prodotto e diamo uno sguardo a cosa rappresenta. Attualmente chiamato ASP + Next Generation Web Services (sebbene questo nome possa ancora cambiare) vedremo perché abbiamo bisogno di una nuova versione di ASP e studieremo i concetti che si trovano dietro al suo progetto e alla sua implementazione. Dato che questi articoli si rivolgono principalmente a sviluppatori esperti che hanno usato precedentemente ASP, iniziamo esaminando alcune delle questioni centrali che vengono toccate quando si decide di passare ad ASP +.

ASP+ è stato progettato per essere compatibile con le versioni precedenti di ASP; sono necessari solo piccoli cambiamenti in alcune circostanze. Comunque, più nel dettaglio, si può installare ASP+ su un server Windows 2000 già funzionante accanto ad ASP 3.0. Questo permette di sperimentare la nuova versione, senza che sia necessario un server di "prova" separato. Le applicazioni ASP esistenti possono ancora venire utilizzate e trasferite su ASP+ quando si è pronti, di modo che il vostro investimento nel vecchio sistema non vada perso.

Il semplice trasferimento delle vostre applicazioni su ASP+ mostrerà solamente alcuni dei benefici offerti dalla nuova versione. ASP + ha molte nuove caratteristiche che offrono una facilità di uso molto più grande, una maggiore potenza e una migliore efficienza di esecuzione; ma per godere dei loro vantaggi bisognerà comprendere maggiormente come funzioni questo sistema.

Alla Web Developer Conference 2000, che è si è tenuta dall'11 al 14 luglio, a Orlando, Florida, la Microsoft ha distribuito una versione di anteprima di ASP+ per permettere agli sviluppatori di vedere cosa può fare e di affrontare le eccittanti nuove possibilità di costruire applicazioni Web dinamiche scrivendo molto meno codice che in precedenza.

L'Evoluzione delle Active Server Pages

Sebbene sembrino essere esistite da sempre, le Active Server Pages hanno solo poco più di tre anni. Dai suoi inizi negli ultimi mesi del 1996, è cresciuta rapidamente come tecnologia per diventare la principale tecnica per la programmazione Web nei server in ambiente Windows (e su alcune altre piattaforme che utilizzano altre implementazioni che accettano la stessa sintassi o una simile, come ChilliASP). Ma non è uscito dal nulla ? le fondamenta giacciono molto più in profondità rispetto ad allora.

Programmazione dinamica nei server web

Tradizionalmente, le pagine Web dinamiche sono state create utilizzando programmi eseguibili nei server. Una specifica di interfaccia standardizzata per i server Web chiamata Common Gateway Interface (CGI) permette a un programma eseguibile di accedere a tutta l'informazione contenuta nelle richieste che provengono dal client. Il programma può allora generare tutto l'output richiesto per costruire la pagina di ritorno (il codice HTML, il codice script, il testo, etc.) e rimandarlo al cliente attraverso il server Web.

Per rendere la vita del programmatore più facile e per non dover creare programmi eseguibili, i linguaggi come il Perl utilizzano un'applicazione che accetta script che si basano sul testo. Il programmatore semplicemente scrive lo script e il server Web lo esegue utilizzando un interprete Perl.

Le tecnologie ISAPI della Microsoft

La Microsof ha introdotto un'altra interfaccia nel suo Web server, Internet Information Server. Questa viene chiamata Internet Server Application Programming Interface (ISAPI) e differisce dai CGI nel fatto che permette l'esecuzione di codice dinamico contenuto in una dymanic load library (DLL), direttamente da parte del web server. Come nel caso dei CGI, il codice può accedere a tutte leinformazione contenute nella richiesta del client e genera l'intero output necessario per la pagina di ritorno.

La maggior parte degli sviluppi nel campo web della Microsoft si è basata sull'interfaccia ISAPI. Un primo prodotto, dalla vita breve, è stato dbWeb, una tecnologia di accesso ai dati che forniva un'insieme di capacità di ricerca, di filtraggio e di manipolazione nell'accesso ai dati memorizzati nel server e per l'interazione con il client.

Un secondo sviluppo è stato l'Internet Database Connector (IDC). Questo fu un grande successo tra gli sviluppatori ? non solo perché era veloce ed efficiente (a differenza di dbWeb), ma anche perché era molto più generale e facile da programmare. IDC ha introdotto il concetto dei templates, permettendo ai programmatori di adattare facilmente pagine HTML esistenti per utilizzare le loro caratteristiche e costruire velocemente delle nuove applicazioni a partire da queste.

IDC utilizza due file di testo per ogni "pagina". Il primo è un semplice script che definisce come i dati dovrebbero essere recuperati dal database che si trova sul server. Essenzialmente, è solamente un'istruzione SQL insieme ad alcune informazioni di configurazione:

{Questo è il file di query chiamato getuserlist.idc}

Datasource: GlobalExampleData

Username: esempi

Password: segreta

Template: getuserlist.htx

SQLStatement:

+ SELECT DISTINCT UserName

+ FROM Person ORDER BY UserName;

Il server esegue questo file e ne ottiene il recordset dei risultati, poi carica un file template:

{questo è un estratto del file template chiamato getuserlist.htx}

...

<TABLE>

<TR>

<TD>User name:</TD>

<TD>

<SELECT NAME=selUserName>

<%BeginDetail%>

<OPTION VALUE="<%UserName%>"><%UserName%>

<%EndDetail%>

</SELECT>

</TD>

</TR>

</TABLE>

...

Il template è solamente una normale pagina Web, che include HTML, testo e altri oggetti, ma dove sono inseriti uno o più marcatori specialmente delimitati. La sintassi per questi marcatori e per gli altri semplici costrutti del codice di programmazione che vengono supportati, sono stranamente simili a quella di uno script ASP. Naturalmente, è da qui le ASP sono effettivamente state create.

Le versioni di ASP

Così erano i primi mesi del 1996 quando Denali (il nome in codice per le ASP) è stato distribuito come prodotto in versione beta 0.9 mettendo in subbuglio il mondo dello sviluppo web. La capacità di eseguire codice all'interno di una pagina Web era molto semplice e comunque molto potente. Con l'aggiunta di una serie di componenti in grado di eseguire operazioni avanzate, la più notevole ActiveX Data Objects (ADO), era quasi un gioco da ragazzi creare ogni tipo di pagine dinamiche.

La versione finale di distribuzione delle Active Server Pages, 1.0, disponibile come aggiornamento di IIS 3.0, è stata subito utilizzata sulle piattaforme Windows in tutti i luoghi. La combinazione di ASP e di ADO permetteva agli sviluppatori di creare e aprire facilmente dei recordset a partire da un database.

Non ci sono dubbi che questa è stata una delle ragioni principali per la sua rapida accettazione, dato che da allora si potevano creare e aprire dei recordsets a partire da un database all'interno dello script e manipolare e mettere in output qualsiasi valore, in ogni ordine, e quasi in ogni modo si potesse desiderare.

Nel 1998, la Microsoft ha introdotto ASP 2.0 come parte dell'Option Pack per Windows NT4 (gratuito). La principale differenza tra questa versione di ASP e la versione 1.0 era nel modo in cui si potevano instanziare i componenti esterni. Con ASP 2.0 e IIS 4.0 è possibile creare un'applicazione ASP e all'interno di essa eseguire i componenti nel loro particolare spazio di memoria separato (vale a dire, fuori dal processo). L'aggiunta di Microsoft Trasaction Server (MTS) ha anche reso facile la costruzione di componenti che potessero partecipare alle transazioni.

Windows 2000, COM+ e ASP 3.0

All'inizio di quest' anno, è uscito Windows 2000. Contiene la versione 5.0 di IIS e la versione 3.0 delle ASP. Oltre ad alcune piccole aggiunte ad ASP, qui la differenza principale ha realmente più a che fare con COM. In Windows 2000, la Microsoft ha combinato MTS con il nucleo di esecuzione COM per creare COM +. Questo crea una moltitudine di nuove caratteristiche che rendono l'uso dei componenti più semplice e allo stesso tempo danno una piattaforma di esecuzione più stabile, scalabile ed efficiente.

A parte alcuni piccoli cambiamenti nell'interfaccia di gestione, IIS non è cambiato un granchè in superficie. Comunque, al suo interno, adesso utilizza i Servizi Componenti COM + per offrire un migliore ambiente per l'esecuzione dei componenti che include l'esecuzione fuori dal processo come default e l'opzione di eseguire, quando richiesto, ogni componente nel suo particolare processo isolato.

ASP + e il Next Generation Web Services Framework

Tutto questo ci porta al presente, con ASP+. La struttura sottostante di ASP+ è molto differente da quella delle versioni precedenti, sebbene dall'"esterno" (per quello che riguarda lo sviluppatore) sembra offrire un'interfaccia molto simile. ASP+ è quasi interamente basato sui componenti e modularizzato e ogni pagina, oggetto ed elemento HTML che viene utilizzato può essere un oggetto, eseguibile e manipolabile a runtime.

Per questo per funzionare efficientemente e offrire una soluzione scalabile, la gestione di questi oggetti è un requisito assolutamente necessario. Il nuovo ambiente di esecuzione porta a termine questa gestione automaticamente, facendo in modo che ASP+ abbia molto di più una natura orientata agli oggetti. Questo permette agli sviluppatori di costruire applicazioni più potenti accedendo a questi oggetti in un modo molto più granulare e controllato.

Gli sviluppatori possono accrescere ed estendere l'ambiente, sia creando nuovi componenti, o ereditandoli dalle classi di base che li creano, sia non tendendo conto di comportamenti selezionati come richiesto. Sotto la superficie, il runtime COM+ gestisce automaticamente l'instanziamento, la messa in comune e l'allocazione degli oggetti.

2 pagine in totale: 1 2
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