Articoli Referenze Script FAQ Downloads ASP E-Commerce con ASP Menu Javascript Area Aziende Cocktail Registrazione domini



Utilizzo di ASP nelle applicazioni Wireless (WAP)

Home + Articoli + WAP + Articolo # 23
Autore: Luca Ruggiero

Concesso in esclusiva a Mr.Webmaster. Vietata la riproduzione.


Con ASP è possibile interagire con applicazioni atte a girare su browser differenti dai tradizionali PC e Notebook, ovvero su di dispositivi come cellulari, palmari e PDA, quindi tecnologie di tipo WAP (Wireless Application Protocol) basate sul linguaggio di interfaccia WML (Wireless Markup Language).

I requisiti richiesti per la piena comprensione di questo Articolo sono una minima conoscenza del WML, una sufficiente conoscenza dell'ASP ed una buona forma-mentis che permetta di capire le differenze tra i vari dispositivi (e relative tipologie di browser) citati in precedenza.

Iniziamo con una breve introduzione ai tre requisiti richiesti.

Il WML è un linguaggio di Markup simile all'HTML ma con la rigidità dell'XML, quindi basato sulle specifiche dell'XHTML, che in più possiede dei Tag propri. Al WML si accompagna un linguaggio di scripting lato client similissimo al Javascript, chiamato WMLScript. I motivi per cui si utilizza il WML e non il tradizionale HTML per la realizzazione di pagine Web specifiche per dispositivi mobili sono sostanzialmente due:
  1. per i dispositivi mobili è necessario un linguaggio di Markup completamente standardizzato per evitare malfunzionamenti visivi e funzionali delle pagine, dato che i browser dei dispositivi mobili sono diversi da dispositivo a dispositivo e non si limitano ai 4 o 5 browser in voga sui PC e Notebook (Internet Explorer, Mozilla, Netscape Navigator, Opera, etc...);
  2. un cellulare, un palmare, un PDA, o altri dispositivi mobili, hanno uno schermo di gran lunga più piccolo e strutturalmente diverso da un classico monitor di un PC; il WML è studiato e strutturato per far fronte a questa esigenza.
Se a questi due punti aggiungiamo anche la differenza di banda, potenza e velocità di un dispositivo mobile rispetto ad una workstation tradizionale, abbiamo già dato anche una risposta al terzo requisito richiesto per la comprensione di questo Articolo.

ASP è un linguaggio di programmazione per il Web, ovvero un linguaggio di scripting, che opera lato server, consentendo una comoda interfaccia con i database e con altri supporti e strutture di dati come file di testo ed XML.

Prima di iniziare la parte pratica dell'Articolo devo fare un'altra doverosa premessa: per testare il risultato dell'esempio che andremo ad implementare è necessario procurarsi un cellulare ingrado di navigare su Internet e di utilizzare un server Web che abbia il supporto per l'interpretazione del protocollo WAP, ovvero qualsiasi server di nuova generazione.

Create adesso il file wap_test.asp che utilizzeremo per l'implementazione dei nostri esempi.

Prima operazione che è necessario espletare, al fine di ottenere una corretta visualizzazione della pagina, è la definizione del tipo MIME adatto ad un dispositivo mobile, ovvero l'impostazione del ContentType sul valore text/vnd.wap.wml com nell'esempio che segue
<%
    Response.ContentType = "text/vnd.wap.wml"
%>
Altre impostazioni inziali quali la dichiarazione esplicita delle opzioni, la gestione degli errori, la bufferizzazione dell'output e cosi via, sono opzionali; comunque, per completezza, diciamo che l'intestazione completa del nostro file wap_test.asp potrebbe essere la seguente
<%@LANGUAGE = VBScript%>
<%
    Option Explicit
    On Error resume Next
    Response.Buffer = True
    Response.ContentType = "text/vnd.wap.wml"
%>
Prima di passare alla pratica dell'esempio è necessario implementare un controllo, ovvero verificare che se il browser che sta tentando di visitare la pagina non è un browser di un dispositivo mobile ma un tradizionale browser Web, è necessario impedire il proseguimento perchè il file non verrà visualizzato ma si aprirà la classica finestra di download come se si stesse tentando di scaricare il file, e per sicurezza è opportuno evitare che ciò avvenga.

