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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Corso basi di dati Introduzione alle ASP

Corso basi di dati Introduzione alle ASP Corso basi di dati Introduzione alle ASP Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Web statico e Web interattivo In principio il Web era una semplice collezione di pagine

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

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

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

WEBsfa: l automazione della forza vendita via Web

WEBsfa: l automazione della forza vendita via Web WEBsfa: l automazione della forza vendita via Web White Paper 1 Gennaio 2005 White Paper Pag. 1 1/1/2005 L automazione della Forza Vendita Le aziende commerciali che che sviluppano e alimentano il proprio

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

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

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

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

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

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

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

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA Elaborato di Tecnologie del Software per Internet JMSWEB 2 SISTEMA PER LO SCAMBIO DI MESSAGGI TRA APPLICAZIONI

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

SH.Invoice è un software pratico e completo per la gestione della fatturazione di professionisti e imprese.

SH.Invoice è un software pratico e completo per la gestione della fatturazione di professionisti e imprese. Presentazione: SH.Invoice è un software pratico e completo per la gestione della fatturazione di professionisti e imprese. Il programma si distingue per la rapidità e l elasticità del processo di gestione

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

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

Sistema di autopubblicazione di siti Web

Sistema di autopubblicazione di siti Web Sistema di autopubblicazione di siti Web Manuale d'uso Versione: SW 2.0 Manuale 2.0 Gennaio 2007 CEDCAMERA tutti i diritti sono riservati CEDCAMERA - Manuale d'uso 1 1 Introduzione Benvenuti nel sistema

Dettagli

Progettare un sito web

Progettare un sito web Progettare un sito web Fasi della progettazione La progettazione di un sito web dovrebbe passare attraverso 4 fasi differenti: 1. Raccolta e realizzazione dei contenuti e delle informazioni da pubblicare

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

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

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

File Server Resource Manager (FSRM)

File Server Resource Manager (FSRM) File Server Resource Manager (FSRM) di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione FSRM, File Server Resource Manager, è un ruolo opzionale che può essere installato in Windows Server 2008 nel

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

BARRA LATERALE AD APERTURA AUTOMATICA...

BARRA LATERALE AD APERTURA AUTOMATICA... INDICE 1) SOMMARIO... 1 2) PRIMO AVVIO... 1 3) BARRA LATERALE AD APERTURA AUTOMATICA... 2 4) DATI AZIENDALI... 3 5) CONFIGURAZIONE DEL PROGRAMMA... 4 6) ARCHIVIO CLIENTI E FORNITORI... 5 7) CREAZIONE PREVENTIVO...

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

Configuratore di Prodotto Diapason

Configuratore di Prodotto Diapason Configuratore di Prodotto Diapason Indice Scopo di questo documento...1 Perché il nuovo Configuratore di Prodotto...2 Il configuratore di prodotto...3 Architettura e impostazione tecnica...5 Piano dei

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

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi

Dettagli

Web. Hosting. Application

Web. Hosting. Application amministrazione siti CMS e CRM CONSULENZA WEB APPLICATION WEB DESIGN WEB MARKETING HOSTING GRAFICA Web. Hosting. Application EXPLICO Explico è la Web Agency, costituita nel 99 da professionisti specializzati

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

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

Dettagli

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

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

Introduzione al Model-View-Controller (MVC)

Introduzione al Model-View-Controller (MVC) Introduzione al Model-View-Controller (MVC) Maurizio Cozzetto 9 Luglio 2009 Indice 1 Model-View-Controller 1 1.1 Definizione.................................................. 1 1.2 Soluzione...................................................

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

DocManager. Prodotto software di Content Management per la gestione di manuali tecnici in ottemperanza alle norme unificate in materia

DocManager. Prodotto software di Content Management per la gestione di manuali tecnici in ottemperanza alle norme unificate in materia Prodotto software di Content Management per la gestione di manuali tecnici in ottemperanza alle norme unificate in materia Indice... 2 Prodotto software di Content Management per la gestione di manualistica

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

