Il modello di programmazione ASP.NET

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il modello di programmazione ASP.NET"

Transcript

1 Capitolo 1 Il modello di programmazione ASP.NET In questo capitolo: Cos è ASP.NET, in definitiva?... 4 Il modello di componente ASP.NET Lo stack di sviluppo ASP.NET Il modello di provider ASP.NET Conclusioni ASP.NET è una piattaforma di sviluppo Web che fornisce servizi, un modello di programmazione, e l infrastruttura software necessaria a realizzare applicazioni di livello enterprise. Benché la sintassi sia in gran parte compatibile con il popolare predecessore, Active Server Pages (ASP), ASP.NET è un nuovo rivoluzionario framework di programmazione progettato per consentire uno sviluppo rapido di applicazioni Web. Essendo parte della piattaforma Microsoft.NET, ASP.NET fornisce un approccio basato su componenti, estensibile e facile da utilizzare per l implementazione, il deployment e l esecuzione di applicazioni Web destinate a qualsiasi browser o dispositivo mobile. ASP.NET rappresenta l apice delle tecnologie di sviluppo Web che si sono rapidamente susseguite negli ultimi dieci anni, ciascuna basata sulla precedente tecnologia, e ciascuna a colmare le lacune del proprio predecessore. Di conseguenza, ASP.NET è al momento la piattaforma più tecnologicamente avanzata, sofisticata e potente per realizzare applicazioni distribuite trasportate dal protocollo HTTP. Nonostante la crescita sorprendentemente in diffusione e l essere impiegata proficuamente in migliaia di progetti reali, ASP.NET 1.1 è solo il primo passo di una strada chiaramente più lunga. Più si lavora con ASP.NET, più ci si rende conto che è necessario ancora altro. ASP.NET semplifica diversi task e rappresenta una sorta di paradiso della programmazione, in particolare per gli sviluppatori che provengono da ASP classico, dalla programmazione Internet Server Application Programming Interface (ISAPI) o da altre piattaforme Web. ASP.NET 1.1 ha semplicemente stimolato l appetito della comunità degli sviluppatori. Così, dopo i primi mesi di lavoro e valutazione con ASP.NET, i membri di questa community hanno iniziato a chiedere e a desiderare altre funzionalità: in effetti, molte di più. ASP.NET 2.0 rappresenta un principale upgrade alla piattaforma, anche se non introduce alcun paradigma di programmazione nuovo o rivoluzionario. A prima vista, non vi è alcun approccio radicalmente nuovo alla progettazione e all implementazione del codice, e non vi è alcun nuovo modello di sintassi con cui acquisire familiarità.

2 4 Parte I Realizzare una pagina ASP.NET Ciò nondimeno, ASP.NET 2.0 è una pietra miliare della roadmap Microsoft sullo sviluppo Web, sia per gli architetti delle applicazioni sia per gli sviluppatori. Molte delle classi costituenti sono state modificate, e alcune hanno subito degli interventi di lifting estetico. Sono stati aggiunti diversi nuovi controlli per migliorare la produttività, e alcuni moduli di sistema, nuovi o migliorati, rendono ora la pipeline di runtime più personalizzabile, flessibile, robusta e sicura. Di conseguenza, nuove pratiche emergono come best practice, sono disponibili nuove tecniche di programmazione per architetti e sviluppatori, e nuove caratteristiche di sistema forniscono soluzioni native a noti problemi con le precedenti versioni. Per massimizzare i vantaggi nell utilizzo di ASP.NET, si deve prima osservare il modello complessivo: componenti, programmabilità e infrastruttura. Un occhiata da vicino al modello complessivo è esattamente ciò che questo capitolo fornisce. Per iniziare, esaminiamo alcuni concetti essenziali della piattaforma ASP.NET e del relativo modello di programmazione. Cos è ASP.NET, in definitiva? Prima dell avvento di ASP.NET, erano disponibili tre principali tecnologie e piattaforme per sviluppare applicazioni Web: ASP, Java Server Pages (JSP) e la piattaforma Web opensource comunemente riferita come LAMP (Linux più Apache più MySQL più Perl, Python o PHP come linguaggio di programmazione). [Nota] Per completezza, vanno anche menzionate un paio di tecnologie di livello più basso, specifiche delle piattaforme, su cui si basano ASP e JSP. ASP è in effetti una estensione ISAPI, mentre JSP viene implementata come una speciale applicazione servlet. Le estensioni ISAPI su piattaforme basate su IIS e le servlet su sistemi basati su Java, permettono di creare applicazioni lato server, con un deployment Web, utilizzando un approccio più classico. Si scrive un modulo che costruisce e renderizza la pagina piuttosto che progettare la pagina in modo dichiarativo utilizzando un mix di testo di markup e di codice embedded. Benché ciascuna abbia caratteristiche specifiche al linguaggio e all architettura, tutte queste piattaforme di sviluppo Web sono progettate per creare pagine interattive che costituiscono una parte di una applicazione Web. Entro certi limiti, tutte permettono agli sviluppatori di separare la logica di programmazione dal layout di pagina attraverso l utilizzo di componenti che la pagina stessa è responsabile di invocare e renderizzare. A parte questo comune obiettivo finale, esistono importanti differenze tra queste piattaforme, gran parte delle quali sono relative al modello di programmazione e ai linguaggi che promuovono e supportano. Ad esempio, JSP sfrutta il framework Java di classi e, con JavaBeans, fornisce un efficace modello di estensibilità per il riutilizzo dei componenti. Inoltre, JSP supporta la personalizzazione dei tag e permette agli sviluppatori di associare del codice a una definizione di tag custom. Infine, essendo un elemento chiave della piattaforma Java 2 Enterprise Edition (J2EE), JSP si basa sul linguaggio Java, un vero linguaggio compilato, al contrario dei linguaggi di scripting utilizzati da entrambe le piattaforme ASP e LAMP. Pertanto come si posiziona esattamente ASP.NET?