Aggiungiamo quindi il seguente controllo che potete ampliare a vostro piacimento sulla scorta del suo significato di base
<%
    Dim browser
    browser = Request.ServerVariables("HTTP_USER_AGENT")
    If InStr(browser, "Mozilla") > 0 Then
        Response.Redirect "web_test.asp"
    End If
%>
Nell'esempio rimandiamo l'utente al file web_test.asp, ovvero un classico file ottimizzato per la visualizzazione su Web e non su tecnologia WAP; in alternativa potete usare una soluzione più drastica e non per questo più sicura, ovvero interrompere l'esecuzione della pagina sostituendo il redirect con Response.End.

Tralascio un attimo l'esempio pratico dell'interazione tra ASP ed un'applicazione WAP per aprire una doverosa parentesi per i lettori che non hanno mai avuto esperienza col WML.

Una struttura WML, coma abbiamo già detto in precedenza, è simile ed in certi casi identica a quella dell'HTML ma si basa sugli standard dell'XML; ogni file quindi inizierà con la dichiarazione XML e con l'inclusione della DTD (Document Type Definition) associata
<?xml version="1.0"?>
<!DOCTYPE WML PUBLIC "-//WAPFORUM//DTD WML 1.0 EN" 
"http://www.wapforum.org/DTD/wml.xml" />
Un documento WML ha una macrostruttura chiamata DECK, ognuna delle quali è composta da elementi chiamati CARDS ovvero le unità di visualizzazione sul browser che per il dispositivo WAP sarebbero le pagine vere e proprie.

L'interpretazione ed il caching del DECK e delle relative CARDS sul browser del dispositivo mobile avviene come nei browser Web normali per gli elementi lato client come gli elementi HTML, CSS e dgli script.

L'inizio del DECK è dato dal Tag <wml> ed ogni CARDS è specificata grazie al Tag <card> il quale supporta diversi attributi per far fronte a diverse esigenze, e non è questa la sede adatta a far luce su tutto.

Detto questo facciamo un esempio di pagina WML statica
<?xml version="1.0"?>
<!DOCTYPE WML PUBLIC "-//WAPFORUM//DTD WML 1.0 EN" 
"http://www.wapforum.org/DTD/wml.xml" />
<wml>
    <card id="MyCard">
        <p align="left">Hello, WAP!</p>
    </card>
</wml>
Eseguendo (in locale o in remoto) questa pagina nel browser del vostro cellulare, palmare o PDA, avrete come risultato il testo
Hello, WAP!
Sulla scorta di questo esempio statico ed in base a quanto stabilito in precedenza in merito alla struttura ASP da associare ad un'applicazione WAP, uniamo entrambe le cose per creare un file ASP che interagisca con un'applicazione WAP. Di seguito il codice del file wap_test.asp
<%@LANGUAGE = VBScript%>
<%
    Option Explicit
    On Error resume Next
    Response.Buffer = True
    Response.ContentType = "text/vnd.wap.wml"
    Dim browser
    browser = Request.ServerVariables("HTTP_USER_AGENT")
    If InStr(browser, "Mozilla") > 0 Then
        Response.Redirect "web_test.asp"
    End If
    Dim risultato
    risultato = "Hello, WAP!"
%>
<?xml version="1.0"?>
<!DOCTYPE WML PUBLIC "-//WAPFORUM//DTD WML 1.0 EN" 
"http://www.wapforum.org/DTD/wml.xml" />
<wml>
    <card id="MyCard">
        <p align="left"><%=risultato%></p>
    </card>
</wml>
L'output sul vostro dispositivo mobile sarà sempre il testo
Hello, WAP!
Provate, ad esempio, a divertirvi creando dei cicli, impostando delle condizioni, a leggere degli array ed altre cose del genere, al fine di prendere sempre più confidenza con la sintassi WML, ricordando sempre però di rispettare le specifiche dell'XHTML e la struttura DECK#CARDS.

Dal momento che il server su cui verrà ospitata l'applicazione sarà sempre un server Web normale, potete tranquillamente creare applicazioni basate su database, file di testo, XML ed altre strutture di dati, visualizzabili attraverso il vostro cellulare!

© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti
  Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones