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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

GNred Ver1.5 Manuale utenti

GNred Ver1.5 Manuale utenti GNred Ver1.5 Manuale utenti [ultima modifica 09.06.06] 1 Introduzione... 2 1.1 Cos è un CMS?... 2 1.2 Il CMS GNred... 2 1.2.1 Concetti di base del CMS GNred... 3 1.2.2 Workflow... 3 1.2.3 Moduli di base...

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

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

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

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

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

[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

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

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

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

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

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

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

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

Dettagli

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

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

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

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

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

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

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

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

Progetto LiberA. Studente/Relatore: Antonio Zambito Matricola: 124/1032 CdL: Informatica (0124) Prof.: Raffaele Montella

Progetto LiberA. Studente/Relatore: Antonio Zambito Matricola: 124/1032 CdL: Informatica (0124) Prof.: Raffaele Montella Progetto LiberA L implementazione di un applicazione Web (PHP, CSS3, HTML5, MYSQL, JAVASCRIPT) per facilitare la gestione di un associazione culturale, contestualmente un associazione di danza. Nasce dalla

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

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

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

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

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

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

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

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

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

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

Il sito web della SIEm: www.elettromagnetismo.it

Il sito web della SIEm: www.elettromagnetismo.it QUADERNI DELLA SOCIETÀ ITALIANA DI ELETTROMAGNETISMO, VOL. 1, N. 1 MAGGIO 2005 75 Il sito web della SIEm: www.elettromagnetismo.it Franco Moglie 1 I. INTRODUZIONE Il mondo dei calcolatori e soprattutto

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

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

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

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

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea AUTENTICAZIONE PER APPLICAZIONI WEB Relatore

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

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

SOMMARIO. 1 ISTRUZIONI DI BASE. 2 CONFIGURAZIONE. 7 STORICO. 9 EDITOR HTML. 10 GESTIONE ISCRIZIONI E CANCELLAZIONI. 11 GESTIONE MAILING LIST.

SOMMARIO. 1 ISTRUZIONI DI BASE. 2 CONFIGURAZIONE. 7 STORICO. 9 EDITOR HTML. 10 GESTIONE ISCRIZIONI E CANCELLAZIONI. 11 GESTIONE MAILING LIST. INDICE 1) SOMMARIO... 1 2) ISTRUZIONI DI BASE... 2 3) CONFIGURAZIONE... 7 4) STORICO... 9 5) EDITOR HTML... 10 6) GESTIONE ISCRIZIONI E CANCELLAZIONI... 11 7) GESTIONE MAILING LIST... 12 8) E-MAIL MARKETING...

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

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

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

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

Evasione. Evasione. Vendite. Magazzini Immagini

Evasione. Evasione. Vendite. Magazzini Immagini Schema di funzionamento del Carico da Ordini Ordine Archivio di Transito Univoco Evasione Codifica Controllo Articoli Generico Evasione Movimenti Documenti Giacenze Testata Scadenze Vendite Dettaglio Ingrosso

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

Corso di Informatica

Corso di Informatica Corso di Informatica CL3 - Biotecnologie Orientarsi nel Web Prof. Mauro Giacomini Dott. Josiane Tcheuko Informatica - 2006-2007 1 Obiettivi Internet e WWW Usare ed impostare il browser Navigare in internet

Dettagli

Pubblicazione di contenuti vari sul sito web www.setificio.gov.it

Pubblicazione di contenuti vari sul sito web www.setificio.gov.it Pubblicazione di contenuti vari sul sito web www.setificio.gov.it Istruzioni per i docenti-editor, che hanno la possibilità di pubblicare articoli, modificare o cancellare quelli scritti da loro, modificare

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

TOOL PSCL FUNZIONALITÀ E PROCEDURE DI UTILIZZO

