============================================================
 Introduzione ad ASP
============================================================

ASP è l'acronimo di Active Server Pages, in sostanza Pagine Web Dinamiche.
Tutto ciò che è racchiuso tra i delimitatori <% e %> è ASP, mentre il resto verrà interpretato come semplice HTML.
Per visualizzare correttamente ASP dovrete installare un IIS o un Personal Web Server, mentre per scriverlo potete tranquillamente usare in Notepad di Windows o un qualsiasi programma per siti (FrontPage, Dreamweaver..).

Iniziamo subito a vedere un esempio di pagina ASP;

<HTML>
<HEAD>
<TITLE>
Esempio ASP</TITLE>
<BODY>
Riga scritta in HTML
<% Response.Write "Riga scritta in ASP" %>
</BODY>
</HTML>

Ora salva il file, ad esempio come "Esempio.asp", caricalo sul tuo server e richiamalo con il Browser.
Il risultato sarà una semplice pagina con due righe scritte. La prima con HTML, la seconda con un piccolo script ASP! Tutto ciò è stato possibile grazie all'Oggetto Response, associato all'istruzione Write, che ha la funzione di scrivere a video ciò che gli viene indicato.
Da quel poco che abbiamo visto si può notare che ASP in sostanza è un interprete, che traduce il codice in comune HTML per poi trasmetterlo al Browser e renderlo visibile.

============================================================
 Gli Oggetti
============================================================

Ora che abbiamo visto come funziona ASP andiamo ad analizzare alcuni dei suoi componenti fondamentali, visti anche nella precedente lezione.
Gli OGGETTI sono dei corpi astratti ai quali devono essere associati dei "Metodi" (quello che possono fare), e delle "Proprietà" (le loro caratteristiche).

