PROTOTIPIZZAZIONE DI UN MODELLO PER LA REALIZZAZIONE DI SITI WEB BASATO SU ZEND FRAMEWORK E DESIGN PATTERN MVC

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "PROTOTIPIZZAZIONE DI UN MODELLO PER LA REALIZZAZIONE DI SITI WEB BASATO SU ZEND FRAMEWORK E DESIGN PATTERN MVC"

Transcript

1 UNIVERSITÀ POLITECNICA DELLE MARCHE FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica e dell Automazione DIPARTIMENTO DI INGEGNERIA INFORMATICA, GESTIONALE E DELL AUTOMAZIONE PROTOTIPIZZAZIONE DI UN MODELLO PER LA REALIZZAZIONE DI SITI WEB BASATO SU ZEND FRAMEWORK E DESIGN PATTERN MVC Laureando: Giorgio Mandolini Relatore: Prof. Alessandro Cucchiarelli Anno accademico 2006/2007

2 Non credo nel conoscere ma nel saper imparare

3 Vorrei ringraziare la mia famiglia, che non ha mai smesso di credere in me supportandomi e spesso anche sopportandomi, con il sorriso sulle labbra, anche nei miei insuccessi. Grazie a voi non ho mai perso la fiducia in me stesso. Non posso fare a meno di ringraziare Ali, Ari, Bea, Nico e Noemi: ho vissuto con voi il vostro diploma... E voi con me la mia laurea! Grazie per i bellissimi momenti che mi avete regalato e la vostra capacità di farmi sorridere e risollevarmi nei momenti tristi. Un grazie a mio cugino Alberto e i nostri sogni di cambiare il mondo senza che esso cambi noi. Perché in fondo non sappiamo quale sia il nostro perché, ma dev'essere sicuramente un ottimo motivo! ; ) Al mio caro amico Mauro per cosa lo ringrazio? E' difficile dirlo... Anzi no! E' molto semplice: PER TUTTO! Sei una persona unica e un vero amico! Un sorriso a Laura che con i suoi modi di fare riesce sempre a stupirmi e farmi ridere di cuore. Grazie di cuore a Simone e Margherita: quante volte mi avrete spronato a dare il meglio di me? Credo che ormai avete perso il conto anche voi : ) Al mio maestro Lorenzo Massacci per le riunioni fiume durante il tirocinio e tutto lo staff di e xtrategy per avermi fatto crescere sia professionalmente che come persona, siete mitici ragazzi! Ai ragazzi di quota 145 : non ho mai capito se sono pazzo e sto con i pazzi, o se sono pazzo e i pazzi vengono da me.. Alla fine il risultato è lo stesso: io sono pazzo e voi siete piombati nella mia vita! Ringraziarvi tutti mi è impossibile e dimenticherei sicuramente qualcuno... Però Mirco, come posso non citare la tua risata alla Nelson? : ) Infine, un grazie tutto speciale ad Angela Trilli che ha movimentato un po' la stesura finale di questa tesi ; )

4 Università Politecnica delle Marche Indice Capitolo 1 Introduzione Problema del riutilizzo del codice Obiettivi...2 Capitolo 2 I Framework Scopo di un framework Utilizzo di un framework Criteri di scelta Vantaggi e svantaggi di un framework...10 Capitolo 3 Zend Framework I motivi della scelta Il design pattern MVC MVC con Zend Framework Zend_Controller Approfondimenti sul routing Riscrittura dell'url Zend_View Zend_Config...21 I

5 Università Politecnica delle Marche 3.9 Zend_Registry Zend_Db e Zend_Db_Table, accenni...24 Capitolo 4 Sviluppo del prototipo Limitazioni ed esigenze Funzionalità del prototipo Creazione di sezioni di pagina generiche Creazione di header HTML Creazione di footer HTML Creazione di elenchi e liste Gestione dei dati di configurazione Gestione degli errori Organizzazione della struttura cartelle File fondamentali del modello bootstrap.php File di configurazione config.xml Il front controller: index.php Creazione dei controllers Gestione del layout...50 Capitolo 5 Esempio di applicazione Studio del layout Studio dell'home page Studio della sezione news...57 II

6 Università Politecnica delle Marche 5.4 Studio del SiteController...59 Capitolo 6 Considerazioni finali...60 Appendice A Esempi di utilizzo...63 A.1 Esempi di processo di routing...63 A.2 Interazione Zend_Controller / Zend_View...64 A.3 Reperire i dati da un oggetto Zend_Config...65 A.4 Zend_Config_Ini: utilizzo di file.ini...66 A.5 Zend_Config_Xml: utilizzo di file.xml...68 A.6 Utilizzo della classe Rolando_Generico...69 A.7 Utilizzo della classe Rolando_Header...71 A.8 Valori consentiti per Rolando_Header...73 A.9 Utilizzo della classe Rolando_Lister...74 A.10 Utilizzo della classe Rolando_Error...75 Appendice B Codice sorgente...76 B.1 Classe Rolando_Generico...76 B.1.1 Selettore delle classi Rolando_Generico...76 B.1.2 Classe astratta Rolando_Generico_Abstract...77 B.1.3 Classe per template TPL Rolando_Generico_TPL...79 B.1.4 Classe per template STR Rolando_Generico_STR...81 B.1.5 Classe per template PHP Rolando_Generico_PHP...82 B.2 Classe Rolando_Header...84 III

7 Università Politecnica delle Marche B.3 Classe Rolando_Footer...88 B.4 Classe Rolando_Lister...91 B.5 Classe Rolando_Config...95 B.6 Classe Rolando_Error...99 B.7 File bootstrap.php B.8 File Config.xml B.9 File index.php B.10 I Controllers B.10.1 Controller speciale SiteController B.10.2 Controller IndexController B.10.3 Controller MvcController B.10.4 Controller NewsController B.11 Templates usati nel sito di prova B.11.1 Template di 1 livello B.11.2 Alcuni templates di 2 livello B.12 Modello News_Model Bibliografia IV

8 Capitolo 1 Introduzione Internet è diventato lo strumento di comunicazione per eccellenza, come il principale vettore di informazioni nonché luogo di scambio di contenuti. Questa realtà sta diventando sempre più estesa e complessa, tanto da delineare uno scenario in cui le applicazioni web sono veri e propri sistemi che offrono informazioni e servizi di ogni tipo. Con la richiesta di applicazioni sempre più complesse diventa necessaria l'adozione di strumenti che ne rendano agevole lo sviluppo; è infatti molto importante trovare una metodologia di lavoro semplice ed efficace che renda possibile la realizzazione di sistemi seguendo un numero di passi finiti e ben organizzati. Si ottiene così una maggior produttività, accompagnata da una superiore qualità del prodotto finale, nonché la possibilità di riutilizzo delle soluzioni adottate per lo sviluppo di applicazioni future. 1

9 1.1 Problema del riutilizzo del codice Una delle necessità dello sviluppatore software è quella di poter riutilizzare codice precedentemente scritto, senza dover studiare nuove soluzioni ad ogni nuovo progetto. Poter contare su soluzioni precedentemente testate e funzionanti rende lo sviluppo dei nuovi progetti più agevole, nonché qualitativamente superiore: si può infatti contare su codice collaudato, che via via potrà essere reso più complesso e robusto in futuro. Quella dell'utilizzo di un framework è sicuramente una delle alternative più valide alla soluzione del problema appena posto: con questi strumenti è infatti possibile contare su una serie di librerie e strutture in grado di facilitare il lavoro dello sviluppatore, che può dedicare il proprio tempo a livelli di programmazione più elevati. 1.2 Obiettivi Obiettivo dello studio sarà quello di definire un prototipo di modello per la creazione di siti web: è infatti noto che ogni sito presenta una propria struttura, sia grafica che dei contenuti, che viene replicata tutta o in parte nelle varie pagine che lo compongono. Al prototipo sarà accompagnata una vera e propria metodologia di lavoro che attraverso uno studio preventivo dell'applicazione ne permetterà lo sviluppo e la manutenzione. 2

10 Oltre a ciò sarà possibile definire una sorta di scheletro adattabile e personalizzabile per la creazione semplice e pulita di un sito. Scopo di questo prototipo sarà dimostrare la facilità di sviluppo di siti web riconducibili ad un modello comune con home page, sezioni tematiche, cataloghi, news, integrati all'interno del sito stesso in una struttura ben definita. L'utilizzo di un modello di questo tipo, piuttosto che l'adozione di un CMS (Content Management System, ossia un sistema software per organizzare e facilitare la creazione di documenti e contenuti) viene preferito in quegli ambiti in cui l'utilizzatore non deve avere il controllo totale del sito, ma deve poter interagire con esso e gestirlo in maniera più limitata. Durante lo studio sono stati infatti definite tre tipologie di siti web, che si differenziano per dinamicità e grado di controllo. Siti STATICI Nessun tipo di controllo E' possibile aggiungere e rimuovere informazioni nelle relative sezioni del sito, ma non è possibile modificarne la struttura base Siti DINAMICI Controllo totale E' possibile interagire con il sito in ogni sua parte, aggiungere e rimuovere intere sezioni, cambiarne struttura e contenuti controllo crescente Siti DINAMICI Controllo parziale Fig. 1. Tipologie di siti web. 3

11 Non sempre infatti il cliente necessita di un sistema complesso come un CMS in quanto non può o non vuole dover gestire anche aree del sito che raramente vengono cambiate. Le ragioni di ciò sono molteplici e possono essere, ad esempio, l'inesperienza dell'utilizzatore o la mancanza di tempo di quest'ultimo che può affidare l'incarico della manutenzione ad un'agenzia di comunicazione. Il modello in studio sarà collocato tra le ultime due categorie di siti definite in fig. 1 e suo scopo principale sarà quello di semplificare il processo di sviluppo all'azienda di comunicazione che si occupa della relativa creazione e manutenzione. 4

12 Capitolo 2 I Framework Un framework è una struttura di supporto utilizzata nella produzione del software, che fornisce l'infrastruttura per il progetto e lo sviluppo di applicazioni. Alla base di un framework si ha un insieme di classi, librerie ed interfacce di base, che costituiscono l'infrastruttura di una applicazione, spesso corredata da strumenti ideati per aumentare la velocità di sviluppo delle applicazioni. Utilizzare un framework non è però da confondere con l'utilizzo di una semplice libreria di classi, infatti tra i due approcci vi è in realtà una sostanziale differenza. Una libreria di classi viene utilizzata dallo sviluppatore per svolgere determinate funzionalità: in questo caso il codice scritto invoca il codice di libreria già esistente, che si occupa di svolgere una determinata funzione. Il controllo di flusso resta però in mano allo sviluppatore che dovrà quindi occuparsi di come mettere insieme i pezzi. Adottare un framework significa invece attenersi ad un specifica architettura, in pratica estenderne le classi ed implementarne le interfacce. Non si ha più quindi la responsabilità di controllare il 5

13 flusso elaborativo: sarà infatti il framework a farlo per lo sviluppatore. Non è più il codice dello sviluppatore a richiamare il codice di libreria ma viceversa. Un framework è considerato come una parte di software esistente nel quale inserire il proprio: saranno le classi del framework ad invocare quest'ultimo. 2.1 Scopo di un framework Lo scopo di un framework è di risparmiare allo sviluppatore la riscrittura di codice già steso in precedenza per funzionalità simili, circostanza che si presenta sempre più spesso con il crescere della complessità delle applicazioni ed il presentarsi di funzionalità secondarie simili tra i vari progetti. Grazie all'utilizzo di un framework il programmatore potrà concentrarsi maggiormente sulle reali funzionalità della proprie applicazioni, senza dover pensare a tutto il codice sorgente. Il termine inglese framework può quindi essere tradotto come intelaiatura o struttura, che è appunto la sua funzione, a sottolineare che al programmatore rimane solo da creare il contenuto vero e proprio dell'applicazione. Un framework è definito da un insieme di classi astratte e dalle relazioni tra esse. Istanziare un framework significa fornire un'implementazione delle classi astratte. L'insieme delle classi concrete, definite ereditando il framework, eredita le relazioni tra le 6

14 classi; si ottiene in questo modo un insieme di classi concrete con un insieme di relazioni tra classi. 2.2 Utilizzo di un framework Utilizzare un framework significa implicitamente adottare una specifica architettura per la propria applicazione. A prima vista questo può sembrare vincolante invece, nel caso di un framework valido, questo è uno dei maggiori vantaggi: all'inizio di un progetto infatti la scelta dell'architettura è uno dei momenti fondamentali che può determinare il successo o l'insuccesso del progetto stesso. A volte è una scelta che viene trascurata o sottovalutata, principalmente per un errato approccio allo sviluppo applicativo considerato esclusivamente come un'attività di scrittura di codice, ma che produce effetti disastrosi se non ponderata attentamente. Utilizzare un framework maturo e già ampiamente testato significa attenersi ad una architettura che funziona e quindi significa iniziare un progetto da una base solida. Ciò porta inoltre ad un significativo risparmio di tempo e risorse in quanto lo sviluppatore non deve più preoccuparsi di realizzare componenti infrastrutturali ma può concentrarsi esclusivamente sullo sviluppo della logica ad alto livello che poi è il valore aggiunto della applicazione che si scrive. Non è raro nello sviluppo di un progetto assistere alla riscrittura di componenti di base che già esistono e che sono stati già ampiamente testati; possiamo dire che uno dei vantaggi nell'utilizzo di un 7

15 framework è che si viene aiutati a non reinventare la ruota come spesso purtroppo accade. E' chiaro che tutto ciò è vero quando si fa riferimento ad un framework giunto ad uno stadio di sviluppo maturo, già adottato da molti sviluppatori e quindi già ampiamente provato sul campo. Da un punto di vista pratico adottare un framework significa senz'altro ridurre i tempi di un progetto ed evitare errori nella fase di disegno in quanto si utilizza una infrastruttura realizzata secondo le best practises dell'ambito tecnologico di riferimento. E' bene precisare che un framework non va confuso con un design pattern: un design pattern è una strategia di soluzione di un problema comune, è qualcosa di concettuale che prescinde dall'implementazione tecnologica. Un framework è invece qualcosa di concreto, è un insieme di componenti che può essere usato per realizzare un'applicazione; componenti che, quando il framework è ben strutturato, sono sviluppati secondo i design pattern più diffusi nell'ambito specifico. 2.3 Criteri di scelta I criteri di scelta sono molteplici ed è bene chiarire che non esiste il framework ideale a tutti gli scopi. Possiamo individuare, tra le tante, le seguenti importanti caratteristiche: 8