TOOL PSCL FUNZIONALITÀ E PROCEDURE DI UTILIZZO TOOL PSCL FUNZIONALITÀ E PROCEDURE DI UTILIZZO 2014 INDICE 1. FINALITÀ DEL TOOL PSCL 3 2. UTILIZZATORI DEL TOOL PSCL. 5 3. PROCEDURA STANDARD DI UTILIZZO DEL TOOL PSCL..7 4. MODALITÀ OPERATIVE DI UTILIZZO

Dettagli

WOPSpesometro Note sull utilizzo v. 5.0.0 marzo 2015 (comunicazione dati 2012, 2013 e 2014)

WOPSpesometro Note sull utilizzo v. 5.0.0 marzo 2015 (comunicazione dati 2012, 2013 e 2014) WOPSpesometro Note sull utilizzo v. 5.0.0 marzo 2015 (comunicazione dati 2012, 2013 e 2014) Sommario: 1) Attivazione del prodotto; 2) Configurazione; 3) Contribuente; 4) Gestione operazioni rilevanti ai

Dettagli

Le Basi di dati: generalità. Unità di Apprendimento A1 1

Le Basi di dati: generalità. Unità di Apprendimento A1 1 Le Basi di dati: generalità Unità di Apprendimento A1 1 1 Cosa è una base di dati In ogni modello di organizzazione della vita dell uomo vengono trattate informazioni Una volta individuate e raccolte devono

Dettagli

TypeEdit LaserType. TypeEdit e LaserType: i software artistici CAD/CAM, leader nel mercato, Vi offrono nuove e potenti funzionalità.

TypeEdit LaserType. TypeEdit e LaserType: i software artistici CAD/CAM, leader nel mercato, Vi offrono nuove e potenti funzionalità. TypeEdit LaserType V11 Innovativo Produttivo Ottimizzato TypeEdit e LaserType: i software artistici CAD/CAM, leader nel mercato, Vi offrono nuove e potenti funzionalità. Con la nuova versione V11, ottimizzano,

Dettagli

Estensioni e modelli. Ancora poco conosciuti, consentono di estendere la suite per l ufficio. Ecco come servirsene

Estensioni e modelli. Ancora poco conosciuti, consentono di estendere la suite per l ufficio. Ecco come servirsene Estensioni e modelli. Ancora poco conosciuti, consentono di estendere la suite per l ufficio. Ecco come servirsene Sotto il nome OpenOffice.org si nasconde un insieme di programmi per l ufficio potenti

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

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

Personalizzazione stampe con strumento Fincati

Personalizzazione stampe con strumento Fincati Personalizzazione stampe con strumento Fincati Indice degli argomenti Introduzione 1. Creazione modelli di stampa da strumento Fincati 2. Layout per modelli di stampa automatici 3. Impostazioni di stampa

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 A2 Introduzione ai database 1 Prerequisiti Concetto di sistema File system Archivi File e record 2 1 Introduzione Nella gestione di una attività, ad esempio un azienda, la

Dettagli

Lezione 8. Motori di Ricerca

Lezione 8. Motori di Ricerca Lezione 8 Motori di Ricerca Basi di dati Un campo prevalente dell applicazione informatica è quello costituito dall archiviazione e dalla gestione dei dati (basi di dati). Sistema Informativo. Un sistema

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

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

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

Dettagli

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

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

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

SISTEMA EDITORIALE WEBMAGAZINE V.2.2

SISTEMA EDITORIALE WEBMAGAZINE V.2.2 SISTEMA EDITORIALE WEBMAGAZINE V.2.2 1 - Il funzionamento di Web Magazine Web Magazine è un applicativo pensato appositamente per la pubblicazione online di un giornale, una rivista o un periodico. E'

Dettagli

Sommario. Introduzione... 11. 1. L ambiente di lavoro... 13. 3. Configurazioni generali e la struttura di Joomla... 35 La struttura di Joomla...

