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

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz Breve introduzione allo sviluppo WEB a cura di Ciro Attanasio - ciro.attanasio@email.cz Partiamo (1 di 1) Come funziona il WEB e quali tecnologie lo compongono Cos è un Client (1 di 2) Un client, in informatica,

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

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

Istruzioni generali per l'amministrazione di siti creati in EzPublish

Istruzioni generali per l'amministrazione di siti creati in EzPublish Istruzioni generali per l'amministrazione di siti creati in EzPublish EzPublish è un Content Management System (CMS) web-oriented: la pubblicazione di contenuti, documenti, file, elementi multimediali

Dettagli

Quando il funzionale è anche bello

Quando il funzionale è anche bello Quando il funzionale è anche bello Non è la specie più forte che sopravvive, né la più intelligente, ma quella più ricettiva ai cambiamenti Charles Darwin Pagina 1 di 11 Premessa Il linguaggio PHP è di

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

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

La connessione php-mysql con MySQLi

La connessione php-mysql con MySQLi La connessione php-mysql con MySQLi Premessa Lo scenario che si intende alla base di questo capitolo è di disporre di un ambiente phpmysql rappresentato nel seguente schema: L'applicazione php viene eseguita

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

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Manuale di sviluppo Geecom Scritto da Andrea Pastore. versione 2.1 24/11/2014

Manuale di sviluppo Geecom Scritto da Andrea Pastore. versione 2.1 24/11/2014 Manuale di sviluppo Geecom Scritto da Andrea Pastore versione 2.1 24/11/2014 Capitolo 1: creare un template per Geecom La struttura di un template geecom Creare un template personalizzato Sommario Capitolo

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

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

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

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

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

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

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

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

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

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

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

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

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni White paper Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni Panoramica Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Su Internet, oggi, se il vostro sito Web non è dotato di funzionalità ricche o contenuti. I sistemi CMS e un introduzione a Joomla! In questo capitolo

Su Internet, oggi, se il vostro sito Web non è dotato di funzionalità ricche o contenuti. I sistemi CMS e un introduzione a Joomla! In questo capitolo 1 I sistemi CMS e un introduzione a Joomla! In questo capitolo Su Internet, oggi, se il vostro sito Web non è dotato di funzionalità ricche o contenuti aggiornati, è svantaggiato. L idea di potenziare

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

manuale utente rev. 2.0 powered by

manuale utente rev. 2.0 powered by manuale utente rev. 2.0 powered by www.cantierecreativo.net MANUALE UTENTE REV.2 Indice generale 1 Introduzione... 2 2 Accesso all'area amministrativa...3 3 Sezione Pagine... 4 3.1 Pagine recenti...4 3.2

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

*** 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

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

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28 Indice 25 184 Introduzione XI Capitolo 1 Impostazione dell ambiente di sviluppo 2 1.1 Introduzione ai siti Web dinamici 2 1.2 Impostazione dell ambiente di sviluppo 4 1.3 Scaricamento di Apache 6 1.4 Installazione

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

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

Indice. Introduzione PARTE PRIMA PHP: I FONDAMENTI

Indice. Introduzione PARTE PRIMA PHP: I FONDAMENTI 00som_PHP_4320_2 12-03-2003 20:59 Pagina V Indice Introduzione XV PARTE PRIMA PHP: I FONDAMENTI Capitolo 1 Perché PHP? 3 1.1 Cos è PHP? 3 1.2 La storia di PHP 4 1.3 Le ragioni per amare PHP 5 1.4 Sommario

Dettagli

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento SOFTWARE PER L ARCHIVIAZIONE

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento SOFTWARE PER L ARCHIVIAZIONE APPROFONDIMENTO ICT Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto Approfondimento SOFTWARE PER L ARCHIVIAZIONE ORGANISMO BILATERALE PER LA FORMAZIONE IN CAMPANIA INDICE SOFTWARE PER

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

Relazione Progetto. Restaurant Manager. Corso: Programmazione ad oggetti Anno scolastico 2014/2015. Sara Sintoni Matteo Venditto

Relazione Progetto. Restaurant Manager. Corso: Programmazione ad oggetti Anno scolastico 2014/2015. Sara Sintoni Matteo Venditto Relazione Progetto Restaurant Manager Corso: Programmazione ad oggetti Anno scolastico 2014/2015 Autori: Daniele Rosetti Sara Sintoni Matteo Venditto Indice 1. Analisi 3 1.1 Requisiti... 3 1.2 Problema...

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

Content Management Systems

Content Management Systems Content Management Systems L o Guido Porruvecchio Tecnologia e Applicazioni della Rete Internet Definizione Un Content Management System (CMS) è letteralmente un sistema per la gestione dei contenuti Definisce

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

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

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

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

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

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

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

RenderCAD S.r.l. Formazione

RenderCAD S.r.l. Formazione Corso Descrizione La durata di questo corso è complessivamente di ore 150 di cui 85 ore di teoria, 35 ore di pratica e 30 ore di stage in azienda. Nel nostro territorio esiste una richiesta di tale figura,

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

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

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

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

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

PROGRAMMARE JOOMLA GUIDA PRATICA. ( Testato per versioni dalla 1.7 alla 2.5 )

PROGRAMMARE JOOMLA GUIDA PRATICA. ( Testato per versioni dalla 1.7 alla 2.5 ) PROGRAMMARE JOOMLA GUIDA PRATICA ( Testato per versioni dalla 1.7 alla 2.5 ) Programmare JOOMLA guida pratica Ad ELISA... l angelo in cielo E a mia moglie.. angelo in terra Pag. 2 Autore: Gianpiero Fasulo

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

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

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

Framework di Middleware. per Architetture Enterprise