16 Maturità del progetto E' bene utilizzare un framework maturo, ben sviluppato e testato, che sia supportato dalla comunità degli sviluppatori e quindi presente sul campo in progetti reali. Documentazione La documentazione è fondamentale per la risoluzione dei problemi che si incontrano nella realizzazione delle applicazioni, è importante che sia ricca e ben fatta, eventualmente corredata da esempi di utilizzo. Oltre a facilitare il lavoro è anche molto importante per la comprensione del framework che si sta utilizzando. Validità del disegno architetturale Come visto la scelta di un framework influisce sull'architettura applicativa. E' bene quindi verificare che sia disegnato correttamente e che siano adottati i design pattern e le best practises della tecnologia di riferimento. Adozione degli standard Un framework deve essere fondato sui componenti standard della tecnologia di riferimento. E' consigliato evitare le soluzioni proprietarie. Estensibilità Deve essere possibile estendere le funzionalità del framework per poterlo adattare alle proprie esigenze. 9

17 2.4 Vantaggi e svantaggi di un framework I vantaggi nell'utilizzo di un framework sono molteplici e tanto più si apprezzano quanto più il progetto è di grosse dimensioni ed elevata complessità. Di seguito vengono schematicamente riassunti alcuni dei principali vantaggi che si ottengono nell'adozione di un framework: Disegno architetturale Un buon framework deve essere fondato su un disegno architetturale valido, in quanto il suo codice è scritto in base alle best practises della tecnologia in uso. Ciò conferisce al progetto con esso sviluppato fondamenta solide dalle quali partire: non dimentichiamo infatti che framework significa intelaiatura ed è di fondamentale importanza sceglierne una valida, alla quale affidare i propri progetti. Riduzione dei tempi di progetto Lo sviluppatore non deve più scrivere codice riguardante le componenti infrastrutturali del proprio progetto: tale compito è infatti delegato al framework che metterà a disposizione la propria struttura. Ci si concentrerà solamente sulla logica applicativa risparmiando risorse in termini di energie di sviluppo e tempo impiegato. 10

18 Semplificazione dello sviluppo Anche lo sviluppo della logica applicativa viene semplificato se viene introdotto un framework valido: esso infatti metterà a disposizione dello sviluppatore una serie di componenti che andranno a risolvere gran parte dei compiti comuni a tutte le applicazioni WEB (gestione di query e database, logging, localizzazione ed internazionalizzazione...). Lo sviluppatore potrà quindi spostare la propria attenzione verso compiti più complessi, notevolmente semplificati grazie all'adozione di tali strumenti. E' molto importante sapere che un framework non è la soluzione a tutti i problemi: non esiste un framework universale ed è molto importante effettuare la scelta che meglio si adatta alle proprie esigenze, viceversa si andrebbe incontro a notevoli svantaggi. E' preferibile evitare framework poco generici, che impongono l'utilizzo di strumenti proprietari e che legano indissolubilmente la propria applicazione ad una specifica struttura. Il framework deve fornire una base per lo sviluppo ma la logica applicativa sviluppata deve essere utilizzabile anche al di fuori della struttura del framework stesso. 11

19 Capitolo 3 Zend Framework Zend Framework è il framework di Zend, la società che supporta lo sviluppo e la distribuzione del linguaggio PHP. Si basa sull'ultima versione del PHP, giunto alla 5.2, ed è attualmente alla versione 1.0.2, anche se al momento dei test è stata utilizzata una versione beta. Programmazione ad oggetti e struttura delle applicazioni secondo il design pattern MVC (un design pattern architetturale utilizzato per separare i dati dall'interfaccia utente) sono i primi obiettivi che si intende centrare con l'utilizzo di questo framework, che mette a disposizione dello sviluppatore una serie di interessanti funzionalità. 3.1 I motivi della scelta E' stato scelto Zend Framework perché le caratteristiche che presenta rispecchiano quasi tutti i criteri di scelta precedentemente visti. E' infatti un framework molto completo, estensibile, ben documentato (anche con esempi di utilizzo), utilizza un'architettura (MVC) molto valida nel campo dell'ingegneria del software e fa pieno uso di 12

20 standard non proprietari. L'unico neo risulta nella maturità del progetto, infatti in fase di test è stata utilizzata una versione beta, mentre quella ufficiale risulta da poco operativa nel campo; tale dubbio è però stato fugato dalla grandissima comunità degli sviluppatori del progetto. 3.2 Il design pattern MVC Il design pattern MVC (acronimo di Model View Controller) è un pattern architetturale dell'ingegneria del software, utilizzato nelle applicazioni per separare i dati (modelli) dall'interfaccia utente (view) in modo che un cambiamento su uno di questi due aspetti non influenzi l'altro. La separazione tra la logica di funzionamento e la rappresentazione dei dati viene effettuata da un componente intermedio: il controller. Di seguito viene descritto lo scopo di ogni componente del pattern e relativo funzionamento: Model rappresenta ciò che si vuol fare, è il core dell'applicazione e ne definisce la logica di funzionamento interna, vincolata alle scelte implementative (es: utilizzo di un DB piuttosto che text files). 13

21 View si occupa della rappresentazione dei dati forniti dal modello, visualizzandoli a prescindere da come questi siano stati estratti. Controller è l'anello di congiunzione tra Model e View, si occupa di mappare le richieste dell'utente azionando il modello e selezionando la vista più appropriata. Richiesta utente Controller Selezione vista Cambio di stato Model Query View Fig. 2 Diagramma del design pattern MVC. Generalmente un'applicazione scritta utilizzando il pattern MVC lavora seguendo questi passi fondamentali: 1. L'utente interagisce con l'interfaccia. 2. Il controller gestisce la richiesta proveniente dall'utente secondo 14

22 un proprio algoritmo. 3. Il controller seleziona il modello appropriato alla richiesta 4. Il view utilizza i dati messi a disposizione dal modello per generare un output appropriato (il modello non ha conoscenze dirette sul view). 5. L'interfaccia utente resta in attesa di nuove richieste ed il ciclo ricomincia. 3.3 MVC con Zend Framework Il design pattern MVC viene implementato attraverso l'utilizzo di due specifiche classi, Zend_Controller e Zend_View che, come suggerisce il nome, si occupano rispettivamente del controller e del view. Per quanto riguarda invece l'aspetto dei modelli si ha una serie di classi che cercano di coprire un ampio insieme di utilizzi e funzionalità come l'interfacciamento a database, creazione ed esecuzione di queries, supporto alla localizzazione, creazione documenti PDF, RSS feed. Saranno presi in analisi principalmente i primi due aspetti di questo framework, infatti l'aspetto dei modelli è quello che viene di più lasciato in mano allo sviluppatore finale, che può decidere sia di scrivere da capo la propria logica, sia di utilizzare le classi messe a disposizione da Zend. 15

23 3.4 Zend_Controller Zend_Controller è il cuore del sistema MVC di Zend Framework ed è composto da una serie di classi che rappresentano ognuna una fase di funzionamento del controller. Si parte dal front controller, implementato attraverso Zend_Controller_Front, che si occupa di intercettare le richieste che vengono fatte al server per poi delegarle agli action controller Zend_Controller_Action; ogni richiesta si traduce infatti nella selezione del controller appropriato e di un relativo metodo, che in questo contesto viene definito azione. Il controllo passa quindi all'istanza di Zend_Controller_Action selezionata: è compito dello sviluppatore estendere la classe fondamentale fornita da Zend in modo da creare le proprie applicazioni, aggiungendo metodi e proprietà secondo le specifiche esigenze. Zend_Controller_Router e Zend_Controller_Dispatcher sono invece due moduli utilizzati appunto nella fase di routing e dispatching che legano il front controller con le varie action; nella fase di routing l'url viene interpretata e quindi individuati l'action controller opportuno, la relativa azione da invocare ed i parametri passati. Successivamente la richiesta viene inoltrata al dispatcher che si occupa di trovare e caricare il file fisico con il controller richiesto, istanziare quest'ultimo ed invocarne i metodi opportuni. 16

