INDICE ASP
1.01 - Introduzione alle Active Server Page
1.02 - Struttura di uno script
1.03 - Le variabili
1.04 - I tipi di variabile
1.05 - Dichiarare le variabili
1.06 - Array
1.07 - Strutture di controllo
1.08 - Logica condizionale: if … then
1.09 -
APPENDICE - ESEMPI
Dal sito HTML.it Guida ASP
Ritorna all'indice
1.01 - Introduzione alle Active Server Page
L’Active Server Page (Asp) è un linguaggio di programmazione per le pagine web introdotte dalla Microsoft con la versione 3
di IIS (Internet Information Server). Grazie all’Asp è possibile creare vere e proprie applicazioni per il nostro sito web
senza dover ricorrere, come accadeva un tempo, alle CGI (Common Gateway Interface). Come dice il nome stesso, la tecnologia
Asp consente di elaborare delle informazioni Server Side (lato server) per poi inviarle tramite la grande rete (Internet) al
Client Side (lato dell’utente). Una volta arrivate dall’utente le pagine elaborate in precedenza False dal server, verranno
mostrate a video dal browser di navigazione utilizzato. Vediamo ora graficamente cosa accade quando l’utente richiede una
determinata pagina web.
Richiesta pagina non dinamica:
Richiesta pagina dinamica:
Com’è possibile osservare dalle immagini sovrastanti, solamente nella richiesta di pagina dinamica vi è l’intervento del server
per elaborare e gestire le informazioni richieste per poterle poi inviare al visitatore.
Già con questo schema grafico è possibile capire quali sono le potenzialità delle pagine dinamiche.
Ritorna all'indice
1.02 - Introduzione alle Active Server Page
Prima di mostrare come si definisce uno script in Asp, è meglio capire cosa rappresenta uno script e indicare i due tipi
fondamentali di scripting. Per script si intende una porzione di codice definita intelligente che è in grado di svolgere
operazioni in modo autonomo. Per poter svolgere questa funzione, lo sviluppatore del sito web dovrà programmare in modo
corretto ed idoneo alle proprie esigenze lo script interessato.
Come accennavo prima, esistono due tipi fondamentali di scripting: scripting lato client e scripting lato server.
Per quanto riguarda il lato client, il linguaggio di scripting più noto è il JavaScript (noto in gergo tecnico anche come Js
a causa delle sue iniziali). Un esempio di definizione di uno script client side in JavaScript è il seguente:
<script language=”Javascript”>
<!– Nascosto ai browser incompatibili
–>
</script>
Per quanto riguarda invece il server side (ss) esistono due linguaggi fondamentali. Uno di essi è il Php (Personal Home Page)
utilizzato per lo sviluppo di siti web su server di tipo Unix/Linux , mentre il secondo è l’Asp (Active Server Page) utilizzato
sui server con tecnologia NT:
Ecco un esempio di come si definisce lo script in php:
<?php
/* Codice di scripting */
?>
Ecco un esempio di come si definisce lo script in Asp:
<%
‘ Codice di Scripting
%>
Soffermiamoci ora a discutere la definizione dello script Asp, in quanto sarà fondamentale per capire il suo funzionamento e
proseguire senza problemi nel corso delle lezioni. Incominciamo col dire che lo script proposto non fa assolutamente nulla,
ma quello che mi sta a cuore è di mostrare la sua struttura. Lo script in Asp si apre con i caratteri <% e si chiude con %> .
Questi due simboli sono chiamati tag di delimitazione di script asp. La riga contenuta invece all’interno di questi due tag,
incomincia col seguente carattere ‘ e serve per indicare un commento dello sviluppatore. Vedremo successivamente come si usano
i commenti.
Ritorna all'indice
1.03 - Le variabili
Prima di spiegare quali sono e come si usano le variabili in ASP, è utile ricordare cosa si intende per variabile.
Definiamo con variabile una porzione di memoria volatile in grado di contenere un determinato valore in un determinato
istante di tempo t. Tale spazio verrà identificato tramite un nome, che il programmatore assegna nel codice.
Come il suo stesso nome rivela, la variabile è qualcosa che varia col tempo. Facciamo il classico esempio della variabile
contatore che memorizza il numeo di visite di un sito.
Se utente A si collega all’istante t1 (un certo istante di tempo) vedrà che il contatore segna n visite (n è il numero dei
visitatori precedenti, maggiore di zero). Se utente B si collega all’istante t2=t1+k (k è l’intervallo tra le due visite)
troverà un numero maggiore di visite (n+z).
In istanti diversi, il contenuto della variabile identificata con il nome contatore è cambiato.
Il linguaggio più utilizzato per realizzare pagine ASP è Visual Basic, per questo possiamo approfittare di una delle
caratteristiche particolari di questo linguaggio: le variabili di tipo Variant. Se, dal punto di vista delle codifica
questo può essere un vantaggio, dal punto di vista delle performance non sempre paga. Inoltre dobbiamo fare attenzione
ai nomi che assegnamo alle variabili. È consigliabile stabilire una convenzione e rimanerle fedele per tutto il progetto.
Ecco un esempio di nomi convenzionali, che tengono cono del tipo di dati.
Ritorna all'indice
1.04 - I tipi di variabile
Numero Intero
Per numero intero, si intende un numero che non ha nessuna parte frazionaria. Per esempio, i numeri 0, 2, 4 e i numeri -5, -6, -20
sono numeri interi in quanto non hanno parte decimale. Al contrario i numeri 1.3, 2.9, -6.4 non possono rientrare in questa
categoria in quanto hanno la parte decimale diversa da zero.
Numero in Virgola Mobile
Per numero in virgola mobile, si intendono tutti quei numeri che presentano una parte decimale. Ad esempio 4.6, -5.8.
Nella tabella abbiamo definito due nomenclature diverse per indicare lo stesso tipo di numero, poiché esistono due tipi diversi di
numeri in virgola mobile: single (sng) e double (dbl). La differenza consiste nella precisione che servirà per rappresentare il
numero in questione e quindi memoria necessaria. Il tipo double, utilizzerà il doppio dello spazio per memorizzare il valore rispetto
al tipo single.
Stringa
Per variabile stringa si intende una qualunque sequenza di simboli, numeri, lettere concatenate tra loro. I valori sono tipicamente
scritti tra doppi apici ".
Data
Questo tipo serve a memorizzare le date. Il formato dipende dal contesto culturale dell’applicazione.
Se il contesto è impostato in italiano avremo date rappresentate nel formato gg/mm/aa oppure gg/mm/aaaa (giorno, mese e anno).
In ogni caso è possibile governare la rappresentazione delle date.
Boolean
Questo tipo di variabile può contenere solo due valori: True e False (vero e falso). Generalmente queste variabili vengono sfruttate
nelle strutture di controllo e nelle operazioni condizionali.
Valuta (Currency)
Questo tipo di dato consente di memorizzare e gestire e rappresentare valuta, denaro. Anche in questo caso sono importanti,
ma governabili le impostazioni di contesto culturale.
Ritorna all'indice
1.05 - Dichiarare le variabili
Dopo aver spiegato le variabili bisogna spiegare come dichiararle e utilizzarle. Per dichiarazione di una variabile si intende
un passaggio in cui avvisiamo la macchina che deve preparare (allocare) uno spazio di memoria per accogliere una variabile di
un certo tipo.
La dichiarazione può avvenire in due modalità: non tipizzata e tipizzata. La prima sfrutta le possibilità delle variabili di
tipo Variant, con una modalità simile alla seguente modalità:
dim mia_variabile
Se vogliamo indicare da subito il tipo di dato, invece, utilizziamo una sintassi simile a questa:
int mia_variabile
In questo caso la variabile mia_variabile potrà memorizzare solo numeri interi.
Dichiarare una variabile non tipizzata ci permette di assegnare il tipo in modo implicito.
In questo caso la variabile assume il tipo del primo valore che le assegnamo.
mia_variabile = 5 'in questo caso la variabile è un intero
mia_variabile = "testo" 'in questo caso la variabile è una stringa
Ritorna all'indice
1.06 - Array
Esiste un altro tipo di variabile, ma rispetto alle precedenti è un po’ più complesso. Questo tipo viene definito Array.
Per array indichiamo una serie di variabili che fa riferimento allo stesso nome, ma riconoscibile tramite un indice.
Per capire meglio cos’è un array, paragoniamolo ad un armadio pieno di ante. Adesso assegniamo ad ogni anta un numero
univoco (cioè senza ripetizioni) che va da 0 a n-1 (dove n è il numero delle ante). Il concetto di array è più o meno
questo. Per aprire l’anta numero K (K compreso tra 0 ed N-1) basta indicare l’armadio ed il numero di anta.
Adesso adattiamo questa “operazione di vita quotidiana” all’ambiente Asp. La variabile verrà dichiarata specificando il
tipo dei dati.
dim intDati(2) 'array di 3 elementi: da 0 a 2
intDati(0) = 0 'inizizzazione dei tre elementi
intDati(1) = 1
intDati(2) = 2
In conclusione, gli array non sono molto complessi da usare, basta solo sapere con esattezza la cella su cui bisogna
puntare per accedere al dato specifico.
Ritorna all'indice
1.07 - Strutture di controllo
Come sempre, prima di mostrare la sintassi Asp, vediamo in linea teorica ciò che metteremo in pratica. Prima di tutto dobbiamo
definire cosa si intende per “struttura di controllo” indipendentemente dal linguaggio di programmazione o scripting.
Per poterlo capire meglio, riprendiamo la definizione di script usata in precedenza: “Per script si intende una porzione di
codice definita intelligente che è in grado di svolgere operazioni in modo autonomo”.
L’idea è quella di rendere il nostro script capace di eseguire una serie di operazioni per un numero determinato di volte
oppure di saper valutare delle condizioni. Per rendere meglio il concetto, proviamo a pensare ad un bambino piccolo a cui
insegniamo i numeri e a quando imparerà a contare da 1 a 10. L’idea di imparare a contare è coadiuvata da quella di poter
scegliere l’intervallo in cui contare, il ché pone condizioni sull’inizio e la fine della conta.
Dopo questa breve introduzione, esaminiamo i tipi di logica che servono per realizzare le strutture di controllo e ciò che si
può ottenere con esse.
Dopo aver visto uno specchietto riassuntivo dei tre diversi tipi di logiche che compongono l’Active Server Page,
vedremo nelle prossime pagine come si compone il loro codice, quali sono le loro caratteristiche e condizioni per
esser eseguite correttamente e capirne il loro funzionamento tramite esempi semplici ed efficaci.
Ritorna all'indice
1.08 - Logica condizionale: if … then
Questo tipo di logica, dopo aver valutato una condizione, determina quali sono le istruzioni da eseguire.
Osservando l’immagine è possibile notare come il normale flusso del programma venga deviato dalla valutazione della condizione
sul ramo opportuno a seconda della verifica della condizione stessa.
Possiamo anche provare a stabilire una semplice regola per tradurre l’operazione condizionale dall’italiano al Visual Basic
utilizzato con ASP.
Adesso finalmente arriva il codice ASP:
<%
dim strNome 'Dichiarazione delle variabili
strNome="innovatel"
if strNome="innovatel" then 'Verifica condizione
'Blocco di istruzione se la condizione è vera
response.write "Il visitatore èinnovatel."
else
'Blocco di istruzione se la condizione è falsa
response.write "Visitatore Anonimo."
end if
%>
In questo caso viene mostrata a video la scritta “Il visitatore è innovatel.” in quanto la condizione è vera.
Se provate a variare il contenuto della stringa strNome con un qualunque valore diverso da "innovatel", verrà mostrata a
video l’altra stringa “Visitatore Anonimo”.
Dopo questo semplice esempio di condizione, voglio complicare la situazione. Supponiamo che nel blocco di azioni del ramo
falso voglia mettere un’altra condizione. Come posso fare? Esistono due modalità. La prima consiste nel nidificare un
secondo if all’interno del primo. Nidificare, o annidare, significa proprio “inserire” una struttura in un’altra.
Ecco un esempio:
<%
dim strNome
strNome = "innovatel"
if strNome="pippo" then
response.write "ciao pippo"
else
if strNome="tizio" then
response.write "Ciao tizio"
else
response.write "Ciao innovatel"
end if
end if
%>
Dopo l’esempio dell’uso di condizioni nidificate, vediamo l’altra possibilità che ci viene offerta dal linguaggio
per eseguire lo stesso codice asp.
<%
dim strNome
strNome="innovatel"
if strNome="pippo" then
response.write "ciao pippo"
elsif strNome="tizio" then
response.write "Ciao tizio"
else
response.write "Ciao innovatel"
end if
end if
%>
In questo codice notiamo che dalla “fusione” di else ed if abbiamo il costrutto elsif.
Naturalmente, dopo elsif, va posta una condizione. Prima di “abbandonare” il costrutto if per mostrarne uno simile devo specificare
una cosa non detta il precedenza: il ramo della condizione vera è OBBLIGATORIO, mentre quello della condizione falsa è facoltativo.
Composizione if:
if CONDIZIONE then
'Ramo vero
'-- Inizio Parte Opzionale
else
'Ramo Falso
'-- Fine Parte Opzionale
end if
Ritorna all'indice
APPENDICE - ESEMPI
TEST1: test personali su esempi trovanti nel WEB
TEST2: test personali su esempi trovanti nel WEB
CorsoWEB: il mio primo programma ASP (Voto: 10)
SampleDB: esempio di query parametrica con risultato immediato (Voto: 8)
Gestione record: tabella formato excel con possibilità di aggiungere, cancellare e modificare record (Voto: 6)
Tab editor: amministrazione remota (via Web) di database Access (Voto: 8)
DataGrid: Paging
DataGrid: DBConn_Exist
DataGrid: New_DBConn
Data Grid Class è una classe che emula in ambiente ASP classico uno dei più importanti controlli ASP.NET (Voto: 7)
Asp DB Admin Control:
semplice ma efficace strumento di amministrazione via web di database Access.
Offre, tra l'altro, una funzione di login, un pannello di controllo e la possibilità di modificare, aggiungere e cancellare record.
L'installazione richiede semplicemente la modifica della stringa di connessione al database (Voto: 9)
DBList1
DBList2
Con DBList è possibile effettuare tramite una semplice pagina web tutte le operazioni più comuni su tabelle di database:
visualizzazione, modifica, cancellazione, aggiunta di record, filtro, ricerca. dbList può essere scaricata direttamente dal sito personale dell'autore (Voto: 9)
iGallery
iGallery è un'applicazione completa per la generazione di gallerie di immagini su sistemi Windows + ASP.
Basata sull'utilizzo di un database Access 2000 contenuto nello zip allegato, è dotata di una ricca interfaccia di amministrazione e di una serie
completa di strumenti di gestione (Voto: 9)
|