3 Capitolo 1 Il modello di programmazione ASP.NET 5 Analogamente a ASP e ad altri ambienti di sviluppo Web, anche ASP.NET utilizza il protocollo HTTP e sfrutta i comandi HTTP e le policy per impostare una comunicazione e una cooperazione bidirezionale tra browser e server. Ciò che realmente distingue ASP.NET dalla pletora delle altre tecnologie di sviluppo Web è il modello di programmazione astratto che propone, il modello Web Forms. Inoltre, l intera piattaforma ASP.NET è parte nativa del Microsoft.NET Framework. Per essere certi di afferrare l importanza di questo ultimo punto, permettetemi di chiarirlo. Le applicazioni ASP.NET sono blocchi di codice compilato, sono costituite da componenti riusabili e estensibili, possono essere create con linguaggi di tutto rispetto (tra cui C#, Microsoft Visual Basic.NET, Microsoft JScript.NET, e J#), e possono accedere all intera gerarchia di classi del.net Framework. In sintesi, ASP.NET riunisce il meglio dei diversi approcci. È semanticamente compatibile (e vi è, entro certi limiti, anche una compatibilità di linguaggio) con ASP. Fornisce le stesse caratteristiche object-oriented delle applicazioni JSP (personalizzazione dei tag, linguaggi compilati, componenti, estensibilità e riusabilità). E come ciliegina sulla torta, ASP.NET offre una notevole scelta di squisitezze, tool e potenti caratteristiche di sistema che possono essere effettivamente riassunte con l espressione generica tool per astrarre il modello di programmazione HTTP. Una gran quantità di classi di facile utilizzo per i programmatori permettono di sviluppare pagine utilizzando i tipici metodi da applicazione desktop. Il modello Web Forms promuove un approccio complessivo a eventi, ma è distribuito sul Web. [Nota]ASP.NET è supportato su una varietà di piattaforme, compreso Microsoft Windows 2000 con almeno il Service Pack 2, Windows XP Professional e Windows Server Per sviluppare applicazioni server ASP.NET, è anche necessario Internet Information Services (IIS) versione 5.0 o successiva. Altro software necessario, ad esempio Microsoft Data Access Components (MDAC) 2.7, viene automaticamente installato quando si installa il.net Framework. In termini di prestazioni, robustezza e sicurezza, la combinazione ideale di software di sistema per ospitare applicazioni ASP.NET sembra essere Windows Server 2003 (preferibilmente con Service Pack 1) e IIS 6.0. La programmazione nell era delle Web Forms La motivazione alla base del modello ASP.NET Web Forms è direttamente connessa alla ricerca di una migliore strategia per gestire la crescente richiesta di una interazione Web economica ma potente. Difatti, il protocollo HTTP rappresenta la maggiore forza e debolezza delle applicazioni Web. La natura stateless del protocollo HTTP introduce concetti di programmazione del tutto differenti, estranei a molti sviluppatori desktop: innanzitutto, tra questi concetti, la gestione dello stato di sessione. D altro canto, l intrinseca semplicità e scalabilità di HTTP è la chiave della sua adozione universale e della sua efficacia: in sintesi, probabilmente non potremmo avere Internet per come la conosciamo senza un protocollo come HTTP. Eppure, man mano che aumenta la richiesta di applicazioni sofisticate e potenti, i programmatori devono escogitare dei modi migliori per stabilire una facile ed efficace comunicazione dal client al server e viceversa.

4 6 Parte I Realizzare una pagina ASP.NET Col tempo, sono state sperimentate varie tecniche per agevolare la comunicazione tra pagine differenti e tra più invocazioni alla stessa pagina. Gran parte dei programmatori sono abituati a pensare in termini di azione generata dal client che produce una reazione lato server. Questo pattern essenziale e fondamentale non può essere seguito sul Web, perlomeno non alla lettera. È necessario un certo grado di astrazione e alcuni servizi di sistema perché si abbia una comunicazione agevole. ASP, molto più di JSP, pensa in modo dichiarativo ed ha un modello a oggetti abbastanza esiguo e inadeguato. In generale, i programmatori che sono diventati programmatori Web sono costretti ad adottare una mentalità differente e a scaraventare dalla porta il comune paradigma di azione/reazione. Programmazione a eventi su HTTP I Web Forms ASP.NET estendono al Web il modello di interazione a eventi. L implementazione di un modello a eventi sul Web richiede che qualsiasi dato relativo all attività dell utente lato client sia inoltrato al server per una elaborazione corrispondente e stateful. Il server processa l output delle azioni del client e scatena delle reazioni. Lo stato dell applicazione contiene due tipi di informazioni: lo stato del client e lo stato della sessione. Lo stato del client, per lo più il contenuto dei campi di input del form collegialmente riferiti come stato della pagina, è facilmente accessibile attraverso le collection lato server che memorizzano i valori postati. E per quanto riguarda lo stato complessivo della sessione? Il client si aspetta che l invio di informazioni al server attraverso una pagina sia naturalmente correlato a qualsiasi altra pagina che può visualizzare in seguito, così come avviene quando si aggiungono articoli a un carrello. Chi ricorda cosa un particolare utente ha nel carrello? Di per sé, HTTP non è in grado di tener di traccia di queste informazioni; ed è qui che entrano in gioco lo stato della sessione e una opportuna infrastruttura lato server che circonda e integra HTTP. Non è mai abbastanza enfatizzare l importanza della comprensione dei concetti coinvolti nella programmazione stateless nello sviluppo di applicazioni Web. Come già detto, HTTP è un protocollo stateless, il che significa che due richieste successive durante la stessa sessione non hanno alcuna conoscenza reciproca. Vengono risolte da ambienti appena istanziati in cui non viene mantenuta alcuna informazione specifica di sessione, ad eccezione delle informazioni che l applicazione stessa può aver memorizzato negli oggetti globali. In ASP, i form rientranti rappresentavano un modo comune per aggirare questa limitazione di sistema. Un form rientrante è un elemento HTML <form> che esegue il post alla stessa pagina che lo contiene. I form rientranti di per sé non risolvono pienamente il problema. Tuttavia, combinandoli con blocchi di codice e campi nascosti che memorizzano le informazioni di stato critiche per la pagina, molti sviluppatori superano elegantemente l ostacolo. Ciò che rappresentava una best-practice ASP è stata standardizzata e integrata nel runtime ASP.NET per diventare la caratteristica principale che dota le applicazioni ASP.NET di una manutenzione automatica dello stato. Il runtime ASP.NET trasporta lo stato di pagina avanti e indietro unitamente alle richieste di pagina. Nel generare codice HTML per una determinata pagina, ASP.NET codifica e inserisce lo stato degli oggetti lato server in alcuni campi nascosti, creati in modo del tutto trasparente. Quando viene richiesta la pagina, lo stesso motore del runtime ASP.NET ricerca le informazioni di stato embedded, ossia i campi nascosti, e utilizza qualsiasi informazione decodificata per impostare le istanze

5 Capitolo 1 Il modello di programmazione ASP.NET 7 appena create degli oggetti lato server. L effetto finale di tale meccanismo non è diverso dal modello Windows Forms sul desktop ed è riassunto nella Figura 1-1. Figura 1-1 Confronto tra i modelli Windows Forms e Web Forms del.net Framework. Il modello Windows Forms deriva dal tipico stile di programmazione a eventi desktop. Non importa che connettività esista tra i componenti client e server, il server opera sempre in reazione all input del client. Il server è consapevole dello stato complessivo dell applicazione e opera in una modalità two-tier, connessa. Il modello Web Forms necessita di qualche meccanismo per supportare lo stesso modello di programmazione a eventi. In Figura 1-1, il meccanismo necessario viene rappresentato dalla deserializzazione dello stato che si verifica quando viene richiesta la pagina, e dalla serializzazione dello stato eseguita quando sta per essere generata la risposta HTML. A farsi carico di questo lavoro di filtraggio è il runtime HTTP di ASP.NET, un blocco di codice che estende e specializza le funzionalità complessive del Web server ospite. I form rientranti e i campi nascosti rappresentano gli strumenti di basso livello utilizzati per eseguire il trucco. Un tale modello non sarebbe tanto efficace senza un sofisticato modello a oggetti di backend, che abbraccia l intero contenuto della pagina server. Cruciale alla realizzazione e al funzionamento efficace della piattaforma di sviluppo ASP.NET è il modello a componenti. Il modello a componenti ASP.NET identifica e descrive i blocchi fondamentali delle pagine ASP.NET. Viene implementato attraverso un modello a oggetti che fornisce un equivalente lato server a, virtualmente, qualsiasi elemento della pagina HTML, tra cui i tag HTML come <form> e <input>. Inoltre, il modello a oggetti ASP.NET comprende numerosi componenti (detti controlli server o controlli Web) che rappresentano elementi più complessi dell interfaccia utente (UI). Alcuni di questi controlli non hanno alcuna mappatura diretta con singoli elementi HTML ma vengono implementati combinando più tag HTML. Esempi tipici di complessi elementi UI sono il controllo Calendar e il controllo DataGrid.

6 8 Parte I Realizzare una pagina ASP.NET Alla fine, una pagina ASP.NET è costituita da un certo numero di controlli server mescolati con testo letterale, markup e immagini. I dati sensibili estratti dalla pagina e lo stato dei controlli vengono memorizzati in modo non intrusivo in campi nascosti, e formano il contesto di questa richiesta di pagina. L associazione tra una istanza della pagina e il relativo stato è inequivocabile, non modificabile da programma, ed è controllato dal runtime HTTP ASP.NET. Il modello a componenti ASP.NET è la prima sosta verso una completa comprensione della piattaforma ASP.NET. Il modello a componenti vi scorta attraverso l intero ciclo di sviluppo, compresa la fase di creazione della pagina e la configurazione di sistema a runtime, come mostrato nella Figura 1-2. Figura 1-2 Una vista dello stack di sviluppo ASP.NET. La freccia indica la tipica prospettiva top-down dell applicazione, che va dall interfaccia utente ai servizi di sistema. Prima di addentrarci nei vari elementi mostrati nella Figura 1-2, esaminiamo brevemente i fondamenti del protocollo HTTP, che rimane la base dell interazione Web. Dopodiché, passeremo a descrivere la struttura di una pagina ASP.NET e come scrivere e distribuire le applicazioni ASP.NET. Il protocollo HTTP Questo paragrafo fornisce una rapida panoramica su come operano applicazioni Web. Se si ha già una conoscenza operativa dell infrastruttura Web, si può saltare al successivo paragrafo Struttura di una pagina ASP.NET. L acronimo HTTP è diventato così comune per noi sviluppatori che talvolta non ricordiamo esattamente

7 Capitolo 1 Il modello di programmazione ASP.NET 9 cosa significa. Effettivamente, HTTP significa Hypertext Transfer Protocol. HTTP è un protocollo testuale che definisce come comunicano i browser Web e i server Web. Il formato dei pacchetti HTTP è descritto completamente nel documento RFC 2068 ed è disponibile all indirizzo I pacchetti HTTP viaggiano su una connessione Transmission Control Protocol (TCP) diretta di default verso la porta 80 dell indirizzo Internet Protocol (IP) di destinazione. La richiesta HTTP Quando si fa puntare il browser a una URL, il browser utilizza il Domain Name System (DNS) disponibile per tradurre il nome del server fornito nella URL in un indirizzo IP. Successivamente, il browser apre un socket e si connette alla porta 80 di questo indirizzo. Il pacchetto con la richiesta di download per default.aspx può assumere la seguente semplice forma: GET /default.aspx HTTP/1.1 Host: La prima riga di testo in una richiesta è la start line della richiesta. Deve contenere il nome del comando HTTP da eseguire (GET in questo caso), la URL della risorsa, più la versione del protocollo HTTP che si vuole utilizzare. Una richiesta HTTP può contenere, e di solito contiene, alcuni header. Un header HTTP è una riga di testo che fornisce ulteriori informazioni sulla richiesta. Nella richiesta HTTP appena mostrata, la riga che inizia con Host: è un header HTTP. Gli header che si possono trovare in una richiesta HTTP comprendono i seguenti: User-Agent Identifica il tipo di browser che ha originato la richiesta Connection Chiude una connessione o mantiene attiva una connessione If-Modified-Since Fornisce una validazione della cache lato client GET e POST rappresentano i comandi o verbi HTTP più comunemente utilizzati. Il verbo GET significa recuperare qualsiasi informazione sia identificata dalla URL richiesta. Il verbo POST viene utilizzato per richiedere che il server di origine accetti il contenuto racchiuso nella richiesta e lo processi. Tipicamente, il verbo POST viene utilizzato per fornire un blocco di dati (ossia, il risultato di un invio di un form) a un processo di gestione dati. La risposta HTTP La risposta del server comprende una status line costituita dalla versione del protocollo del messaggio e dal cosiddetto exit code (che indicano l esito positivo o che si è verificato un errore). La status line è seguita da un gruppo di header, tipicamente il tipo di contenuto e la lunghezza della pagina, e dal contenuto del body. Una riga vuota separa il contenuto del body dal resto del messaggio, come mostrato nella seguente risposta: HTTP/ OK Server: Microsoft-IIS/5.0 Content-Type: text/html

8 10 Parte I Realizzare una pagina ASP.NET Content-Length: 51 <html><body><h1>asp.net is cool!</h1></body></html> Il codice precedente illustra il semplice output HTML restituito dal Web server. Richieste e risposte sono stringhe formattate in base allo schema HTTP, e viaggiano su una connessione TCP. Il codice 200 significa che l elaborazione della richiesta ha avuto esito positivo. Il Web server specificato processa la richiesta e restituisce un contenuto di una certa lunghezza espresso in un determinato tipo Multipurpose Internet Mail Extensions (MIME), (text/html). I codici HTTP che possono essere restituiti vengono elencati nella specifica HTTP, disponibile alla suddetta URL. Inoltre, va notato che la riga vuota tra l ultimo header e il contenuto della risposta HTTP non è semplice formattazione: la coppia carriage-return/line-feed è richiesta ed è una parte precisa dello standard. Cosa accade dopo, dipende in gran parte dal tipo MIME e dalle funzionalità del browser locale. Finché il tipo MIME è text/html, il browser visualizza il contenuto come HTML. Se il tipo MIME è, ad esempio, text/xml, alcuni browser renderizzeranno il contenuto come semplice testo, mentre altri (ad esempio, Microsoft Internet Explorer 6.0) applicheranno uno stylesheet predefinito. Realizzare un livello di astrazione lato server Ogni conversazione tra browser e Web server è costituita da uno scambio di pacchetti simile a quella che abbiamo appena esaminato. Se la URL richiesta è una pagina HTML, il server Web tipicamente legge il contenuto del file.html e lo inietta nel corpo del pacchetto di risposta. Se la URL è una pagina ASP.NET, viene coinvolto uno speciale modulo IIS. Il modulo è un plug-in IIS ISAPI. Una estensione ISAPI è una dynamic-link library (DLL) registrata per gestire una determinata estensione di file. Una estensione ISAPI registrata per gestire file.aspx viene coinvolta ogni qualvolta giunge una richiesta per questo tipo di risorsa. L estensione ISAPI analizza la richiesta e configura l ambiente lato server che processerà effettivamente il sorgente della pagina. Quando lo stato della richiesta è stato recuperato con esito positivo ed è stato completamente ripristinato, alla pagina viene permesso di passare in esecuzione e di produrre l output HTML. Invio di form Il tag HTML <form> è l unico elemento autorizzato a trasmettere al server dati lato client. Quando l utente clicca su un pulsante di tipo submit, per progetto il browser inserisce il contenuto corrente di tutti i controlli che appartengono al form in una stringa. La stringa viene quindi passata al server come parte del comando GET o POST. Il seguente frammento HTML illustra un semplice form che contiene una textbox e un pulsante submit. Come si può vedere, al form viene associato il comando POST e la URL default.aspx: <form method= post action= default.aspx > <input type= text name= EmpCode /> <input type= submit value= Send /> </form>

9 Capitolo 1 Il modello di programmazione ASP.NET 11 La seguente richiesta mostra il comando POST che raggiunge il server Web quando l utente clicca il pulsante submit: POST /default.aspx HTTP/1.1 Host: Content-Type: application/x-www-form-urlencoded Content-Length: 12 EmpCode=1001 Mentre elabora la richiesta di pagina, l estensione ISAPI scandisce il body della richiesta ed espone qualsiasi informazione trovata attraverso un modello a oggetti più agevole per il programmatore. Ad esempio, invece di rimanere una semplice stringa nome/valore, la variabile EmpCode viene spostata all interno di una collection a livello di applicazione: la collection Request.Form. Ciò rappresenta un primo livello di astrazione implementato sul grezzo modello di programmazione HTTP. Oggetti come Request, Response e Server formano il contesto HTTP della invocazione e, in quanto tali, rappresentano l insieme minimo di oggetti che si trovano in gran parte delle piattaforme di sviluppo Web, compreso JSP e ASP. In ASP.NET, tuttavia, se ne trovano molti altri. Struttura di una pagina ASP.NET Una pagina ASP.NET è un file di testo lato server salvato con estensione.aspx. La struttura interna della pagina è estremamente modulare e comprende tre sezioni distinte: direttive di pagina, codice e layout di pagina: Direttive di pagina Le direttive di pagina impostano l ambiente in cui verrà eseguita la pagina, specificano come il runtime HTTP dovrà processare la pagina, e determinano quali assunzioni è sicuro fare sulla pagina. Le direttive permettono anche di importare i namespace per semplificare la codifica, caricare gli assembly al momento non presenti nella Global Assembly Cache (GAC), e registrare nuovi controlli con nomi di tag e prefissi di namespace personalizzati. Sezione di codice La sezione di codice contiene gli handler degli eventi di pagina e dei controlli, più delle routine di supporto opzionali. Qualsiasi codice sorgente pertinente alla pagina può essere inserito inline o allegato alla pagina attraverso un file separato. Se inserito inline, il codice viene inserito in un tag con il fuorviante nome di <script>. (Il nome <script> è stato scelto per motivi di compatibilità all indietro). I tag <script> lato server vengono distinti dai tag <script> lato client per mezzo dell utilizzo dell attributo runat=server. (Torneremo su ciò a breve). Qualsiasi codice di pagina viene sempre compilato prima dell esecuzione. In ASP.NET 2.0, può anche essere precompilato e distribuito sotto forma di assembly binario. Layout di pagina Il layout di pagina rappresenta lo scheletro della pagina. Comprende i controlli server, il testo letterale e i tag HTML. L interfaccia utente dei controlli server può essere rimpolpata un po utilizzando gli attributi dichiarati e le proprietà dei controlli.

10 12 Parte I Realizzare una pagina ASP.NET Perché la pagina funzioni, non è necessario specificare tutte le sezioni. Benché le pagine reali comprendano tutte le sezioni menzionate, pagine perfettamente valide e funzionali possono comprendere solo la sezione di codice o il layout di pagina. In alcuni casi speciali, si può anche avere una pagina ASP.NET costituita da una singola direttiva. Nel Capitolo 2, e ancor più nel Capitolo 3, tratteremo a fondo le caratteristiche di una pagina e i blocchi costituenti. Una pagina ASP.NET d esempio È il momento di vedere come appare una pagina ASP.NET. Per iniziare, sarà sufficiente un semplice editor di testo; pertanto apriamo Notepad e lasciamo riposare il gigante addormentato (Microsoft Visual Studio.NET). Il codice seguente implementa una semplice pagina ASP.NET che permette di inserire una stringa e quindi di trasformarla in maiuscolo dopo aver premuto un pulsante. Per semplicità, utilizziamo del codice inline. (Come si vedrà in seguito, non è così che si farà nelle applicazioni reali e in qualsiasi pagina di una certa complessità). <!-- Direttive --> Language= C# %> <!-- Sezione Codice --> <script runat= server > private void MakeUpper(object sender, EventArgs e) { string buf = TheString.Value; TheResult.InnerText = buf.toupper(); } </script> <!-- Layout --> <html> <head><title>pro ASP.NET (Ch 01)</title></head> <body> <h1>make It Upper</h1> <form runat= server > <input runat= server id= TheString type= text /> <input runat= server id= Button1 type= submit value= Proceed... OnServerClick= MakeUpper /> <hr> <h3>results:</h3> <span runat= server id= TheResult /> </form> </body> </html> Le righe vuote e i commenti nel listato precedente separano le tre sezioni: direttive, codice e layout di pagina. Si noti l utilizzo generoso dell attributo runat: è uno dei blocchi più importanti dell intero mosaico ASP.NET. Nel paragrafo successivo, discuteremo runat in maggior dettaglio. Per ora, basti dire che l attributo runat promuove un altrimenti inerte tag lato server al rango di istanza di un componente. Il layout di pagina è costituito da testo letterale e tag HTML, alcuni dei quali contengono il suddetto attributo runat. Tutto ciò che viene contrassegnato in

11 Capitolo 1 Il modello di programmazione ASP.NET 13 questo modo, nonostante le apparenze, non è realmente un elemento HTML. Più precisamente, è il segnaposto di markup di un componente lato server, un controllo ASP.NET, che è effettivamente responsabile del markup finale servito al browser. In un sorgente ASP.NET, ogni tag contrassegnato con l attributo runat non è output così come è, ma subisce un processo di trasformazione sul server al termine del quale viene generato il markup reale. Il runtime ASP.NET è responsabile della mappatura dei tag in istanze del controllo. Esaminiamo rapidamente il codice. Un rapido esame del codice Grazie all attributo runat il campo di input di testo diviene una istanza della classe HtmlInputControl quando la pagina viene processata sul server. La proprietà Value della classe determina il testo di default da assegnare al campo di input. Quando l utente clicca il pulsante submit, la pagina esegue automaticamente un post a se stessa. La magia viene eseguita dall attributo runat impostato dal tag <form>. Una volta sul server, il valore postato del campo di input viene letto e assegnato automaticamente alla proprietà Value di una istanza appena creata di HtmlInputControl. Successivamente, viene eseguito il codice associato all evento OnServerClick. Questo codice prende il contenuto corrente del textbox, la stringa postata, e lo converte in lettere maiuscole. Infine, la stringa in maiuscolo viene assegnata alla proprietà InnerText del controllo lato server collegato al tag HTML <span>. Quando termina il gestore d evento MakeUpper, la pagina è pronta per il rendering. A questo punto, il codice HTML aggiornato viene inviato al browser. Per testare la pagina, bisogna copiare il file.aspx nella directory root del proprio Web server. Normalmente, è c:\inetpub\wwwroot. Volendo, si può creare una directory virtuale ad hoc. Supponiamo che la pagina si chiami hello.aspx. Successivamente, si fa puntare il browser alla pagina. La Figura 1-3 mostra il risultato. Figura 1-3 La prima (e piuttosto semplice) pagina ASP.NET in azione.

12 14 Parte I Realizzare una pagina ASP.NET Sarebbe utile dare un occhiata al sorgente HTML della pagina quando viene visualizzata la prima volta all utente, ossia prima che l utente clicchi per rendere il testo in maiuscolo. <!-- Direttive --> <!-- Sezione Codice --> <!-- Layout --> <html> <head><title>pro ASP.NET (Ch 01)</title></head> <body> <h1>make It Upper</h1> <form method= post action= hello.aspx id= Form1 > <div> <input type= hidden name= EVENTTARGET value= /> <input type= hidden name= EVENTARGUMENT value= /> <input type= hidden name= VIEWSTATE value= /wepdwujnzm4n == /> </div> <script type= text/javascript > <!-- var theform = document.forms[ Form1 ]; if (!theform) { theform = document.form1; } function dopostback(eventtarget, eventargument) { if (!theform.onsubmit (theform.onsubmit()!= false)) { theform. EVENTTARGET.value = eventtarget; theform. EVENTARGUMENT.value = eventargument; theform.submit(); } } // --> </script> <input name= TheString type= text id= TheString value= Hello, world /> <input name= Button1 type= submit id= Button1 value= Proceed... /> <hr> <h3>results: </h3><span id= TheResult ></span> </form> </body> </html> Nel tag <form>, è stato aggiunto un attributo action cablato per forzare il posting alla stessa pagina. Ciò avviene per progetto ed è uno degli aspetti più caratteristici di ASP.NET. I vari campi nascosti che si osservano sono essenziali per l implementazione del meccanismo di postback e vengono generati automaticamente. La stessa cosa può essere detta per il codice di script inglobato. I tag <input> sono pressoché identici ai relativi equivalenti nel sorgente.aspx: solo l attributo runat è scomparso. Dopo esserci sporcati le mani con il codice ASP.NET, facciamo un passo indietro e esaminiamo gli strati che effettivamente fanno funzionare le pagine ASP.NET nel contesto di una applicazione.

13 Capitolo 1 Il modello di programmazione ASP.NET 15 Il modello a componenti ASP.NET ASP.NET è la principale tecnologia abilitante di tutte le funzionalità orientate al Web fornite dal.net Framework. Il.NET Framework è costituito interamente da una gerarchia object oriented di classi che abbracciano tutti gli argomenti di programmazione dei sistemi operativi Windows. In termini generali, una applicazione Web è costituita da pagine che l utente richiede da un server e che il server processa e restituisce come codice di markup, per la maggior parte HTML. Come la risorsa richiesta venga processata, e perciò come viene generato il markup, è un aspetto specifico del server. In particolare, quando la risorsa ha una estensione.aspx, IIS delega qualsiasi ulteriore elaborazione al sistema runtime ASP.NET. Il runtime ASP.NET trasforma il codice sorgente della pagina.aspx richiesta nell istanza attiva di una classe del.net Framework che deriva da una classe base denominata Page. Alla fin fine, una pagina ASP.NET in esecuzione è un oggetto, e pertanto lo è per alcuni dei suoi componenti: i controlli lato server. Un gran numero di nuove caratteristiche ASP.NET sono semplicemente una propagazione diretta o indiretta della infrastruttura.net. ASP.NET trae vantaggio dalla integrazione inter-linguaggio e dalla gestione delle eccezioni, dalla garbage collection e dalla Code Access Security, dal deployment e dalla configurazione, e da una libreria di classi incredibilmente sofisticata. Tutte queste caratteristiche non sono il prodotto di un motore auto-contenuto, sono disponibili poiché le applicazioni ASP.NET rappresentano una varietà speciale di applicazione.net. Un modello di interazione del componente A qualsiasi elemento in una pagina ASP.NET contrassegnato con l attributo runat può essere attribuito un ID univoco, permettendo di accedere a questo elemento dal proprio codice lato server. L accesso agli elementi attraverso l ID è un approccio naturale sul client (come l utilizzo di pagine Dynamic HTML), ma rappresenta uno schema del tutto nuovo per le applicazioni server. Due fattori rendono possibile questo approccio rivoluzionario: L architettura basata su componenti della piattaforma.net, e il fatto che ASP.NET è una parte integrante di questa piattaforma Il meccanismo predefinito ASP.NET di gestione dello stato dell applicazione Il design a componenti di.net rende l interazione del componente agevole ed efficace in tutti gli ambienti, comprese le applicazioni ASP.NET. I componenti ASP.NET accedono alle caratteristiche della pagina e interagiscono reciprocamente invocando metodi e impostando proprietà. Il fatto che tutti gli elementi della pagina siano veri componenti, e non semplicemente testo scandibile, fornisce un modello di estensibilità flessibile e potente. La creazione di nuovi controlli è agevole quanto la derivazione di una nuova classe; realizzare una gerarchia di ereditarietà di pagina è agevole quanto specificare una classe genitore differente dalla classe di base Page.

14 16 Parte I Realizzare una pagina ASP.NET [Attenzione] Visual Studio.NET 2005 restituisce un errore in fase di progettazione se non si assegna esplicitamente a ciascun controllo ASP.NET un ID univoco. Tuttavia, la pagina funzionerà a dovere a runtime. L attributo runat L attributo runat è ciò che determina se un blocco di testo di markup deve essere emesso alla lettera al momento del rendering o deve essere trasformato in una istanza stateful di una particolare classe.net. In quest ultimo caso, la classe si assume la responsabilità di emettere il relativo markup. In una pagina ASP.NET, tutti gli elementi di markup il cui attributo runat è impostato a server vengono considerati controlli lato server. La classe del controllo espone metodi e proprietà che permettono di configurare lo stato del componente. Il controllo è responsabile di emettere il codice HTML quando la pagina viene renderizzata al browser. Consideriamo il seguente semplice codice che renderizza un elemento ancora nella pagina client: Response.Write( <A id=myanchor href= me</a> ) L elemento ancora viene creato da programma e non viene definito nel layout di pagina. In ASP classico, i blocchi di codice e il metodo Response.Write rappresentano gli unici modi disponibili per creare o configurare dinamicamente i controlli. In alcuni ambienti di sviluppo, tra cui Microsoft Visual InterDev, i controlli design-time fornivano un modo a oggetti per emettere in output HTML generato dinamicamente. I controlli design-time, tuttavia, rappresentavano appunto ciò che il nome indica: ossia, controlli che si possono utilizzare a design-time per generare markup e codice script. In ASP.NET, è disponibile una nuova varietà di controlli che potremmo chiamare controlli run-time per evidenziare il contrasto con i controlli design-time. Lavorare con i controlli lato server In una pagina ASP, non vi è modo per associare codice all elemento myanchor. Si tratta solo di testo congelato, inerte, utile solo da inviare al browser. Una volta su un client, l elemento myanchor riprende vita e può accettare istruzioni di scripting. Si supponga ora di dover impostare l attributo href dell ancora in base a condizioni a runtime. In ASP classico, si potrebbe prima ottenere il valore dell attributo href e quindi invocare Response.Write: strhref = strhtml = <A id=myanchor strhtml = strhtml + href= + strhref strhtml = strhtml + >Click me</a> Response.Write(strHtml) Questo codice funzionerà immutato in una pagina ASP.NET ma di certo non è quanto di meglio si possa fare. Dichiarando il tag <A> con l attributo runat, si può dar vita all elemento ancora anche sul server: <A runat= server id= myanchor >Click me</a>

15 Capitolo 1 Il modello di programmazione ASP.NET 17 Quando la pagina viene caricata, il runtime ASP.NET scandisce il codice sorgente e crea le istanze di tutti i controlli contrassegnati con l attributo runat. In tutta la pagina, l ID di myanchor identifica una istanza del controllo lato server mappato al tag <A>. Il codice seguente può essere utilizzato per impostare da programma l attributo href quando la pagina viene caricata: <script runat= server language= C# > void Page_Load(object sender, EventArgs e) { myanchor.href = ; } </script> Gli elementi di markup il cui nome corrisponde a un elemento HTML vengono mappati al corrispondente controllo server HTML. Si noti che non tutti i possibili tag HTML hanno dei corrispondenti controlli ASP.NET; per quelli sprovvisti, viene utilizzato un controllo generico. L elenco dei tag e dei relativi controlli associati è cablato nel runtime ASP.NET. Gli elementi che appartengono al namespace <asp> vengono mappati ai controlli Web server. Altri elementi di markup vengono mappati all assembly e al nome di classe dichiarato utilizzando una Tag a livello di pagina L attributo runat può essere utilizzato anche con tag a livello di pagina come <head> e <body>. Questi tag vengono rappresentati attraverso una istanza della classe HtmlGenericControl. HtmlGenericControl è la classe.net utilizzata per rappresentare un tag HTML lato server non direttamente rappresentato da una classe del.net Framework. L elenco di questi tag comprende anche <span>, <font> e <iframe>. Nella pagina seguente, il colore di sfondo viene impostato da programma quando la pagina viene caricata: <%@ Page Language= C# %> <script runat= server > private void Page_Load(object sender, EventArgs e) { TheBody.Style[HtmlTextWriterStyle.BackgroundColor] = lightblue ; } </script> <html> <body id= TheBody runat= server > <h3>the background color of this page has been set programmatically. Open View Source menu to see the source code.</h3> </body> </html> Il codice HTML risultante è il seguente: <html> <head><title>pro ASP.NET (Ch 01)</title></head> <body id= TheBody style= background-color:lightblue; > <form method= post action= Body.aspx id= Form1 > <div> <input type= hidden name= VIEWSTATE value= /wepd RVC+ /> </div>

16 18 Parte I Realizzare una pagina ASP.NET <h3>the background color of this page has been set programmatically. Open View Source menu to see the source code.</h3> </form> </body> </html> Analogamente, si può impostare uno qualsiasi degli attributi del tag <body>, decidendo così da programma, ad esempio, quale stylesheet o immagine di sfondo utilizzare. Per creare gli attributi del tag si utilizza la collection Attributes di HtmlGenericControl. Per impostare il valore inner text di un tag si utilizza la proprietà InnerText. TheBody.Attributes[ Background ] = /proaspnet20/images/body.gif ; Discuteremo in maggior dettaglio l interfaccia di programmazione della classe HtmlGenericControl nel Capitolo 4. [Nota] In ASP.NET 2.0, si può accedere al contenuto del tag <head> da programma finché è contrassegnato con l attributo runat. La classe Page espone un gruppo di metodi e proprietà ad-hoc che esploreremo nel Capitolo 3. Tag incogniti Nel caso di tag incogniti, cioè tag che non sono né predefiniti nello schema corrente né definiti dall utente, il runtime ASP.NET può comportarsi in due modi differenti. Se il tag non contiene informazioni sul namespace, ASP.NET lo tratta come un generico controllo HTML. Il namespace vuoto, infatti, viene valutato in namespace HTML, inducendo perciò il runtime ASP.NET a credere che il tag sia realmente un elemento HTML. Non viene generata nessuna eccezione, e il testo di markup viene generato sul server. Ad esempio, consideriamo la seguente pagina ASP.NET: <%@ Page Language= C# %> <script runat= server > void Page_Load(object sender, EventArgs e) { dinoe.attributes[ FavoriteFood ] = T-bone steak ; } </script> <html> <head><title>pro ASP.NET (Ch 01)</title></head> <body> <form runat= server > <Person id= dinoe runat= server /> Click the <b>view Source</b> menu item... </form> </body> </html> Il tag <Person> viene comunque processato come se fosse un ordinario tag HTML, e viene aggiunto l attributo FavoriteFood. La Figura 1-4 mostra qual è effettivamente il codice HTML di questa pagina. Nell esempio precedente, il tipo dell oggetto dinoe è HtmlGenericControl.

17 Capitolo 1 Il modello di programmazione ASP.NET 19 Figura 1-4 ASP.NET processa anche tag custom privi di namespace, mappandoli alla classe HtmlGenericControl. Se il tag contiene informazioni sul namespace, è accettabile finché il namespace è <asp> o è un namespace esplicitamente associato al nome del tag utilizzando una Se il namespace è incognito, si verifica un errore di compilazione. Controlli Server ASP.NET Sostanzialmente, esistono due famiglie di controlli server ASP.NET. Si tratta dei controlli server HTML e dei controlli server Web. System.Web.UI.HtmlControls è il namespace dei controlli server HTML. System.Web.UI.WebControls raggruppa tutti i controlli server Web. Controlli Server HTML I controlli server HTML sono classi che rappresentano un tag HTML standard supportato da gran parte dei browser. L insieme delle proprietà di un controllo server HTML corrisponde a un insieme utilizzato comunemente di attributi del tag corrispondente. Il controllo espone proprietà come InnerText, InnerHtml, Style e Value più alcune collection come Attributes. Ogni volta che nel sorgente della pagina viene trovato il corrispondente tag HTML contrassegnato con runat= server vengono create automaticamente dal runtime ASP.NET istanze di controlli server HTML. Come già detto, l insieme disponibile di controlli server HTML non copre tutti i possibili tag HTML di una determinata versione dello schema HTML. Solo i tag più comunemente utilizzati hanno trovato posto nel namespace System.Web.UI.HtmlCont rols. Tag come <iframe>, <frameset>, <body> e <hn> sono stati lasciati fuori alla pari di tag meno frequentemente utilizzati come <fieldset>, <marquee> e <pre>. L assenza di un controllo server specializzato, tuttavia, non limita la propria potenza di programmazione quando si tratta di utilizzare e configurare questi tag sul server. Bisogna solo utilizzare una interfaccia di programmazione più generica, la classe HtmlGenericControl, che abbiamo descritto brevemente in questo paragrafo.

18 20 Parte I Realizzare una pagina ASP.NET Controlli Server Web I controlli server Web sono controlli con più caratteristiche dei controlli server HTML. I controlli server Web comprendono non solo i controlli di input come pulsanti e textbox, ma anche controlli di uso particolare come un calendario, un ad rotator, un elenco a discesa, un treeview e una griglia dati. I controlli server Web comprendono anche componenti che assomigliano molto ad alcuni controlli server HTML. I controlli server Web, tuttavia, sono più astratti dei corrispondenti controlli server HTML nel senso che il relativo modello a oggetti non riflette necessariamente la sintassi HTML. Ad esempio, confrontiamo il controllo testo HTML server e il controllo server Web TextBox. Il controllo testo HTML server ha il seguente markup: <input runat= server id= FirstName type= text value= Dino /> Il controllo server Web TextBox ha il seguente markup: <asp:textbox runat= server id= FirstName text= Dino /> Entrambi i controlli generano lo stesso codice di markup HTML. Tuttavia, l interfaccia di programmazione del controllo server testo HTML corrisponde moltissimo a quella del tag HTML <input>, mentre metodi e proprietà del controllo server Web TextBox sono denominati in un modo più astratto. Ad esempio, per impostare il contenuto di un controllo server testo HTML si deve utilizzare la proprietà Value poiché Value è il nome corrispondente dell attributo HTML. Se si lavora con il controllo server Web TextBox, si deve ricorrere a Text. Salvo pochissime eccezioni (di cui discuterò nel Capitolo 3), l utilizzo dei controlli server HTML o dei controlli server Web per rappresentare elementi HTML è solo una questione di preferenza, di facilità di sviluppo e di manutenzione. Lo stack di sviluppo ASP.NET Al livello più alto di astrazione, lo sviluppo di una applicazione ASP.NET attraversa due fasi: creazione delle pagine e configurazione runtime. Si realizzano le pagine che formano l applicazione, si implementano i relativi prerequisiti d utente, e quindi si esegue una ottimizzazione fine del circostante ambiente di runtime per far sì che serva le pagine in modo efficace e sicuro. Come mostra la Figura 1-2, il modello di componente ASP.NET è la base di tutte le applicazioni ASP.NET e dei relativi blocchi costituenti. Tenendo presente la Figura 1-2, esaminiamo i vari strati logici per vedere cosa contengono e perché. Lo strato di Presentazione Una pagina ASP.NET è costituita da controlli, testo e markup. Quando il codice sorgente viene trasformato in una istanza attiva di una classe di pagina, il runtime ASP.NET non fa alcuna ulteriore distinzione tra testo letterale, markup e controlli server: tutto è un controllo, compreso il testo letterale e i caratteri carriage-return. In fase di esecuzione, qualsiasi pagina ASP.NET è un semplice grafo di controlli.

19 Capitolo 1 Il modello di programmazione ASP.NET 21 Controlli sofisticati La sofisticata programmazione di ASP.NET scaturisce dall ampia libreria di controlli server che abbracciano i task fondamentali dell interazione HTML, ad esempio, raccogliendo il testo attraverso i tag input, ma anche funzionalità più avanzate come la visualizzazione di dati basata su una griglia. Il set nativo dei controlli è abbastanza grande da permettere di soddisfare virtualmente qualsiasi insieme di prerequisiti. Inoltre, la recente versione di ASP.NET aggiunge alcuni nuovi controlli sofisticati per portare la produttività dello sviluppatore in prossimità del massimo livello possibile. In ASP.NET 2.0, si trovano controlli per creare wizard Web, viste collassabili di dati gerarchici, avanzati report di dati, form comunemente utilizzati, data binding dichiarativo, menu, navigazione del sito. Si trova anche una sottile API per creare pagine in stile portale. La disponibilità di controlli sofisticati significa una riduzione del tempo di sviluppo e degli errori di codifica, più best practice implementate e più funzionalità avanzate a disposizione degli utenti finali. Tratteremo specificamente i controlli nel Capitolo 4, nel Capitolo 6 e in seguito nel Capitolo 10. Controlli custom I controlli principali di ASP.NET forniscono un insieme completo di tool per realizzare funzionalità Web. L insieme standard di controlli può essere esteso e migliorato aggiungendo dei controlli personalizzati. Il sottostante modello di componente ASP.NET semplifica notevolmente il compito applicando i principi e le regole comuni della programmazione object-oriented. Si possono costruire nuovi controlli migliorando un controllo esistente o aggregando assieme due o più controlli per formarne uno nuovo. ASP.NET 1.x è dotato di un piccolo set di classi di base su cui implementare controlli del tutto nuovi. Questo set di classi è stato esteso in ASP.NET 2.0, in particolare per semplificare lo sviluppo di nuovi controlli data-bound. Rendering adattivo A partire dalla versione 2.0, ASP.NET mette a disposizione una nuova architettura di control adapter che permette a qualsiasi controllo server di creare renderizzazioni alternative per una varietà di browser. Si noti, tuttavia, che il nuovo modello di adapter ASP.NET 2.0 non si applica ai controlli mobile. I controlli mobile sono una particolare famiglia di controlli Web progettati per realizzare applicazioni per dispositivi mobile. I controlli mobile ASP.NET 2.0 utilizzano ancora il vecchio modello di adapter, disponibile sin da ASP.NET 1.1, per controlli che derivano da MobileControl e sono ospitati su pagine che derivano da MobilePage. In breve, se si deve scrivere una applicazione mobile con ASP.NET 2.0, si devono utilizzare i controlli mobile, come si sarebbe fatto con ASP.NET 1.1. Pertanto qual è il valore aggiunto del nuovo modello di adapter? Con questa forma di rendering adattivo, si possono scrivere control adapter per personalizzare i controlli server per singoli browser. Ad esempio, si può scrivere un control adapter per generare un differente markup HTML per il controllo Calendar per un determinato browser desktop.

20 22 Parte I Realizzare una pagina ASP.NET Il framework della pagina Qualsiasi pagina ASP.NET funziona come istanza di una classe che ha origine dalla classe Page. La classe Page è il punto terminale di una pipeline di moduli che processa qualsiasi richiesta HTTP. I vari componenti di sistema che operano sulla richiesta originale costruiscono passo per passo tutte le informazioni necessarie a localizzare l oggetto pagina per generare il markup. Il modello a oggetti della pagina presenta diverse caratteristiche e funzionalità che potrebbero essere raggruppate in termini di eventi, scripting, personalizzazione, stile e prototipizzazione. Eventi di pagina Il ciclo di vita di una pagina nel runtime ASP.NET è contrassegnato da una serie di eventi. Collegando il proprio codice a questi eventi, gli sviluppatori possono modificare dinamicamente l output di pagina e lo stato dei controlli di cui si compone. In ASP.NET 1.x, una pagina scatena eventi come Init, Load, PreRender e Unload che sottolineano i momenti principali della vita della pagina. ASP.NET 2.0 aggiunge parecchi nuovi eventi per permettere di seguire più da vicino e con precisione l elaborazione della richiesta. In particolare, si trovano nuovi eventi per segnalare l inizio e la fine della fase di inizializzazione e caricamento. Il ciclo di vita di pagina verrà esaminato in modo esaustivo nel Capitolo 3. Scripting di pagina Il modello a oggetti di scripting di pagina permette agli sviluppatori di gestire il codice di scripting, e ai campi nascosti di essere iniettati nelle pagine client. Questo modello a oggetti genera codice JavaScript utilizzato per tenere assieme gli elementi HTML generati dai controlli server, fornendo così caratteristiche altrimenti impossibili da programmare sul server. Ad esempio, in questo modo si può impostare il focus di input ad un particolare controllo quando la pagina viene visualizzata nel browser client. Le pagine ASP.NET possono essere architettate per inoltrare le invocazioni client a metodi server senza eseguire un completo postback e successivamente eseguire il refresh dell intera pagina visualizzata. Questa sorta di engine di scripting remoto viene implementato attraverso un meccanismo di callback che offre un chiaro vantaggio agli sviluppatori. Quando si utilizzano gli script callback, i risultati dell esecuzione di un metodo lato server vengono passati direttamente a una funzione JavaScript che può quindi aggiornare l interfaccia utente attraverso Dynamic HTML. Un roundtrip si verifica ancora, ma la pagina non viene del tutto completamente sottoposta a un refresh. Gli script callback, tuttavia, non rappresentano l unica buona notizia. Il posting cross-page è una ulteriore caratteristica che la comunità degli sviluppatori ASP.NET ha richiesto a gran voce. Questa caratteristica permette il posting del contenuto di un form a una ulteriore pagina. Suona come insegnare dei vecchi trucchi a un nuovo cane? Forse. Come già detto prima in questo capitolo, uno degli aspetti più caratteristici di ASP.NET è che ciascuna pagina contiene un solo tag <form>, che continuamente esegue il post a sé stesso. Questo è il modo in cui ASP.NET è stato progettato, e produce diversi vantaggi. Nelle precedenti versioni di ASP.NET, il posting cross-page potrebbe essere implementato allo stesso modo di ASP classico, ossia, eseguire il posting attraverso un puro <form> HTML non contrassegnato con l attributo runat. Questo metodo funziona bene, ma vi lascia fuori dal mondo object-oriented e a tipizzazione forte di ASP.NET. Il posting cross-page, come è implementato in ASP.NET 2.0, colma il gap.

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

Internet Architettura del www

Internet Architettura del www Internet Architettura del www Internet è una rete di computer. Il World Wide Web è l insieme di servizi che si basa sull architettura di internet. In una rete, ogni nodo (detto host) è connesso a tutti

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

Applicazioni web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications) Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Conoscere il concetto di espressione 2 1 Introduzione