24 3.5 Approfondimenti sul routing Uno degli obiettivi del framework è quello di lavorare con URL semplici e pulite, di facile interpretazione. Per fare questo Zend_Controller_Router si occupa dell'estrazione dei dati dall'url utilizzando un sistema di token. L'URL viene infatti interpretata secondo il seguente schema: Dove ogni token ha un significato ben preciso: sitename: è il nome del server a cui si fa riferimento module: è opzionale, viene utilizzato per suddividere il sito in diverse applicazioni (es: news, blog, forum) controller: è l'action controller da richiamare per soddisfare la richiesta action: è l'azione che viene richiesta all'action controller selezionato p1/v1: coppie di parametri nella sintassi chiave/valore Il modulo è opzionale, infatti se non viene specificato tutte le richieste verranno redirette ai relativi controllers. L'utilizzo dei moduli ha senso in siti web molto complessi e serve per la creazione di routes ben suddivise verso i controllers. Questo accade quando si ha una gran quantità di controllers ed ha quindi senso suddividerli 17

25 in base all'applicazione cui fanno riferimento. In appendice A.1 alcuni esempi riguardanti il processo di routing. 3.6 Riscrittura dell'url Per poter ottenere il funzionamento appena illustrato il web server deve supportare un sistema di riscrittura dell'url, infatti tutte le chiamate devono essere redirette verso un'unica pagina PHP, che solitamente viene chiamata index.php. In questo modo si perde il concetto di pagina web intesa come file fisico: tutti i path richiamati diventano virtuali. Sarà in index.php che la richiesta verrà interpretata e processata caricando i corretti files fisici, istanziando i controllers e richiamando le relative actions. Nel caso del webserver Apache, frequentemente utilizzato insieme al linguaggio PHP, la riscrittura dell'url viene supportata attivando il modulo opzionale mod_rewrite. Una volta attivato il mod_rewrite nella root del sito va posizionato il file speciale.htaccess contenente le regole di riscrittura (rewrite rules) che il webserver andrà ad interpretare. RewriteEngine on RewriteRule!\.(js ico gif jpg png css swf)$ index.php Fig. 3 Esempio di file.htaccess. La regola descritta in fig. 3 vista attiva la riscrittura degli URL su 18

26 Apache e per la precisione reindirizza tutte le chiamate al file fisico index.php, ad eccezione di tutte quelle con l'estensione comprese tra quelle tra parentesi. Le richieste contenenti le estensioni tra parentesi non vanno redirette per un preciso motivo: se una pagina web ad esempio contenesse l'inclusione di una immagine.jpg e tale estensione non venisse indicata tra quelle da escludere allora si otterrebbe la redirezione della chiamata all'immagine stessa che di fatto non verrebbe visualizzata. Questo perché il path fisico all'immagine non verrà più interpretato come tale, ma verrà processato erroneamente come path virtuale. 3.7 Zend_View Zend_View, come suggerisce il nome, è la parte view del design pattern model view controller ed il suo scopo è separare gli script di visualizzazione da quelli dei modelli e dei controllers. Fornisce un sistema di helpers (specifici script per estendere le funzionalità di base della classe) e filtri per la creazione delle proprie visualizzazioni; all'interno degli script di visualizzazione si può lavorare direttamente in PHP oppure creare istanze di altri sistemi di template e interagire con esse. Durante lo studio verrà posta particolare attenzione agli helpers, infatti oltre a quelli di default è possibile aggiungerne altri scritti secondo le proprie esigenze. 19

27 Tra i compiti del prototipo, come si vedrà in seguito, vi è appunto mettere a disposizione vari helpers specificatamente pensati per la visualizzazione di intere sezioni di pagine WEB a seconda della loro funzione (header, footer, bottoniere...) L'utilizzo di Zend_View si può suddividere in due fasi: 1. il controller crea un'istanza di Zend_View e le assegna variabili 2. il controller incarica l'istanza di visualizzare una particolare vista, che genererà l'output (metodo render()) Durante il funzionamento la classe si occupa della popolazione del template utilizzando i dati appena ricevuti: in questo modo si attua la separazione tra logica e visualizzazione, infatti Zend_View non ha conoscenze sulla provenienza di tali dati. E' compito del controller passare tali dati all'istanza di Zend_View, valorizzandone le proprietà dall'esterno. Tra le funzionalità di questa classe vanno citate inoltre quelle relative alla sua configurazione, che viene effettuata attraverso specifici metodi: setscriptpath() viene passato come argomento il path alla cartella contenente i templates da utilizzare, in questo modo il metodo render() utilizza solamente il nome del file. 20

28 addscriptpath() viene passato come argomento il path di eventuali altre cartelle contenenti templates aggiuntivi. addhelperpath() viene passato come argomento il path alla cartella contenente gli eventuali helpers aggiuntivi In appendice A.2 un esempio di utilizzo di Zend_View insieme a Zend_Controller 3.8 Zend_Config Zend_Config è una classe scritta per semplificare l'accesso e l'uso dei dati di configurazione delle applicazioni, che vengono resi accessibili attraverso un'interfaccia ad oggetti. I dati di configurazione possono provenire da vari tipi di formato che supportano il salvataggio gerarchico di dati. Attualmente Zend_Config si appoggia su dati salvati in file di testo, attraverso le classi Zend_Config_Ini e Zend_Config_Xml, rispettivamente per il formato.ini e.xml. Qualora i dati di configurazione siano già disponibili sotto forma di array PHP, è sufficiente passare quest'ultimo al costruttore di Zend_Config, senza l'utilizzo di sottoclassi scritte per il supporto ai vari formati di file. 21

29 In appendice A.3 si può notare un esempio in cui i dati vengono resi disponibili attraverso un'interfaccia a oggetti nidificata e di semplice interpretazione, soprattutto se lo sviluppatore fa utilizzo di nomi parlanti. I dati di configurazione vengono passati al costruttore di Zend_Config tramite un array associativo (che può essere multidimensionale) in modo da organizzare di dati dal generico allo specifico, mentre le classi di interfacciamento si occupano di preparare i dati di configurazione salvati su storage e produrre l'array associativo in questione. Gli script utente possono fornire questi array direttamente: se i dati di configurazione sono pochi infatti possono essere scritti direttamente in un array, senza scomodare l'utilizzo delle sintassi ini o xml e l'utilizzo delle relative classi. I dati messi a disposizione da Zend_Config sono in sola lettura: eventuali assegnazioni come la seguente produrranno eccezioni. $config->database->host = 'new_example.com Questo comportamento di default può essere cambiato, indicandolo al costruttore durante la creazione dell'oggetto. E' inoltre importante non confondere le modifiche in memoria con il salvataggio su memoria di massa: il cambiamento di una proprietà di Zend_Config non si ripercuote nel file di configurazione da cui essa è stata letta, ma resterà tale solamente a livello di run time, durante il 22

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale

Realizzazione di un prototipo di un software web based per la gestione di un inventario comunale tesi di laurea inventario comunale Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ch.mo Ing. Luigi Pontillo candidato Michele Vitelli Matr. 534 2170 Redazione dell Inventario

Dettagli

Le funzionalità principali della piattaforma

Le funzionalità principali della piattaforma Istituto di Scienza e Tecnologie dell'informazione A Faedo (ISTI) - Laboratorio di domotica Quimby: Le funzionalità principali della piattaforma Dario Russo (dario.russo@isti.cnr.it) Obiettivi del progetto

Dettagli

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy.

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. 10 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com

Dettagli