Turbodoc. Archiviazione Ottica Integrata

Turbodoc. Archiviazione Ottica Integrata Turbodoc Archiviazione Ottica Integrata Archiviazione Ottica... 3 Un nuovo modo di archiviare documenti, dei e immagini... 3 I moduli di TURBODOC... 4 Creazione dell armadio virtuale... 5 Creazione della

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

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

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

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

Come scrivere articoli in Blog didattici del Carcano

Come scrivere articoli in Blog didattici del Carcano Come scrivere articoli in Blog didattici del Carcano Il docente che voglia scrivere nei blog didattici deve prima di tutto registrarsi autonomamente (nome.cognome come ID); la richiesta di registrazione

Dettagli

Lezione nr. 5. Per creare un modulo è necessario avere delle conoscenze di base del linguaggio HTML. Niente di difficile ovviamente!

Lezione nr. 5. Per creare un modulo è necessario avere delle conoscenze di base del linguaggio HTML. Niente di difficile ovviamente! Lezione nr. 5 >> Come creare un modulo Web I moduli web sono delle strutture fondamentali per ogni sito web e la loro conoscenza ti permetterà di risolvere almeno il 60% delle problematiche di gestione

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

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

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

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

2009. STR S.p.A. u.s. Tutti i diritti riservati

2009. STR S.p.A. u.s. Tutti i diritti riservati 2009. STR S.p.A. u.s. Tutti i diritti riservati Sommario COME INSTALLARE STR VISION CPM... 3 Concetti base dell installazione Azienda... 4 Avvio installazione... 4 Scelta del tipo Installazione... 5 INSTALLAZIONE

Dettagli

GUIDA UTENTE FATTURA IMPRESA

GUIDA UTENTE FATTURA IMPRESA GUIDA UTENTE FATTURA IMPRESA (Vers. 4.5.0) Installazione... 2 Prima esecuzione... 5 Login... 6 Funzionalità... 7 Documenti... 8 Creazione di un nuovo documento... 9 Ricerca di un documento... 17 Calcolare

Dettagli

MediaWiki. Giuseppe Frisoni

MediaWiki. Giuseppe Frisoni MediaWiki Giuseppe Frisoni MediaWiki: costruire insieme 1/2 L'enorme successo di Wikipedia, la nota enciclopedia online, è sotto gli occhi di tutti; cosa meno nota, invece, è la piattaforma con cui è progettata.

Dettagli

1.7.x template, stili e layout predefiniti s.bellandi@prismanet.com

1.7.x template, stili e layout predefiniti s.bellandi@prismanet.com Stefano Bellandi 1.7.x template, stili e layout predefiniti s.bellandi@prismanet.com L intervento ha una durata di circa 45 minuti dove affronteremo alla velocità della luce: introduzione ai template joomla1.7

Dettagli

Server-side Programming: Java servlets Parte II

Server-side Programming: Java servlets Parte II Corso di Laurea Specialistica in Ingegneria Informatica Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Corso di Reti di Applicazioni Telematiche a.a. 2009-2010 Server-side Programming:

Dettagli

PHP e MySQL. Guida scaricata da www.webstyling.it

PHP e MySQL. Guida scaricata da www.webstyling.it Home -> Manuali & Tutorials -> Guida PHP PHP e MySQL E' possibile realizzare delle applicazioni in php appoggiandosi ad un database, quale ad esempio MySQL. Con le novità introdotte ai tempi di MySQL 4.1

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

[Tips & Tricks] 8 settembre 2011

[Tips & Tricks] 8 settembre 2011 10 punti da non sottovalutare per aggiornare con WebSite X5 Evolution 9 i siti realizzati con WebSite X5 Evolution 8 Introduzione Uno dei dubbi che nascono quando viene rilasciata la nuova versione di

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