Framework di Middleware. per Architetture Enterprise Framework di Middleware per Architetture Enterprise Corso di Ingegneria del Software A.A.2011-2012 Un po di storia 1998: Sun Microsystem comprende l importanza del World Wide Web come possibile interfaccia

Dettagli

LA SOLUZIONE PER LA GESTIONE DINAMICA DELLE INFORMAZIONI IN UN PORTALE

LA SOLUZIONE PER LA GESTIONE DINAMICA DELLE INFORMAZIONI IN UN PORTALE LA SOLUZIONE PER LA GESTIONE DINAMICA DELLE INFORMAZIONI IN UN PORTALE WEBVISION APPARTIENE ALLA FAMIGLIA DEI CONTENT MANAGEMENT SYSTEM PER LA GESTIONE DINAMICA DELLE INFORMAZIONI E DEL LORO LAYOUT ALL

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

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

Web Programming Specifiche dei progetti

Web Programming Specifiche dei progetti Web Programming Specifiche dei progetti Paolo Milazzo Anno Accademico 2010/2011 Argomenti trattati nel corso Nel corso di Web Programming sono state descritti i seguenti linguaggi (e tecnologie): HTML

Dettagli

GUIDA ALLA PRIMA INSTALLAZIONE DI LIDRASHOP v 1.6.X

GUIDA ALLA PRIMA INSTALLAZIONE DI LIDRASHOP v 1.6.X GUIDA ALLA PRIMA INSTALLAZIONE DI LIDRASHOP v 1.6.X In questa guida saranno analizzati i semplici passaggi per la messa in opera del motore di e-commerce LIDRASHOP. Prima però ecco alcuni accorgimenti

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

Pedigree Documentazione aggiuntiva Corso di reperimento dell informazione a.a. 2005/2006 prof.sa Maristella Agosti

Pedigree Documentazione aggiuntiva Corso di reperimento dell informazione a.a. 2005/2006 prof.sa Maristella Agosti Pedigree Documentazione aggiuntiva Corso di reperimento dell informazione a.a. 25/26 prof.sa Maristella Agosti Argenton Matteo Buzzi Lorenzo Gatto Giorgio Molinaro Matteo Zorzan Emmanuele Prestazioni

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

REALIZZAZIONE DI REPORT MEDIANTE MICROSOFT EXCEL 2007

REALIZZAZIONE DI REPORT MEDIANTE MICROSOFT EXCEL 2007 SISTEMA A SUPPORTO DEI PROCESSI DI PROGRAMMAZIONE E CONTROLLO DI GESTIONE NELLE ORGANIZZAZIONI PUBBLICHE REALIZZAZIONE DI REPORT MEDIANTE MICROSOFT EXCEL 2007 Copyright 2010 CSIO Società di Informatica

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

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Introduzione ai database I concetti fondamentali Database e DBMS Per comprendere appieno cos'è un Database e quali sono i vantaggi legati al suo impiego, soprattutto nel settore gestionale, è necessario

Dettagli

HTML 1. HyperText Markup Language

HTML 1. HyperText Markup Language HTML 1 HyperText Markup Language Introduzione ad HTML Documenti HTML Tag di markup Formattazione del testo Collegamenti ipertestuali Immagini Tabelle Form in linea (moduli) Tecnologie di Sviluppo per il

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

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

PHP: Hypertext Preprocessor

PHP: Hypertext Preprocessor Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A. A. 2011 - PHP: Hypertext Preprocessor Caratteristiche avanzate Eufemia Tinelli 1 Contenuti PHP ad oggetti

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

Appunti lezione Database del 07/10/2015

Appunti lezione Database del 07/10/2015 Appunti lezione Database del 07/10/2015 Nelle lezioni precedenti si è visto come qualunque applicazione informativa è almeno formata da tre livelli o layers che ogni progettista conosce e sa gestire: Livello

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

LEZIONE NO. 1: INTRODUZIONE, ELEMENTI BASE, DI ATTILIO ABBIEZZI

LEZIONE NO. 1: INTRODUZIONE, ELEMENTI BASE, <HEAD> DI ATTILIO ABBIEZZI HTML BASE LEZIONE NO. 1: INTRODUZIONE, ELEMENTI BASE, DI ATTILIO ABBIEZZI FONTI: HTML.IT 1 Breve Introduzione Che cosa significa linguaggio HTML? HTML = HyperText Markup Language Il primo concetto

Dettagli

Istituto Tecnico Industriale Statale Dionigi Scano Cagliari. Candidato: Medda Daniele Classe 5ª C Informatica Anno scolastico 2013/2014.

Istituto Tecnico Industriale Statale Dionigi Scano Cagliari. Candidato: Medda Daniele Classe 5ª C Informatica Anno scolastico 2013/2014. Istituto Tecnico Industriale Statale Dionigi Scano Cagliari Candidato: Medda Daniele Classe 5ª C Informatica Anno scolastico 2013/2014 relate Un esperimento di social networking open source 1 Introduzione

Dettagli

Introduzione. è uguale a 0, spostamento di dati da una parte della memoria del calcolatore ad un altra.

Introduzione. è uguale a 0, spostamento di dati da una parte della memoria del calcolatore ad un altra. Appunti di Calcolatori Elettronici Modello di macchina multilivello Introduzione... 1 Linguaggi, livelli e macchine virtuali... 3 La struttura a livelli delle macchine odierne... 4 Evoluzione delle macchine

Dettagli

10 step per creare un sito Wordpress

10 step per creare un sito Wordpress Sono Andrea Giavara, fondatore di WP Pratico, nel sito ci sono 7.000 iscritti e grazie ad esso ho aiutato più di 400 tra persone e aziende a realizzare il proprio sito online. In questo Documento troverai

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

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

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