Facendo un esempio pratico, immaginate di avere un foglio di carta (l'oggetto in questione); bene, questo foglio potrebbe essere a righe, a quadretti, lucido. Queste sono le sue Proprietà.
Inoltre, il foglio potrebbe essere usato per scrivere o disegnare; queste funzioni sono i suoi Metodi.

NOTA - Alcuni Oggetti possono essere associati anche a delle Raccolte di Elementi, chiamate Colections, che servono ad identificare il soggetto dell'azione indicata nell'Oggetto.
La sintassi è la seguente;

[OGGETTO].[METODO o PROPRIETA' o COLLECTION]

Gli Oggetti in ASP sono i seguenti, anche se noi per ora ci occuperemo degli ultimi due della lista;

OGGETTO RESPONSE

METODI                 AddHeader, AppendToLog, BinaryWrite, Clear, End, Flush, Redirect, Write

PROPRIETA'         Buffer, CacheControl, CharSet, ContentType, Expires, ExpiresAbsolute, IsClintConnected, Pics,
                                  Status

COLLECTIONS      Cookies

ESEMPI                   Response.Buffer = False
                                  Response.Redirect "http://www.msn.it"
                                  Response.Write = "Ciao!"

Nell'oggetto Response.Write è anche possibile usare Tags HTML. Ecco come;

<% Response.Write "<b>Scritta In Grassetto</b>" %>

Si può anche visualizzare del testo con vicino il risultato di un calcolo ottenuto con ASP (cosa che vedremo più avanti) in questo modo;

<% Response.Write "Il risultato è " & NOME_VARIABILE & "/100" %>

OGGETTO REQUEST

METODI                 BinaryRead

PROPRIETA'         TotalBytes

COLLECTIONS     ClientCertifcate, Cookies, Form, QueryString, ServerVariables

ESEMPI                   Request.Form("nome_campo")
                                  Request.QueryString("nome_campo")
                                  Request.Cookie("tuo_nome")

============================================================
 Applicazioni Pratiche
============================================================

Bene, è ora di mettere in pratica ciò che abbiamo imparato.
Grazie agli Oggetti Response e Request visti in precedenza potremmo già sviluppare un'applicazione in grado di recuperare i valori inseriti da un utente in un Form e di stamparli a video.
Ci serve prima di tutto un Form, qualcosa del genere;

<HTML>
<HEAD>
<TITLE>
Form Inserimento Dati</TITLE>
<BODY>
<FORM method="post" action="
Applicazione.asp"
Come ti chiami? <input type="text" name="nome">
Quanti anni hai? <input type="text" name="anni">
<input type="Submit" value="INVIA">
</FORM>
</BODY>
</HTML>

Ora che abbiamo il nostro Form in cui inserire i dati ci serve l'applicazione che se li andrà a prendere.
Salvatela come "Applicazione.asp". Ecco il codice;

<HTML>
<HEAD>
<TITLE>
Applicazione ASP</TITLE>
<BODY>
<%
Dim
tuo_nome, tuoi_anni
tuo_nome = Request.Form("nome")
tuoi_anni = Request.Form("anni")
Response.Write " Ti chiami " & tuo_nome & " ed hai " & tuoi_anni & " anni!

Grazie a questa applicazione in ASP possiamo recuperare il valore dei due campi del Form grazie a Request.Form ("nome_campo") e li possiamo associare ("=") a due variabili ("tuo_nome" e "tuoi_anni"). Alla fine possiamo stamparli a video grazie a Response.Write!

============================================================
 Un paio di consigli
============================================================

Ecco un paio di consigli per sviluppare in maniera più facile, alla luce di quanto visto finora;

UTILIZZARE LO STESSO CODICE IN PIU' PAGINE

Spesso capita di dover creare più pagine web che contengano lo stesso codice ASP o parti di esso. Per non dover riscrivere ogni volta tutto e caricarsi di lavoro inutile è sufficente utilizzare la funzione Include, specificando bene il percorso al file da includere.

<!-- #Include File="nome_del_file_da_includere.asp" -->

STAMPARE LE VARIABILI

Prima abbiamo visto i modi "classici" di stampare a video una variabile, ovvero <% Response.Write NOME_VARIABILE %>, oppure
<% Response.Write "...testo..." & NOME_VARIABILE & "...testo..." %>.
Ecco un altro modo, altrettanto corretto ma più comodo, se si sta realizzando una pagina mista ASP e HTML;

...testo... <%=NOME_VARIABILE%> ...testo...

============================================================
 Le Variabili
============================================================

Le variabili sono una sorta di "contenitore" in cui vengono memorizzati dei dati, che in seguito possono essere tranquillamente recuperati facendo riferimento al nome della variabile. Ne esistono di diversi tipi;

- Stringa (testo)
- Data (data ora)
- Numeri (interi o decimali)
- True/False (variabili booleane)
- Oggetto (per i DB)
- Valuta

Grazie a VisualBasic possiamo avere anche delle variabili di tipo "Variant", cioè una variabile che può contenere diversi tipi di dati.
VB, comunque, non necessita che le variabili vengano necessariamente dichiarate; è possibile utilizzarle senza particolari formalità. Questa regola però non vale se nel nostro documento abbiamo inserito

<% Option Explicit &>

In questo caso saremo sempre costretti a dichiarare ogni variabile presente nel documento.
E' comunque consigliabile effettuare ugualmente la dichiarazione delle variabili al fine di facilitare il compito alla macchina in sede di debug del codice.
Farlo è molto semplice, soprattutto con ASp. Basta utilizzare la seguente sintassi;

<% Dim NOME_VARIABILE_1, NOME_VARIABILE_2, NOME_VARIABILE_3 %>

In questo modo le abbiamo definite, ma ora è necessario assegnargli dei valori. Per farlo è sufficente utilizzare l'operatore di uguaglianza ("=") in questo modo;

<% Dim NOME_VARIABILE_1, NOME_VARIABILE_2, NOME_VARIABILE_3
NOME_VARIABILE_1 = "contenuto della variabile"
NOME_VARIABILE_1 = "contenuto della variabile"
NOME_VARIABILE_1 = "contenuto della variabile"
%>

Gli array, invece, sono dei gruppi di variabili ch generalmente contengono informzioni dello stesso tipo e genere (ad es. ad un elenco di nomi).
Ecco un esempio:

Dim nomearray(4)

nomearray(0) = 1
nomearray(1) = 2
nomearray(2) = 3
nomearray(3) = 4
nomearray(4) = 5

Le variabili sono molto importanti in ASP, poichè permettono di eseguire Calcoli Matematici.
Gli operatori che è possibile utilizzare sono;

- ()   I calcoli nelle parentesi vengono effettuati prima degli altri.
- ^   Potenza (x^y = x elevato alla y)
- -   Negazione (-x = x * -1)
- *   Prodotto
- /   Divisione (Risultato 5.123)
- \   Divisione tra numeri interi (Risultato 5)
- Mod   Modulo (Trova il resto in una divisione, 5 Mod 2 = 5 diviso 2, il resto è 1)
- +   Addizione
- -   Sottrazione
- &   Unione Stringhe (Unisce stringhe x ed y)
- =   Uguaglanza (x = y)
-