Sommario. Introduzione... 11. 1. L ambiente di lavoro... 13. 3. Configurazioni generali e la struttura di Joomla... 35 La struttura di Joomla... Sommario Introduzione... 11 1. L ambiente di lavoro... 13 XAMPP...15 Installare XAMPP e attivarlo...18 Creare un database MySQL con phpmyadmin...21 Configurare XAMPP in modo che il sito possa inviare e-mail...22

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

FtpZone Guida all uso Versione 2.1

FtpZone Guida all uso Versione 2.1 FtpZone Guida all uso Versione 2.1 La presente guida ha l obiettivo di spiegare le modalità di utilizzo del servizio FtpZone fornito da E-Mind Srl. All attivazione del servizio E-Mind fornirà solamente

Dettagli

Corso html 5. Di Roberto Abutzu. *********** Quarta parte: Body ed elementi strutturali. ********** Cos'è il Body e gli elementi strutturali?

Corso html 5. Di Roberto Abutzu. *********** Quarta parte: Body ed elementi strutturali. ********** Cos'è il Body e gli elementi strutturali? Corso html 5. Di Roberto Abutzu. *********** Quarta parte: Body ed elementi strutturali. ********** Cos'è il Body e gli elementi strutturali? Riprendiamo il discorso, introducendo la tag Body e iniziando

Dettagli

Monitoraggio della rete d assistenza Fase1 Anagrafica ASL Comuni - Assistibili

Monitoraggio della rete d assistenza Fase1 Anagrafica ASL Comuni - Assistibili Monitoraggio della rete d assistenza Fase1 Anagrafica ASL Comuni - Assistibili Versione 1.1 30 Novembre 2004 Manuale_Utente_MRA.doc Pagina 1 di 97 Versione 1.1 Indice 1. Introduzione... 5 1.1 Definizioni...

Dettagli

WWW.MECDATA.IT P22 P22 : SOFTWARE PER LA PREVENTIVAZIONE. Mecdata Srl www.mecdata.it info@mecdata.it Tel.051.790428

WWW.MECDATA.IT P22 P22 : SOFTWARE PER LA PREVENTIVAZIONE. Mecdata Srl www.mecdata.it info@mecdata.it Tel.051.790428 WWW.MECDATA.IT v.2.7 P22 P22 : SOFTWARE PER LA PREVENTIVAZIONE P22 P22 : SOFTWARE PER LA PREVENTIVAZIONE P22... 2 I valori del preventivo... 3 Header Testata... 3 Materiali M20... 3 Ciclo di Lavoro...

Dettagli

Soluzione Immobiliare

Soluzione Immobiliare SOLUZIONE IMMOBILIARE SOLUZIONE IMMOBILIARE è un software studiato appositamente per la gestione di una Agenzia. Creato in collaborazione con operatori del settore, Soluzione si pone sul mercato con l

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli

Quali dati potremmo modificare? Impostazioni sul campionato, risultati, designazioni, provvedimenti disciplinari, statistiche e tanto ancora.

Quali dati potremmo modificare? Impostazioni sul campionato, risultati, designazioni, provvedimenti disciplinari, statistiche e tanto ancora. WCM Sport è un software che tramite un sito web ha l'obbiettivo di aiutare l'organizzazione e la gestione di un campionato sportivo supportando sia i responsabili del campionato sia gli utilizzatori/iscritti

Dettagli

PTDR Disaster Recovery for oracle database

PTDR Disaster Recovery for oracle database PTDR Disaster Recovery for oracle database INTRODUZIONE... 3 INTRODUZIONE... 3 I MECCANISMI BASE DI ORACLE DATA GUARD... 3 COSA SONO I REDO LOG?... 4 IMPATTO SULL'ARCHITETTURA COMPLESSIVA... 4 CONCLUSIONI...

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

Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente

Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente Prerequisiti Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente L opzione Provvigioni agenti è disponibile per le versioni Vendite, Azienda Light e Azienda Pro. Introduzione

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

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