système de publication pour l internet Sistema di pubblicazione per internet

système de publication pour l internet Sistema di pubblicazione per internet système de publication pour l internet Sistema di pubblicazione per internet Non solo un CMS (Content Management System) Gestire i contenuti è un compito che molti software svolgono egregiamente. Gestire

Dettagli

UNIVERSITÀ DEGLI STUDI DI FIRENZE. Relazione elaborato di progettazione e produzione multimediale

UNIVERSITÀ DEGLI STUDI DI FIRENZE. Relazione elaborato di progettazione e produzione multimediale UNIVERSITÀ DEGLI STUDI DI FIRENZE Relazione elaborato di progettazione e produzione multimediale AllPainters.Net SISTEMA PER LA GENERAZIONE DI SITI GRATUITI PER PITTORI Autori: - Bandini Roberto - Ercoli

Dettagli

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE INTRODUZIONE L ingegneria del software è la disciplina tecnologica e gestionalerelativa alla realizzazione sistematica e alla manutenzione di un software rispettando

Dettagli

COME LAVORA DRUPAL CHI E' DRUPAL?

COME LAVORA DRUPAL CHI E' DRUPAL? COME LAVORA DRUPAL In questo capitolo vi daremo una panoramica di Drupal. I dettagli su come lavora ciascuna parte del sistema saranno analizzati successivamente. Qui vedremo la tecnologia su cui gira

Dettagli

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1)

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1) Pagina 1 di 10 Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1) Nel corso della lezione precedente abbiamo analizzato le caratteristiche dell'architettura CGI.

Dettagli

Informazioni corso AMMINISTRATORE. BO XI - Introduzione. abaroni@yahoo.com. adolfo.baroni@silnet.it Argomenti

Informazioni corso AMMINISTRATORE. BO XI - Introduzione. abaroni@yahoo.com. adolfo.baroni@silnet.it Argomenti abaroni@yahoo.com Informazioni corso AMMINISTRATORE Argomenti h Capitolo 1 Introduzione h Capitolo 2 Architettura di BusinessObjects Enterprise h Capitolo 3 Nozioni di base di Central Management Console

Dettagli

PROGRAMMA DEL CORSO MASTER WEB DEVELOPER

PROGRAMMA DEL CORSO MASTER WEB DEVELOPER PROGRAMMA DEL CORSO MASTER WEB DEVELOPER Il corso Master Web Developer con Certificazione internazionale Adobe Dreamweaver prepara lo studente a entrare nel mondo dello sviluppo Web (blog, siti, portali).

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito LEZIONE 3 Il pannello di amministrazione di Drupal, configurazione del sito Figura 12 pannello di controllo di Drupal il back-end Come già descritto nella lezione precedente il pannello di amministrazione

Dettagli

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved WEB TECHNOLOGY Il web connette LE persone Indice «Il Web non si limita a collegare macchine, ma connette delle persone» Il Www, Client e Web Server pagina 3-4 - 5 CMS e template pagina 6-7-8 Tim Berners-Lee

Dettagli

Disegnare il Layout. www.vincenzocalabro.it 1

Disegnare il Layout. www.vincenzocalabro.it 1 Disegnare il Layout www.vincenzocalabro.it 1 Il problema dell interfaccia Una buona interfaccia deve assolvere a diverse funzioni: far percepire i contenuti permettere di individuare le principali aree

Dettagli

TUTTOEASY.COM PORTALE DI E-COMMERCE PER CREATIVI. Un progetto di: Progetto per Strumenti per Applicazioni Web. Prof.

TUTTOEASY.COM PORTALE DI E-COMMERCE PER CREATIVI. Un progetto di: Progetto per Strumenti per Applicazioni Web. Prof. TUTTOEASY.COM PORTALE DI E-COMMERCE PER CREATIVI Un progetto di: Matteo Dallaglio Matricola 191909 Nicolò Strozzi Matricola 193114 Davide Valeriani Matricola 190883 URL: www.daddy88.com/tuttoeasy Progetto

Dettagli

LA PROFESSIONE DEL WEB DESIGNER

LA PROFESSIONE DEL WEB DESIGNER LA PROFESSIONE DEL WEB DESIGNER Lezione 1 1 Web Design Lafiguracentralenelprogettodiunsitowebèilwebdesigner:eglisioccupadell'aspetto visivo e del coinvolgimento emotivo di siti Web business to business

Dettagli

A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access

A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access Prologo Parlando di tecnologie Web legate a Microsoft è naturale integrare le funzioni di ASP 1 con

Dettagli

Model View Controller MVC

Model View Controller MVC Model View Controller MVC by Kevin Waterson - phppro.org http://www.phpro.org/tutorials/model-view-controller-mvc.html Contents: Prefazione!1 Cos è l MVC?!1 La struttura del sito!2 Il file index!3 Il Registro!5

Dettagli

Relazione finale di Didattica e laboratorio di Programmazione

Relazione finale di Didattica e laboratorio di Programmazione Relazione finale di Didattica e laboratorio di Programmazione Prof.ssa Vallì Carando Tirocinante Maria Grazia Maffucci Classe di concorso A042 aprile 2013 Progettazione Web Applicazioni client-server La

Dettagli

PHP ), con l'introduzione di un middleware quale Zend Framework a

PHP ), con l'introduzione di un middleware quale Zend Framework a Quella che segue è la rappresentazione ad alto livello dell'architettura proposta per il sistema in corso di realizzazione. In questa fase non vengono ancora affrontate le tematiche di sicurezza, load

Dettagli

PHP, MySQL e tecniche di ranking per siti dinamici

PHP, MySQL e tecniche di ranking per siti dinamici PHP, MySQL e tecniche di ranking per siti dinamici Come aumentare il traffico dai motori di ricerca verso un sito dinamico Pag. 1 a cura di Andrea Mori Parleremo di... Motori

Dettagli

Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento

Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento Tecnologie per lo sviluppo di applicazioni La tendenza attuale dell'ingegneria è quella dell'integrazione di componenti

Dettagli

IBM Software Demos WebSphere Portlet Factory Domino

IBM Software Demos WebSphere Portlet Factory Domino Dimostrazione di IBM WebSphere Portlet Factory Benvenuti in questa dimostrazione di IBM WebSphere Portlet Factory. La dimostrazione ci permetterà di osservare quanto sia facile creare, implementare, personalizzare

Dettagli

Corso Joomla per ATAB

Corso Joomla per ATAB Corso Joomla per ATAB Cos'è un Content Management System Joomla non è un prodotto ma è un progetto. Nato nel settembre 2005 CMS (Content management system) letteralmente significa "Sistema di gestione

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

Progettazione Web Applicazioni client-server

Progettazione Web Applicazioni client-server Progettazione Web Applicazioni client-server Sviluppo di un'applicazione Web integrando: HTML MySQL PHP Apache Applicativi utilizzabili: gestione database: JDER, MySQL Workbench, HeidiSQL (Win), DBeaver

Dettagli

ADA. E learning e open source

ADA. E learning e open source 1 ADA. E learning e open source ADA 1.7.1 Come cresce un Ambiente Digitale per l'apprendimento open source Maurizio Graffio Mazzoneschi 2 Cos'è il software libero Libertà 0, o libertà fondamentale: la

Dettagli

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP EVOLUZIONE DEL WEB: PAGINE STATICHE vs PAGINE DINAMICHE Il Web è nato a supporto dei fisici, perché potessero scambiare tra loro le informazioni inerenti le loro sperimentazioni. L HTTP è nato inizialmente

Dettagli

Introduzione. Le origini di PHP. Cos è PHP?