Dettagli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

XML e PHP. Gestire XML con PHP. Appendice

XML e PHP. Gestire XML con PHP. Appendice Appendice XML e PHP Tra tutti i linguaggi di programmazione esistenti PHP è tra quelli che meglio si adattano all elaborazione di documenti XML. PHP è un linguaggio di programmazione che consente di arricchire

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Client - Server. Client Web: il BROWSER

Client - Server. Client Web: il BROWSER Client - Server Client Web: il BROWSER Il client Web è un applicazione software che svolge il ruolo di interfaccia fra l utente ed il WWW, mascherando la complessità di Internet. Funzioni principali Inviare

Dettagli

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo Come funziona il WWW Il funzionamento del World Wide Web non differisce molto da quello delle altre applicazioni Internet Anche in questo caso il sistema si basa su una interazione tra un computer client

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere

Dettagli

Architetture Web: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

Dettagli

Lezione II: Web server e ambiente di lavoro

Lezione II: Web server e ambiente di lavoro Lezione II: Web server e ambiente di lavoro In questa lezione, in laboratorio, si mostrerà quali sono i passi necessari per creare ed eseguire una pagina ASP. Brevemente, verrà fatto anche vedere, come

Dettagli

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Maria Vittoria Avolio avoliomv@unical.it Dott.ssa Adriana Pietramala a.pietramala@unical.it Riferimenti Manuale PHP http://www.php.net/download-docs.php

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page» Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti

Dettagli

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare

Dettagli

Il Web Server e il protocollo HTTP

Il Web Server e il protocollo HTTP Corso PHP Parte 2 Il Web Server e il protocollo HTTP E un programma sempre attivo che ascolta su una porta le richieste HTTP. All arrivo di una richiesta la esegue e restituisce il risultato al browser,

Dettagli

Corso basi di dati Installazione e gestione di PWS

Corso basi di dati Installazione e gestione di PWS Corso basi di dati Installazione e gestione di PWS Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Cosa è PWS? Il Personal Web Server altro non è che una versione ridotta del

Dettagli

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia Informatica Prof. M. Colajanni Università di Modena Reggio Emilia PARTE 4 - World Wide Web WORLD WIDE WEB La killer application di Internet I motivi alla base del successo del Web ( perché è risultata

Dettagli

CONTENT MANAGEMENT SYSTEM

CONTENT MANAGEMENT SYSTEM CONTENT MANAGEMENT SYSTEM P-2 PARLARE IN MULTICANALE Creare un portale complesso e ricco di informazioni continuamente aggiornate, disponibile su più canali (web, mobile, iphone, ipad) richiede competenze

Dettagli

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine. ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione

Dettagli

Alla scoperta della nuova interfaccia di Office 2010

Alla scoperta della nuova interfaccia di Office 2010 Alla scoperta della nuova interfaccia di Office 2010 Una delle novità più eclatanti della versione 2007 era la nuova interfaccia con la barra multifunzione. Office 2010 mantiene questa filosofia di interfaccia

Dettagli

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet Java Server Pages (JSP) Introduzione alle JSP Linguaggio di scripting lato server HTML-embedded Una pagina JSP contiene sia HTML sia codice Il client effettua la richiesta per la pagina JSP La parte HTML

Dettagli

Protocolli applicativi: FTP

Protocolli applicativi: FTP Protocolli applicativi: FTP FTP: File Transfer Protocol. Implementa un meccanismo per il trasferimento di file tra due host. Prevede l accesso interattivo al file system remoto; Prevede un autenticazione

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Architetture versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Tipi fondamentali di documenti web

Tipi fondamentali di documenti web Tipi fondamentali di documenti web Statici. File associati al web server il cui contenuto non cambia. Tutte le richieste di accesso conducano alla visualizzazione della stessa informazione. Dinamici. Non

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

Nota Tecnica UBIQUITY 5 TN0019. Il documento descrive le novità introdotte con la versione 5 della piattaforma software ASEM Ubiquity.

Nota Tecnica UBIQUITY 5 TN0019. Il documento descrive le novità introdotte con la versione 5 della piattaforma software ASEM Ubiquity. UBIQUITY 5 Introduzione Il documento descrive le novità introdotte con la versione 5 della piattaforma software ASEM Ubiquity. Versione Descrizione Data 1 Prima emissione 20/01/2015 Disclaimer Le informazioni

Dettagli

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002 Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

PORTALE TERRITORIALE PER LA FATTURAZIONE ELETTRONICA

PORTALE TERRITORIALE PER LA FATTURAZIONE ELETTRONICA REGIONE CALABRIA PORTALE TERRITORIALE PER LA FATTURAZIONE ELETTRONICA Pag. 1 di 12 Sommario AREA PUBBLICA... 3 PAGINE INFORMATIVE... 3 PAGINA DI LOGIN... 4 AREA PRIVATA... 4 PROFILO UFFICIO... 5 FATTURAZIONE

Dettagli

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato

Dettagli

PIATTAFORMA DOCUMENTALE CRG

PIATTAFORMA DOCUMENTALE CRG SISTEMA DI GESTIONE DOCUMENTALE DMS24 PIATTAFORMA DOCUMENTALE CRG APPLICAZIONE PER LE PROCEDURE DI GARE D AMBITO 1 AGENDA 1. Introduzione 2. I Livelli di accesso 3. Architettura di configurazione 4. Accesso

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

SOMMARIO... 3 INTRODUZIONE...

SOMMARIO... 3 INTRODUZIONE... Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...

Dettagli

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Una tabella Pivot usa dati a due dimensioni per creare una tabella a tre dimensioni, cioè una tabella

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate MODULO BASE Quanto segue deve essere rispettato se si vuole che le immagini presentate nei vari moduli corrispondano, con buona probabilità, a quanto apparirà nello schermo del proprio computer nel momento

Dettagli

Guida all uso delle Web View su ios

Guida all uso delle Web View su ios Guida all uso delle Web View su ios Tesina per il corso di Programmazione di Sistemi Mobile Lorenzo Pellegrini Matricola: 0000653299 Cosa sono le Web View? Le web view sono componenti grafiche, integrabili

Dettagli

Il Protocollo HTTP e la programmazione di estensioni Web

Il Protocollo HTTP e la programmazione di estensioni Web Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Assegnamento di un indirizzo IP temporaneo a dispositivi Barix

Assegnamento di un indirizzo IP temporaneo a dispositivi Barix Assegnamento di un indirizzo IP temporaneo a dispositivi Barix V 1.0 GUIDA RAPIDA Introduzione L obiettivo di questa guida rapida è fornire all utente un modo per poter assegnare un indirizzo IP temporaneo

Dettagli

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare

Dettagli

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere

Dettagli

File, Modifica, Visualizza, Strumenti, Messaggio

File, Modifica, Visualizza, Strumenti, Messaggio Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere

Dettagli

ISTRUZIONI PER L UTILIZZO DELLA SCHEDA INFORMATIZZATA E MODALITA DI INVIO DEI DATI - L. R. 162/98 PROGRAMMA 2012 052013

ISTRUZIONI PER L UTILIZZO DELLA SCHEDA INFORMATIZZATA E MODALITA DI INVIO DEI DATI - L. R. 162/98 PROGRAMMA 2012 052013 Allegato alla nota n. 6592 del 10 maggio 2013 ISTRUZIONI PER L UTILIZZO DELLA SCHEDA INFORMATIZZATA E MODALITA DI INVIO DEI DATI - L. R. 162/98 PROGRAMMA 2012 052013 Premessa Il seguente documento illustra

Dettagli

Software Gestionale Politiche Giovanili

Software Gestionale Politiche Giovanili Software Gestionale Politiche Giovanili Guida all Uso Progettisti e Referenti tecnico-organizzativi Edizione 2012 1 INDICE DEI CONTENUTI: 1. NOZIONI GENERALI E ACCESSO AL SISTEMA 1.1 Requisiti di sistema...

Dettagli

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore 1. Obbligo di comunicazione dei dati... 2 2. Accesso alla raccolta... 2 3. Compilazione... 6 2.1 Dati generali Sicurezza

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Joomla! 2.5:Utenti e permessi - Il wiki di Joomla.it

Joomla! 2.5:Utenti e permessi - Il wiki di Joomla.it Pagina 1 di 6 Joomla! 2.5:Utenti e permessi Da Il wiki di Joomla.it. Traduzione (http://cocoate.com/it/j25it/utenti) dal libro Joomla! 2.5 - Beginner's Guide (http://cocoate.com/j25/users-permissions)

Dettagli

Manuale servizio Webmail. Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8

Manuale servizio Webmail. Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8 Manuale servizio Webmail Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8 Introduzione alle Webmail Una Webmail è un sistema molto comodo per consultare la

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

1. Le macro in Access 2000/2003

1. Le macro in Access 2000/2003 LIBRERIA WEB 1. Le macro in Access 2000/2003 Per creare una macro, si deve aprire l elenco delle macro dalla finestra principale del database: facendo clic su Nuovo, si presenta la griglia che permette

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC BMSO1001 Virtual Configurator Istruzioni d uso 02/10-01 PC 2 Virtual Configurator Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE. Versione 05

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE. Versione 05 SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE Versione 05 Novembre 2015 1 Sommario Generalità... 3 Pagare con ICONTO... 7 Pagare con carta di credito... 10 Pagare

Dettagli

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE Il software ideale per la gestione delle prenotazioni GUIDA UTENTE Presentazione... 2 Installazione... 3 Prima esecuzione... 6 Registrazione del programma... 8 Inserimento Immobile... 9 Inserimento proprietario...

Dettagli

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server

Dettagli

Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci

Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci I motori di ricerca in internet: cosa sono e come funzionano Roberto Ricci, Servizio Sistema

Dettagli

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.

Dettagli

Installazione e caratteristiche generali 1

Installazione e caratteristiche generali 1 Installazione e caratteristiche generali 1 Introduzione SIGLA Ultimate e SIGLA Start Edition possono essere utilizzati solo se sono soddisfatti i seguenti prerequisiti: Microsoft.Net Framework 3.5 (consigliato

Dettagli

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1 MODULO 1 PARTE 3 Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni Goy - a.a. 2012/2013 Programmazione Web 1 Cookie - I Cookie = variabili che il server salva (*) sul client come file

Dettagli

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale La soluzione modulare di gestione del Sistema Qualità Aziendale I MODULI Q.A.T. - Gestione clienti / fornitori - Gestione strumenti di misura - Gestione verifiche ispettive - Gestione documentazione del

Dettagli

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra

Dettagli

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo. Pag. 1 di 5 6FRSR analizzare problemi complessi riguardanti la gestione di un sito interattivo proponendo soluzioni adeguate e facilmente utilizzabili da una utenza poco informatizzata. 2ELHWWLYL GD UDJJLXQJHUH

Dettagli

appunti delle lezioni Architetture client/server: applicazioni client

appunti delle lezioni Architetture client/server: applicazioni client Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente

Dettagli

WORD (livello avanzato): Struttura di un Documento Complesso. Struttura di un Documento Complesso

WORD (livello avanzato): Struttura di un Documento Complesso. Struttura di un Documento Complesso Parte 5 Adv WORD (livello avanzato): Struttura di un Documento Complesso 1 di 30 Struttura di un Documento Complesso La realizzazione di un libro, di un documento tecnico o scientifico complesso, presenta

Dettagli

Firewall e Abilitazioni porte (Port Forwarding)

Firewall e Abilitazioni porte (Port Forwarding) Firewall e Abilitazioni porte (Port Forwarding) 1 Introduzione In questa mini-guida mostreremo come creare le regole sul Firewall integrato del FRITZ!Box per consentire l accesso da Internet a dispositivi

Dettagli

Stampe in rete Implementazione corretta

Stampe in rete Implementazione corretta NETWORK PRINT SERVERS Articolo Stampe in rete Implementazione corretta Created: June 3, 2005 Last updated: June 3, 2005 Rev:.0 INDICE INTRODUZIONE 3 INFRASTRUTTURA DELLE STAMPE IN RETE 3. Stampa peer-to-peer

Dettagli

sito web sito Internet

sito web sito Internet Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile

Dettagli

MANUALE D USO DELLA PIATTAFORMA ITCMS

MANUALE D USO DELLA PIATTAFORMA ITCMS MANUALE D USO DELLA PIATTAFORMA ITCMS MANULE D USO INDICE 1. INTRODUZIONE... 2 2. ACCEDERE ALLA GESTIONE DEI CONTENUTI... 3 3. GESTIONE DEI CONTENUTI DI TIPO TESTUALE... 4 3.1 Editor... 4 3.2 Import di

Dettagli

Form Editor. Dove NomeProfilo è personalizzabile.

Form Editor. Dove NomeProfilo è personalizzabile. Form Editor Il tema permette di generare automaticamente dei moduli per la raccolta di dati in tre semplici step: 1. Si crea una tabella nel database per la raccolta dei dati. Per la creazione si parte

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

REPORT DI VALUTAZIONE DELL ACCESSIBILITÀ

REPORT DI VALUTAZIONE DELL ACCESSIBILITÀ Pag. 1 di 13 REPORT DI VALUTAZIONE DELL ACCESSIBILITÀ PUBBLICA AMMINISTRAZIONE Comune di Pella (NO) http://www.comune.pella.no.it/ DATA DELLA VALUTAZIONE 09/07/2008 AUTORE DELLA VALUTAZIONE Alessio Mantegna

Dettagli

Università degli Studi di Messina

Università degli Studi di Messina Università degli Studi di Messina Guida alla Rendicontazione on-line delle Attività del Docente Versione della revisione: 2.02/2013-07 A cura di: Fabio Adelardi Università degli studi di Messina Centro

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

Visual basic base Lezione 01. L'ambiente di sviluppo

Visual basic base Lezione 01. L'ambiente di sviluppo L'ambiente di sviluppo L'ambiente di sviluppo Visual basic è un linguaggio di programmazione Microsoft. In questo corso prenderemo in considerazione, l'ultima versione. net di questo linguaggio. Microsoft

Dettagli

HTTP adaptation layer per generico protocollo di scambio dati

HTTP adaptation layer per generico protocollo di scambio dati HTTP adaptation layer per generico protocollo di scambio dati Sandro Cavalieri Foschini 101786 Emanuele Richiardone 101790 Programmazione in Ambienti Distribuiti I - 01FQT prof. Antonio Lioy A.A. 2002-2003

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

DOCUMENTO ESERCITAZIONE ONENOTE. Utilizzare Microsoft Offi ce OneNote 2003: esercitazione rapida

DOCUMENTO ESERCITAZIONE ONENOTE. Utilizzare Microsoft Offi ce OneNote 2003: esercitazione rapida Utilizzare Microsoft Offi ce OneNote 2003: esercitazione rapida MICROSOFT OFFICE ONENOTE 2003 AUMENTA LA PRODUTTIVITÀ CONSENTENDO AGLI UTENTI L ACQUISIZIONE COMPLETA, L ORGANIZZAZIONE EFFICIENTE E IL RIUTILIZZO

Dettagli