Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Esercizio pratico (sezione ASP)

Realizzare un'applicazione RSS news reader.
Realizzare un'applicazione RSS news reader.
Link copiato negli appunti

Struttura dell'applicazione

In questa fase della guida affrontiamo un problema pratico e reale per realizzare un'applicazione Flash XML che sia capace di leggere le news RSS da diversi siti. 

La nostra applicazione funzionerà in locale per quanto riguarda il file SWF e on line per quanto riguarda le gestione e la memorizzazione dei nostri canali RSS preferiti e per la lettura e la visualizzazione delle news prelevate dai documenti RSS dei vari siti.

Ecco lo schema dell' RSS News reader

Cos'è RSS?

Per prima cosa spieghiamo velocemente che cos'è lo standard RSS. Questo standard si basa sull'XML quindi non è altro che un documento XML dove vengono usati determinati TAG per convenzione. In definitiva i documenti RSS sono tutti simili fra loro per quanto riguarda la struttura. 

Vediamo un esempio di struttura semplificato al massimo: 

<?xml version="1.0" encoding="UTF-8"?>
<rss version="0.91">
    <channel>
            <title>Enrico Lai FLASH open source</title>
            <description>Programming and design...</description>
            <link>http://www.enricolai.com</link>
            <language>it</language>
            <item>
                   
<title><![CDATA[Lancio di due Dadi - 28/11/2002]]></title>
                   
<description><![CDATA[Simulare il lancio di due dadi.]]></description>
                   
<link><![CDATA[http://www.enricolai.com/default.asp?cxpage=2]]></link>
            </item>
            <item>
                   
<title><![CDATA[Orologio EXP AS - 28/11/2002]]></title>
                   
<description><![CDATA[Orologio a lancette realizzato utilizzando gli Action Script.]]></description>
                   
<link><![CDATA[http://www.enricolai.com/default.asp?cxpage=2]]></link>
            </item>
            .
            .
            .
    </channel>
</rss>

Per vedere il documento RSS completo guardate qui: http://www.enricolai.com/rss_it.asp

Funzionamento dell'applicazione Flash

Come avrete intuito la nostra applicazione dovrà andare a leggere dei documenti RSS (XML) da qualunque sito sul web che abbia questo servizio. Per tale motivo come abbiamo già detto nel capitolo Caricare un documento XML su Flash non possiamo creare un'applicazione Flash che gira su Browser perché per i motivi di restrizione del plug-in non riusciremmo a caricare documenti XML da altri siti internet direttamente dal filmato (in seguito vedremo però come raggirare il problema utilizzando uno script lato server che risiede nello stesso dominio dove risiede il filmato). La nostra applicazione funzionerà quindi "stand alone" lanciando direttamente il file SWF o creando un eseguibile (che pesa molto di più ma che funziona anche sui PC che non hanno Flash installato). 

L'RSS news reader per funzionare deve comunque avere attiva una connessione ad internet sia per caricare e visualizzare gli RSS dai vari siti che per poter gestire e amministrare i nostri canali preferiti. Infatti l'applicazione prevede una parte composta da script ASP e Data Base Access che possiamo installare su un nostro server on line, dove possiamo memorizzare l'elenco dei nostri canali RSS preferiti come in una sorta di rubrica (osservate lo schema in alto).

Attenzione: l'utilizzo di ASP e Access non è vincolante! L'applicazione funziona allo stesso modo anche utilizzando per esempio PHP e MySQL. Potete quindi riscrivere il codice degli scripts e utilizzare un altro Data Base se il vostro server non supporta ASP e Access. 

Creiamo il Data Base

Come primo passo possiamo creare il Data Base per memorizzare i nostri canali RSS preferiti.

I dati da memorizzare sono il Titolo e l'URL del canale. 

Basta creare quindi una tabella (chiamata rssnews) con questi record (url e title) più un record per la chiave primaria di ricerca chiamata "id".

Creiamo lo script che legge dal Data Base e crea l'XML con la lista dei nostri canali preferiti

Passiamo al secondo passo, cioè creare uno script che crei un documento XML prelevando i dati da un Data Base. 

E' importante capire che Flash deve interagire con degli script che in ogni caso devono funzionare correttamente in modo autonomo! Questo è molto importante soprattutto quando dobbiamo individuare degli errori o bug di programmazione. In questi casi è opportuno verificare il funzionamento dei vari blocchi indipendenti per cercare di capire dove bisogna intervenire. 

E' vivamente consigliato testare sempre gli script richiamando il loro URL sul browser ed accertarsi che il risultato in output sia quello corretto, prima di eseguire l'applicazione Flash! Così facendo è più facile capire se il problema è sullo script o sul codice Action Script.

Indichiamo qui una possibile implementazione dello script utilizzando ASP (un risultato identico potrà essere ottenuto utilizzando anche altri linguaggi di scripting come PHP o altri ancora).

Script ASP "rss_listdb.asp"

<%
response.ContentType = "text/xml"
Const adOpenKeyset = 1
Const adLockReadOnly = 1
' Stringa di Connessione al Data Base 
' Modificate se necessario il percorso del Data Base sostituendo a "/mdb-database" il nome della vostra cartella che conterrà il DB
StrConnessione = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database") & "rssdb.mdb"
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open StrConnessione
' Selezioni dalla tabella rssnews i dati ordinati per id in modo crescente
SQL = "SELECT * FROM rssnews order by id asc"
' Creo il RECORD SET che contiene tutti i dati selezionati dal Data base
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open SQL, Conn, adOpenKeyset,adLockReadOnly

' Eseguo la paginazione del record set suddividendo i risultati trovati in pagine e selezionando solo la pagina richiesta
PageNumber = 1
if not isnull(request("PageNumber")) and request("PageNumber") <> "" then
 PageNumber = cint(request("PageNumber"))
 RsIn = (Pagenumber - 1) * 8
 rs.move(RsIn)
end if
numrec=8

' Eseguo un ciclo su tutti i dati del Recod set presenti in quella pagina e creo il documento XML in output con i vari TAG
Response.Write "<list>"
Do while not rs.eof and numrec > 0
Response.Write "<canale><id>" & rs("id") & "</id><url>" & rs("url") & "</url><title>"& rs("title") &"</title></canale>"
rs.movenext
numrec = numrec -1
Loop

'aggiungo al documento XML un nodo che contiene il numero totale di record 
response.write "<totrec>"& rs.recordcount &"</totrec>"
Response.Write "</list>"

' libero le risorse
rs.close
set rs=nothing
Conn.Close
set Conn=nothing
%>

Per vedere il risultato del documento XML in output da questo script: http://www.enricolai.com/rss/rss_listdb.asp


Ti consigliamo anche