Introduzione. Le origini di PHP. Cos è PHP? Introduzione Ecco a voi un altro libro sul linguaggio di scripting PHP, la cui peculiarità è data dal fatto che dedica la massima attenzione a materiali di alto livello e agli argomenti più evoluti e attuali.

Dettagli

Progetto di Informatica III. Introduzione al corso

Progetto di Informatica III. Introduzione al corso Progetto di Informatica III Introduzione al corso Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Contatti Obiettivo Natura Argomenti Organizzazione Materiale didattico Modalità

Dettagli

*** QUESTO DOCUMENTO E' INCOMPLETO ED IN FASE AMPLIAMENTO CONTINUO. ***

*** QUESTO DOCUMENTO E' INCOMPLETO ED IN FASE AMPLIAMENTO CONTINUO. *** *** QUESTO DOCUMENTO E' INCOMPLETO ED IN FASE AMPLIAMENTO CONTINUO. *** PREFAZIONE Questo progetto nasce perchè mi sono reso conto dell'importanza che i motori di ricerca hanno su Internet. Internet rappresenta

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

Basi di dati. Introduzione a PostgreSQL. K.Donno - Introduzione a PostgreSQL

Basi di dati. Introduzione a PostgreSQL. K.Donno - Introduzione a PostgreSQL Basi di dati Introduzione a PostgreSQL Introduzione a PostgreSQL PostgreSQL è un software relazionale e ad oggetti per la gestione di basi di dati PostgreSQL è Open-Source ed il suo sviluppo procede da

Dettagli

UNIVERSITA' DEGLI STUDI DELL'INSUBRIA. Facoltà di Informatica

UNIVERSITA' DEGLI STUDI DELL'INSUBRIA. Facoltà di Informatica UNIVERSITA' DEGLI STUDI DELL'INSUBRIA Facoltà di Informatica Anno accademico 2009/2010 Corso di Web 2.0 Barboni Stefano 702499 Castiglioni Andrea 700484 Modugno Manlio 701896 Sommario Introduzione... 3

Dettagli

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 2011 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 Obiettivi del corso Imparare

Dettagli

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 6.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

Dettagli

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO 1 Installazione e requisiti per il corretto funzionamento del sito: L istallazione è possibile sui più diffusi sistemi operativi. Il pacchetto

Dettagli

Leggimi - versione estesa

Leggimi - versione estesa Leggimi - versione estesa Benvenuti nel programma delle cartoline virtuali. Questo programma è stato ideato da Mike - la grafica e le immagini sono di Loretta B. Note di utilizzo: L'unica cosa che vi chiediamo

Dettagli

Manuale utente. Indice generale. Nota. Java User Group Marche http://www.jugancona.org francescop@dev.java.net

Manuale utente. Indice generale. Nota. Java User Group Marche http://www.jugancona.org francescop@dev.java.net Manuale utente Nota Come modello per questo documento è stato preso il template dei documenti Write di OpenOffice disponibile sul sito dello JUG Sardegna. Si ringrazia il JUG Sardegna per la cortese collaborazione.

Dettagli

IGWiki La Guida. Lo Stile

IGWiki La Guida. Lo Stile IGWiki La Guida Oramai in rete si trovano i piu' disparati tipi di Wiki. L'idea del Wiki è senza dubbio una delle piu' geniali avute in seguito all'avvento di Internet. Con poche nozioni e una facilità

Dettagli

GEODROP APPLICATIONS. Developer. Public. Private. Reseller

GEODROP APPLICATIONS. Developer. Public. Private. Reseller GEODROP APPLICATIONS Public Developer Reseller Private Le Applicazioni di Geodrop Guida per Developer alle Applicazioni Guida alle applicazioni v1.1-it, 21 Dicembre 2012 Indice Indice...2 Cronologia delle

Dettagli

Content Management Systems e

Content Management Systems e AA 2010/2011 Content Management Systems e Corso di Progetto di Sistemi Web Based Università degli Studi di Roma Tor Vergata Argomenti della lezione 1. Breve evoluzione storica dei siti internet cos è un

Dettagli

Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0)

Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0) Uso di un browser (con riferimento a Microsoft Internet Explorer 7.0) Nota Bene: Si raccomanda di leggere queste dispense di fronte al computer, provando passo dopo passo le funzionalità descritte. Per

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

APPENDICE A Servlet e Java Server Page

APPENDICE A Servlet e Java Server Page APPENDICE A Servlet e Java Server Page A.1 Cosa è una Servlet e come funziona Una servlet è un particolare tipo di applicazione Java, in grado di essere eseguita all'interno di un web server e di estenderne

Dettagli

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

Dettagli

A. Bardine - Introduzione a PostgreSQL. PostgreSQL è un software relazionale e ad oggetti per la gestione di basi di dati

A. Bardine - Introduzione a PostgreSQL. PostgreSQL è un software relazionale e ad oggetti per la gestione di basi di dati Basi di dati PostgreSQL è un software relazionale e ad oggetti per la gestione di basi di dati PostgreSQL è Open-Source ed il suo sviluppo procede da 15 anni il suo codice sorgente è quindi disponibile

Dettagli

LO STRUMENTO PRINCIPALE: IL SITO WEB

LO STRUMENTO PRINCIPALE: IL SITO WEB LO STRUMENTO PRINCIPALE: IL SITO WEB 1 Content Management System (CMS) Software (web based) dedicati alla gestione di un sito web: portali, siti aziendali, intranet, blog, Wiki L obiettivo è consentire

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

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

Dettagli

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Estensione di un sistema per la gestione semi-automatica di siti didattici con

Dettagli

aggiunge del testo nella parte finale del tag, in questo caso la stringa da controllare.

aggiunge del testo nella parte finale del tag, in questo caso la stringa da controllare. Capitolo 6 jquery Negli ultimi anni è stata rilasciata una mole incalcolabile di framework JavaScript, più o meno completi, realizzati per supportare nel miglior modo possibile lo sviluppatore web aiutandolo

Dettagli

CORSO DI FORMAZIONE PER: TECNICO DELLE ATTIVITA' DI PROGETTAZIONE, SVILUPPO E AGGIORNAMENTO DI SITI WEB

CORSO DI FORMAZIONE PER: TECNICO DELLE ATTIVITA' DI PROGETTAZIONE, SVILUPPO E AGGIORNAMENTO DI SITI WEB Avviso Pubblico PROV-BR 02/2013 PO FSE 2007/2013 ASSE II OCCUPABILITA' Formazione per Inserimento-Reinserimento Lavorativo Approvato con D.D. n.85 del 24/01/2014, pubblicata sul BURP n. 17 del 06/02/2014

Dettagli

Modulo 1 Concetti generali 4 settimane

Modulo 1 Concetti generali 4 settimane OBIETTIVI SPECIFICI DEL PRIMO BIENNIO - CLASSE PRIMA settore ECONOMICO: NUCLEI FONDANTI, CONOSCENZE E COMPETENZE NB per ciascuno dei moduli di insegnamento/apprendimento viene indicato il tempo di trattazione

Dettagli

i n t e r n e t s i t i e c om pl e t o p e r g e st ire portali i l e f a c t r u m e n t o L o InfoTecna QuickWeb

i n t e r n e t s i t i e c om pl e t o p e r g e st ire portali i l e f a c t r u m e n t o L o InfoTecna QuickWeb i n t e r n e t s t r u m e n t o f a c i l e e c om pl e t o p e r g e st ire portali e s i t i L o InfoTecna QuickWeb QuickWeb è un' applicazione in grado di dare forma a siti web dinamici, avvalendosi