DocManager. Prodotto software di Content Management per la gestione di manuali tecnici in ottemperanza alle norme unificate in materia

DocManager. Prodotto software di Content Management per la gestione di manuali tecnici in ottemperanza alle norme unificate in materia Prodotto software di Content Management per la gestione di manuali tecnici in ottemperanza alle norme unificate in materia Indice... 2 Prodotto software di Content Management per la gestione di manualistica

Dettagli

Guida all utilizzo a cura di Francesco Lattari. Guida all utilizzo di moodle per docenti

Guida all utilizzo a cura di Francesco Lattari. Guida all utilizzo di moodle per docenti Guida all utilizzo a cura di Francesco Lattari Indice Come collegarsi p. 02 Come effettuare il login p. 03 LaHome del docente p. 04 Header e Funzionalità p. 05 Preferenze del Profilo Utente p. 07 Il Calendario

Dettagli

Motori di Ricerca. Vale a dire: ci sono troppe informazioni, il problema è trovarle!

Motori di Ricerca. Vale a dire: ci sono troppe informazioni, il problema è trovarle! Motori di Ricerca "La Rete Internet equivale all unificazione di tutte le biblioteche del mondo, dove però qualcuno si è divertito a togliere tutti i libri dagli scaffali". Vale a dire: ci sono troppe

Dettagli

IMSV 0.8. (In Media Stat Virtus) Manuale Utente

IMSV 0.8. (In Media Stat Virtus) Manuale Utente Introduzione IMSV 0.8 (In Media Stat Virtus) Manuale Utente IMSV è una applicazione che calcola che voti può'prendere uno studente negli esami che gli mancano per ottenere la media che desidera. Importante:

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

Guida alla composizione di modelli OpenOffice

Guida alla composizione di modelli OpenOffice Tekne Informatica & Comunicazione Guida alla composizione di modelli OpenOffice guida rapida per creare e modificare modelli OpenOffice per XDent 01 aprile 2011 Sommario Premessa... 2 Ottenere ed Installare

Dettagli

Sondaggi OnLine. Documento Tecnico. Descrizione delle funzionalità del servizio

Sondaggi OnLine. Documento Tecnico. Descrizione delle funzionalità del servizio Documento Tecnico Sondaggi OnLine Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 30 Maggio 2005. Redatto da: Michela Michielan, michielan@prosa.com

Dettagli

Docenti: Patrizia Scandurra (referente princiaple) Angelo Gargantini. patrizia.scandurra@unibg.it

Docenti: Patrizia Scandurra (referente princiaple) Angelo Gargantini. patrizia.scandurra@unibg.it Progetto di Informatica III Introduzione al corso Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Contatti Obiettivo Natura Argomenti Organizzazione Materiale didattico Modalità

Dettagli

UTILIZZO DEL TEMPLATE Parte 1 - struttura

UTILIZZO DEL TEMPLATE Parte 1 - struttura UTILIZZO DEL TEMPLATE Parte 1 - struttura PROGRAMMI UTILIZZATI: gestione del codice HTML - HTML-Kit è un Editor Web non di tipo visuale, che consente la costruzione ex-novo di pagine web o la loro modifica,

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

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

CONTENT MANAGMENT SYSTEMS

CONTENT MANAGMENT SYSTEMS CONTENT MANAGMENT SYSTEMS ESTRATTO DA: Ileana D'Incecco, Progettare la comunicazione web per organizzazioni non-profit con strumenti open source: ideazione e realizzazione del sito web della Casa delle

Dettagli

RepairsLab Manuale Utente. RepairsLab. Manuale Utente

RepairsLab Manuale Utente. RepairsLab. Manuale Utente Pag 1 di 16 RepairsLab Manuale Utente Per RepairsLab 1.0.4 Autore: Fabrizio Ferraiuolo Indice generale Introduzione...2 Installazione...2 Schermata principale...3 Configurazione...4 Configurazioni Base

Dettagli

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

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

Dettagli

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

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

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