Dettagli

Utilizzo Gestione dei file

Utilizzo Gestione dei file Utilizzo Gestione dei file Info su questo bollettino tecnico L'intento di questo bollettino tecnico è di aiutare gli sviluppatori FileMaker esperti a comprendere meglio e ad applicare le migliori metodologie

Dettagli

JUG Ancona Italy. Andrea Del Bene. Jug Marche

JUG Ancona Italy. Andrea Del Bene. Jug Marche JUG Ancona Italy SpringMVC AndreaDelBene JugMarche Cos'èSpringMVC? Spring MVC è il sotto-framework di Spring che permetti di servirsi del Framework Spring per realizzare applicazioni web. Possiamo quindi

Dettagli

Documentazione Tecnica Manuale Utente. Documentazione Tecnica Manuale Utente

Documentazione Tecnica Manuale Utente. Documentazione Tecnica Manuale Utente Documentazione Tecnica Manuale Utente Paragrafo-Pagina di Pagine 1-1 di 13 Versione 3 del 24/07/2015 SOMMARIO 1 A Chi è destinato... 1-3 2 Pre requisiti... 2-3 3 Obiettivi... 3-3 4 Durata della formazione...

Dettagli

per migliorare la distribuzione dei materiali con contenuti didattici di PTC University

per migliorare la distribuzione dei materiali con contenuti didattici di PTC University PTC adotta il proprio software Arbortext per migliorare la distribuzione dei materiali con contenuti didattici di PTC University Corsi di qualità superiore e cicli di sviluppo più veloci per i contenuti

Dettagli

WHITE PAPER CRM Novembre 2003

WHITE PAPER CRM Novembre 2003 WHIT E PAPER Novembre 2003 CUSTOMER RELATIONSHIP MANAGEMENT Parlare di CUSTOMER RELATIONSHIP MANAGEMENT significa parlare di come l Azienda gestisce il suo business. Se vogliamo dare una definizione di

Dettagli

DBMS e Linguaggi di programmazione nell'era di Internet

DBMS e Linguaggi di programmazione nell'era di Internet DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web

Dettagli

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio L altra strada per il BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 Il BPM Il BPM (Business Process Management) non è solo una tecnologia, ma più a grandi linee una disciplina

Dettagli

Sme.UP Web Application

Sme.UP Web Application Sme.UP Web Application Web Application Web.UP Una interfaccia web per i vostri dati gestionali Il modulo applicativo Web.UP fornisce al progettista di siti Internet una serie di potenti strumenti per l'integrazione

Dettagli

Avanzate. Guida Joomla. di: Alessandro Rossi, Flavio Copes

Avanzate. Guida Joomla. di: Alessandro Rossi, Flavio Copes Guida Joomla di: Alessandro Rossi, Flavio Copes Avanzate 1. 20. Recuperare la password di amministratore Se dimentichiamo la password di amministratore è possibile recuperarla 2. 21. Aggiornare la versione

Dettagli

Corso di Informatica Modulo T3 B1 Programmazione web

Corso di Informatica Modulo T3 B1 Programmazione web Corso di Informatica Modulo T3 B1 Programmazione web 1 Prerequisiti Architettura client/server Elementi del linguaggio HTML web server SQL server Concetti generali sulle basi di dati 2 1 Introduzione Lo

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

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Laurea Magistrale in Ingegneria Informatica Tesi di Laurea Sistema informativo per la gestione dei processi

Dettagli

White Paper 1. INTRODUZIONE...2 2. TECNOLOGIE SOFTWARE IMPIEGATE...2 3. APPROCCIO PROGETTUALE...10 3. RISULTATI...10

White Paper 1. INTRODUZIONE...2 2. TECNOLOGIE SOFTWARE IMPIEGATE...2 3. APPROCCIO PROGETTUALE...10 3. RISULTATI...10 Soluzioni software di EDM "Electronic Document Management" Gestione dell archiviazione, indicizzazione, consultazione e modifica dei documenti elettronici. Un approccio innovativo basato su tecnologie

Dettagli

Il Content Management System Plone

Il Content Management System Plone 1 Il Content Management System Plone Università degli Studi di Ferrara Stefano Marchetti stefano[at]redturtle.net Irene Capatti irene.capatti[at]redturtle.net 14 gennaio 2009 2 Di cosa parliamo Introduzione

Dettagli

Corso html 5. Di Roberto Abutzu. *********** Terza parte: Prime nozioni: Tag e prima pagina, continuazione. **********

Corso html 5. Di Roberto Abutzu. *********** Terza parte: Prime nozioni: Tag e prima pagina, continuazione. ********** Corso html 5. Di Roberto Abutzu. *********** Terza parte: Prime nozioni: Tag e prima pagina, continuazione. ********** Prime nozioni: Tag e prima pagina, continuazione. Nota bene, al fine di avere anche

Dettagli

P a s q u a l e t t i V e r o n i c a

P a s q u a l e t t i V e r o n i c a PHP: OOP Pasqualetti Veronica Oggetti Possiamo pensare ad un oggetto come ad un tipo di dato più complesso e personalizzato, non esistente fra i tipi tradizionali di PHP, ma creato da noi. 2 Gli oggetti

Dettagli

Lorenzo Cioni Il repository: uno strumento per l'archiviazione e la distribuzione sul web (work in progress)

Lorenzo Cioni Il repository: uno strumento per l'archiviazione e la distribuzione sul web (work in progress) Lorenzo Cioni Il repository: uno strumento per l'archiviazione e la distribuzione sul web (work in progress) Introduzione In queste brevi note viene descritto a grandi linee un progetto portato avanti

Dettagli

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Relatore Chiarissimo

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE Programmare in Php con Xampp e NetBeans IDE NetBeans è un IDE ben noto ai programmatori Java. Con esso si possono infatti costruire applicazioni desktop professionali dotate di interfaccia grafica, applicazioni

Dettagli

2010 Antonio Musarra s Blog. Sessione introduttiva sui CMS (versione 1.0 16/03/2010)

2010 Antonio Musarra s Blog. Sessione introduttiva sui CMS (versione 1.0 16/03/2010) 2010 Antonio Musarra s Blog 1 Sessione introduttiva sui CMS (versione 1.0 16/03/2010) CMS Content Management System 2 Un Content Management System, in acronimo CMS, letteralmente "sistema di gestione dei

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web tesi di laurea Anno Accademico 2011/2012 relatore Ch.mo prof. Marcello Cinque correlatore Ing. Fabio De Paolis candidato Michele Basile Matr. 534/3239 Web Development Frameworks Nella realizzazione di

Dettagli

Cocoon. Una introduzione

Cocoon. Una introduzione Cocoon Una introduzione Programma Descrizione per l' utente Funzionamento interno Parte Prima Dal punto di vista dell'utente Che cosa è? Cocoon è una piattaforma di pubblicazione di dati XML. Con esso

Dettagli

Progetto "Sistemi integrati per l innovazione e l incubazione di imprese"

Progetto Sistemi integrati per l innovazione e l incubazione di imprese Progetto "Sistemi integrati per l innovazione e l incubazione di imprese" Contributo alla predisposizione del prototipo GIS (Dicembre 2000-Giugno 2001) Andrea Giacomelli Luglio 2001 Title:./LGIMG/crs4-2D.fig

Dettagli

Alcune semplici definizioni

Alcune semplici definizioni Alcune semplici definizioni Un CMS (Content management system), in italiano Sistema di gestione dei contenuti è uno strumento software che si installa generalmente su un server web, il cui compito è facilitare

Dettagli

La realizzazione di WebGis con strumenti "Open Source".

La realizzazione di WebGis con strumenti Open Source. La realizzazione di WebGis con strumenti "Open Source". Esempi di impiego di strumenti a sorgente aperto per la realizzazione di un Gis con interfaccia Web Cos'è un Web Gis? Da wikipedia: Sono detti WebGIS

Dettagli

Gestionale web. Completa autonomia del tuo sito. Un perfetto mix di tecnologia & creatività. Design la nostra passione

Gestionale web. Completa autonomia del tuo sito. Un perfetto mix di tecnologia & creatività. Design la nostra passione Agenzia creativa di design & comunicazione Gestionale web Completa autonomia del tuo sito Un perfetto mix di tecnologia & creatività Design la nostra passione Vivete l esperienza SITE con noi! A partire

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

GUIDA OPERATIVA APPLICAZIONE PER LA VISUALIZZAZIONE DELLE FORNITURE DEI DATI CATASTALI

GUIDA OPERATIVA APPLICAZIONE PER LA VISUALIZZAZIONE DELLE FORNITURE DEI DATI CATASTALI GUIDA OPERATIVA APPLICAZIONE PER LA VISUALIZZAZIONE DELLE FORNITURE DEI DATI CATASTALI 29 Aprile 2013 DOC. ES-31-IS-0C PAG. 2 DI 53 INDICE PREMESSA 3 1. INSTALLAZIONE DELL'APPLICAZIONE 4 2. AVVIO DELL'APPLICAZIONE

Dettagli

DOCUMENTAZIONE PROGETTO GARDEN OF THINGS - PARTE WEB

DOCUMENTAZIONE PROGETTO GARDEN OF THINGS - PARTE WEB Alunno: Tumedei Gianni Classe: 5 E DOCUMENTAZIONE PROGETTO GARDEN OF THINGS - PARTE WEB SOMMARIO SOMMARIO... 1 PANORAMICA... 2 Descrizione e contesto del progetto... 2 Ambito del progetto... 2 ANALISI

Dettagli

Modulo 8. Sviluppo di pagine e siti Creare pagine Web

Modulo 8. Sviluppo di pagine e siti Creare pagine Web Pagina 1 di 6 Sviluppo di pagine e siti Creare pagine Web HTML è l'acronimo di HyperText Markup Language; si tratta di un linguaggio utilizzato per la marcatura ipertestuale. A differenza dei comuni linguaggi

Dettagli

Archivio OnLine. Versione Professionale - DNA PRO 3.0

Archivio OnLine. Versione Professionale - DNA PRO 3.0 Cos è Archivio OnLine di Theo Multimedia è una Banca Dati accessibile e aggiornabile via web. La struttura è quella di uno schedario elettronico: i s presenti sono schede singole, suddivise e ordinate

Dettagli

PROGRAMMAZIONE DISCIPLINARE D ISTITUTO a.s. 2015/2016 SECONDO BIENNIO LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE

PROGRAMMAZIONE DISCIPLINARE D ISTITUTO a.s. 2015/2016 SECONDO BIENNIO LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE ISIS"Giulio Natta" Bergamo pag. 1 di 5 SECONDO BIENNIO LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE Disciplina INFORMATICA monte ore annuale previsto (n. ore settimanali per 33 settimane) 2X33 = 66 OBIETTIVI

Dettagli

Realizzato da: Montanaro Teodoro (10091047)

Realizzato da: Montanaro Teodoro (10091047) Appunti online PROGETTO DI INGEGNERIA DEL SOFTWARE The Apache Software Realizzato da: Montanaro Teodoro (10091047) SOMMARIO 1. Requisiti informali... 4 2. Analisi e specifica dei requisiti... 5 2.1 Stake

Dettagli

Framework Rich Client Application

Framework Rich Client Application Framework Rich Client Application RELATORE: Paolo Giardiello Savona, 30 settembre 2010 Agenda La Sogei Le applicazioni client Sogei Le caratteristiche Le soluzioni possibili Java Web Start Eclipse La scelta:

Dettagli

Maxpho Commerce 11. Gestione CSV. Data: 20 Settembre 2011 Versione : 1.1 Autore: Maxpho Srl

Maxpho Commerce 11. Gestione CSV. Data: 20 Settembre 2011 Versione : 1.1 Autore: Maxpho Srl Maxpho Commerce 11 Gestione CSV Data: 20 Settembre 2011 Versione : 1.1 Autore: Maxpho Srl Indice generale 1 - Introduzione... 3 1.1 - Il file CSV...3 1.2 - Modulo CSV su Maxpho... 3 1.3 - Modulo CSV Pro

Dettagli

IBM CommonStore for Lotus Domino. La gestione della posta elettronica

IBM CommonStore for Lotus Domino. La gestione della posta elettronica IBM CommonStore for Lotus Domino La gestione della posta elettronica Settembre 2006 Executive Summary... 3 Panoramica della soluzione... 4 Componenti funzionali...4 Benefici della soluzione...5 Descrizione

Dettagli

PHP: Interfacce; Gestione errori ed eccezioni. Pasqualetti Veronica

PHP: Interfacce; Gestione errori ed eccezioni. Pasqualetti Veronica PHP: Interfacce; Gestione errori ed eccezioni i Pasqualetti Veronica Interfacce In PHP non si possono ereditare proprietà da più classi. 2 Per ovviare al problema si possono creare delle interfacce che

Dettagli

Symantec Backup Exec 12.5 for Windows Servers. Guida rapida all'installazione

Symantec Backup Exec 12.5 for Windows Servers. Guida rapida all'installazione Symantec Backup Exec 12.5 for Windows Servers Guida rapida all'installazione 13897290 Installazione di Backup Exec Il documento contiene i seguenti argomenti: Requisiti di sistema Prima dell'installazione

Dettagli

I sinonimi in SQL Server

I sinonimi in SQL Server I sinonimi in SQL Server Di Gianluca Negrelli L'identificazione di un oggetto in SQL Server necessita sempre di un riferimento alla gerarchia che lo contiene. Al vertice della gerarchia si posiziona il

Dettagli

Copyright 2004 EVA Group :: www.evagroup.net :: info@evagroup.net

Copyright 2004 EVA Group :: www.evagroup.net :: info@evagroup.net EVA Extranet Virtual Application La piattaforma EVA, sfrutta a pieno tutte le potenzialità offerte da una applicazione extranet di alto livello sviluppata con tecnologie 100% web oriented, rimanendo essenzialmente

Dettagli

MailServer. Daniele Dolfini, Giovanni Franza, Neil Otupacca IPAP3 2010/2011. Relazione sulla costruzione del sistema di messaggeria elettronica.

MailServer. Daniele Dolfini, Giovanni Franza, Neil Otupacca IPAP3 2010/2011. Relazione sulla costruzione del sistema di messaggeria elettronica. MailServer Daniele Dolfini, Giovanni Franza, Neil Otupacca IPAP3 2010/2011 Relazione sulla costruzione del sistema di messaggeria elettronica. Parte relativa ai server Giovanni Franza Sono stati implementati

Dettagli

Corso html 5. Di Roberto Abutzu. `***********` Ottava parte: I link, seconda parte. `**********` I link, seconda parte.

Corso html 5. Di Roberto Abutzu. `***********` Ottava parte: I link, seconda parte. `**********` I link, seconda parte. Corso html 5. Di Roberto Abutzu. `***********` Ottava parte: I link, seconda parte. `**********` I link, seconda parte. Continuiamo la parte che completerà la trattazione dei link, andando ad operare direttamente

Dettagli