Zope base Zope base Giuseppe Masili Giuseppe Masili [email protected] [email protected] The limits...

57
Zope Zope base base Giuseppe Masili Giuseppe Masili [email protected] [email protected] The limits of a writing a The limits of a writing a product product are really your are really your imagination” imagination”

Transcript of Zope base Zope base Giuseppe Masili Giuseppe Masili [email protected] [email protected] The limits...

Page 1: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Zope baseZope base

Giuseppe MasiliGiuseppe Masili

[email protected]@linux.it

““The limits of a writing The limits of a writing a product a product are really your are really your imagination”imagination”Andy McKayAndy McKay

Page 2: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Che cos'è Zope?Che cos'è Zope?

Zope è una piattaforma che permette a Zope è una piattaforma che permette a sviluppatori con differenti livelli di sviluppatori con differenti livelli di competenza di costruire applicazioni competenza di costruire applicazioni web. web.

Questa presentazione illustra gli impieghi Questa presentazione illustra gli impieghi di Zope in maggior dettaglio ed il di Zope in maggior dettaglio ed il pubblico a cui è destinato. Descrive pubblico a cui è destinato. Descrive inoltre che cosa distingue Zope da inoltre che cosa distingue Zope da applicazioni simili. applicazioni simili.

Page 3: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Che cos'è un'applicazione web?Che cos'è un'applicazione web?

Una Una applicazione webapplicazione web e' un programma e' un programma per computer che viene eseguito dagli per computer che viene eseguito dagli utenti sfruttando un qualsiasi browser utenti sfruttando un qualsiasi browser web tipo:web tipo:● GaleonGaleon● MozillaMozilla● Konqueror Konqueror ● OperaOpera● Microsoft Internet Explorer Microsoft Internet Explorer

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 4: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Storia di Zope: 1996Storia di Zope: 1996

Nel 1996 Jim Fulton, l'attuale CTO (Nel 1996 Jim Fulton, l'attuale CTO (Chief Chief Technology Officer) Technology Officer) di Zope Corporation, di Zope Corporation, venne scelto per tenere un corso sulla venne scelto per tenere un corso sulla programmazione CGI, malgrado non ne programmazione CGI, malgrado non ne sapesse molto a riguardo.sapesse molto a riguardo.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 5: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Storia di Zope: CGI Storia di Zope: CGI

La programmazione CGI (common La programmazione CGI (common gateway interface) è un modello di gateway interface) è un modello di sviluppo web comunemente utilizzato sviluppo web comunemente utilizzato che permette agli sviluppatori di che permette agli sviluppatori di costruire siti web dinamici.costruire siti web dinamici.

Jim studiò tutta la documentazione Jim studiò tutta la documentazione esistente sui CGI durante il viaggio. esistente sui CGI durante il viaggio.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 6: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Storia di Zope: 1996Storia di Zope: 1996

Al ritorno dal corso, Jim valutò che gli Al ritorno dal corso, Jim valutò che gli ambienti di programmazione basati su ambienti di programmazione basati su CGI non erano di suo gradimento. CGI non erano di suo gradimento.

Il cuore di Zope venne scritto, in seguito Il cuore di Zope venne scritto, in seguito a queste considerazioni, sull'aereo a queste considerazioni, sull'aereo durante il volo di ritorno.durante il volo di ritorno.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 7: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Storia di Zope: Storia di Zope:

Zope Corporation (nota come Digital Zope Corporation (nota come Digital Creations) rilasciò tre pacchetti software Creations) rilasciò tre pacchetti software open source per la pubblicazione web: open source per la pubblicazione web: Bobo, Document Template e BoboPOS. Bobo, Document Template e BoboPOS.

Vennero scritti in un linguaggio chiamato Vennero scritti in un linguaggio chiamato Python, e rispettivamente offrivano uno Python, e rispettivamente offrivano uno strumento per la pubblicazione su web, il strumento per la pubblicazione su web, il templating del testo e un database ad templating del testo e un database ad oggetti.oggetti.Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 8: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Storia di Zope: Storia di Zope:

Venne sviluppato un server di Venne sviluppato un server di applicazioni web commerciale basato su applicazioni web commerciale basato su questi loro tre componenti open source, questi loro tre componenti open source, chiamato chiamato PrincipiaPrincipia. .

Nel Novembre del 1998, l'investitore Nel Novembre del 1998, l'investitore Hadar Pedhazur convinse la Digital Hadar Pedhazur convinse la Digital Creations a rendere open source Creations a rendere open source Principia. Principia. Questi componenti si sono evoluti nei Questi componenti si sono evoluti nei componenti base di Zope. componenti base di Zope. Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 9: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

L'acronimo “Zope”: L'acronimo “Zope”:

L'acronimo "Zope" sta per Z Object L'acronimo "Zope" sta per Z Object Publishing Environment (Publishing Environment (ambiente per ambiente per pubblicazione di oggettipubblicazione di oggetti) )

Ora.. sta "Z"? Non significa niente Ora.. sta "Z"? Non significa niente :o):o)

La maggior parte di Zope è scritta nel La maggior parte di Zope è scritta nel linguaggio di scripting Python, ed in C nei linguaggio di scripting Python, ed in C nei frammenti di codice critici per le frammenti di codice critici per le prestazioni. prestazioni. Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 10: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Dieci motivi per scegliere Dieci motivi per scegliere Zope: Zope:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 11: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Gratis & open-source: Gratis & open-source:

Zope è Zope è gratuitogratuito ed è distribuito ed è distribuito secondo una licenza open-source. secondo una licenza open-source.

Ci sono molti server di applicazioni Ci sono molti server di applicazioni commerciali non gratuiti parecchio commerciali non gratuiti parecchio costosi.costosi.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

11

Page 12: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Tutti i prodotti che cerchi: Tutti i prodotti che cerchi:

Viene fornito con tutti i componenti Viene fornito con tutti i componenti necessari per cominciare lo sviluppo di necessari per cominciare lo sviluppo di una applicazione. una applicazione.

Tanti altri server di applicazioni implicano Tanti altri server di applicazioni implicano spese "nascoste" dovute alle licenze di spese "nascoste" dovute alle licenze di costosi software o alla configurazione di costosi software o alla configurazione di complesse infrastrutture di terze parti complesse infrastrutture di terze parti prima che possiate cominciare lo prima che possiate cominciare lo sviluppo della vostra applicazione.sviluppo della vostra applicazione.Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

22

Page 13: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Tutti gli sviluppatori che cerchi: Tutti gli sviluppatori che cerchi:

Zope permette ed incoraggia gli Zope permette ed incoraggia gli sviluppatori a pacchettizzare e a sviluppatori a pacchettizzare e a distribuire applicazioni pronte all'uso. distribuire applicazioni pronte all'uso. Grazie a ciò, Zope è corredato da Grazie a ciò, Zope è corredato da un'ampia varietà di servizi integrati e di un'ampia varietà di servizi integrati e di prodotti aggiuntivi per un utilizzo prodotti aggiuntivi per un utilizzo immediato.immediato.

La popolarità di Zope ha originato una La popolarità di Zope ha originato una grossa comunità di sviluppatori di grossa comunità di sviluppatori di applicazioni.applicazioni.Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

33

Page 14: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

ZEO: ZEO:

Le applicazioni create in Zope possono Le applicazioni create in Zope possono scalare quasi linearmente utilizzando la scalare quasi linearmente utilizzando la soluzione ZEO (Zope Enterprise Objects) soluzione ZEO (Zope Enterprise Objects) che Zope mette a disposizione. che Zope mette a disposizione. Utilizzando ZEO, potrete fornire una Utilizzando ZEO, potrete fornire una applicazione Zope attraverso molti applicazione Zope attraverso molti computer. computer.

Molti application servers non scalano Molti application servers non scalano affatto.affatto.Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

44

Page 15: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Interfaccia Web di gestione: Interfaccia Web di gestione:

Zope consente agli sviluppatori di Zope consente agli sviluppatori di delegare in modo sicuro i compiti di delegare in modo sicuro i compiti di sviluppo ad altri sviluppatori "attraverso sviluppo ad altri sviluppatori "attraverso il web" utilizzando l'interfaccia di Zope (la il web" utilizzando l'interfaccia di Zope (la Zope Management Interface, anche nota Zope Management Interface, anche nota come ZMI).come ZMI).

Davvero pochi altri server di applicazioni, Davvero pochi altri server di applicazioni, se ce ne fosse alcuno, forniscono lo se ce ne fosse alcuno, forniscono lo stesso livello di funzionalità.stesso livello di funzionalità.Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

55

Page 16: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Sicurezza e autenticazione: Sicurezza e autenticazione:

Zope fornisce una piattaforma dalla Zope fornisce una piattaforma dalla sicurezza estensibile e granulare. Potrete sicurezza estensibile e granulare. Potrete integrare semplicemente Zope con integrare semplicemente Zope con diversi sistemi di autenticazione come, diversi sistemi di autenticazione come, LDAP, Windows NT e RADIUS LDAP, Windows NT e RADIUS simultaneamente, utilizzando modelli simultaneamente, utilizzando modelli esistenti. esistenti.

Molti altri application servers mancano Molti altri application servers mancano del supporto per alcuni di questi sistemi.del supporto per alcuni di questi sistemi.Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

66

Page 17: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Ad ognuno il suo spazio/compito: Ad ognuno il suo spazio/compito:

Zope consente davvero a gruppi di Zope consente davvero a gruppi di sviluppatori di collaborare fornendo: la sviluppatori di collaborare fornendo: la funzionalita di Undo, la History ed altri funzionalita di Undo, la History ed altri strumenti che aiutano le diverse parti a strumenti che aiutano le diverse parti a lavorare in modo sicuro assieme e lavorare in modo sicuro assieme e permettono il ripristino dagli errori. permettono il ripristino dagli errori.

Molti altri application servers non Molti altri application servers non prevedono questo tipo di caratteristica.prevedono questo tipo di caratteristica.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

77

Page 18: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Tu dammi un s.o. ed io ti installerò Tu dammi un s.o. ed io ti installerò Zope: Zope:

Zope gira sui più diffusi sistemi Zope gira sui più diffusi sistemi operativi per microcomputer: Linux, operativi per microcomputer: Linux, Windows NT/2000/XP, Solaris, FreeBSD, Windows NT/2000/XP, Solaris, FreeBSD, NetBSD, OpenBSD e NetBSD, OpenBSD e Mac OS X. Mac OS X.

Molti altri server di applicazioni Molti altri server di applicazioni richiedono che li si esegua su un sistema richiedono che li si esegua su un sistema operativo scelto dal venditore.operativo scelto dal venditore.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

88

Page 19: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Python: Python:

Zope può essere esteso utilizzando il Zope può essere esteso utilizzando il linguaggio di scripting Python. Python è linguaggio di scripting Python. Python è open source, di semplice apprendimento open source, di semplice apprendimento e agevola lo sviluppo rapido. e agevola lo sviluppo rapido.

Molti altri application servers devono Molti altri application servers devono venire estesi mediante linguaggi non venire estesi mediante linguaggi non open source. open source. Questo significa maggiori costi di Questo significa maggiori costi di sviluppo.sviluppo.Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

99

Page 20: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Comunità: Comunità:

Software, manuali multilingue e Software, manuali multilingue e assistenza sono gratuiti.assistenza sono gratuiti.

Info:Info: http://www.zope.orghttp://www.zope.org http://www.zope.ithttp://www.zope.it

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

1010

Page 21: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Zope in un solo click! Zope in un solo click!

L'ultima versione di Zope è sempre L'ultima versione di Zope è sempre disponibile gratuitamente al seguente disponibile gratuitamente al seguente indirizzo:indirizzo:

http://www.zope.org/Products http://www.zope.org/Products

Attualmente:Attualmente: Zope-2.6.1-win32-x86.exe 2.6.1(Stable) Zope-2.6.1-win32-x86.exe 2.6.1(Stable) Zope-2.6.1-src.tgz Zope-2.6.1-src.tgz 2.6.1(Stable)2.6.1(Stable) Zope-2.6.1-solaris-2.8-sparc.tgz 2.6.1(Stable) Zope-2.6.1-solaris-2.8-sparc.tgz 2.6.1(Stable) Zope-2.6.1-linux2-x86.tgz Zope-2.6.1-linux2-x86.tgz 2.6.1(Stable) 2.6.1(Stable)

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 22: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Cosa fornisce Zope? Cosa fornisce Zope?

Zope è costituito da più moduli che Zope è costituito da più moduli che interagiscono tra di loro:interagiscono tra di loro:

● un server webun server web● un database ad oggettiun database ad oggetti● un'interfaccia di amministrazioneun'interfaccia di amministrazione

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 23: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Un server web: Un server web:

Zope contiene già un server web in grado Zope contiene già un server web in grado di supportare tutte le funzionalità di supportare tutte le funzionalità necessarie al servizio delle applicazioni necessarie al servizio delle applicazioni sviluppate. sviluppate.

Se però si ha la necessità di utilizzare un Se però si ha la necessità di utilizzare un altro server web Zope dà la possibilità di altro server web Zope dà la possibilità di sostituire facilmente il server web interno sostituire facilmente il server web interno con uno qualsiasi, come ad esempio con uno qualsiasi, come ad esempio ApacheApache..Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 24: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Un database ad oggetti: Un database ad oggetti:

La grande differenza tra Zope e prodotti La grande differenza tra Zope e prodotti analoghi è il fatto che Zope ha analoghi è il fatto che Zope ha trasformato il Web in una struttura ad trasformato il Web in una struttura ad oggetti e quindi contiene al suo interno oggetti e quindi contiene al suo interno un un database ad oggettidatabase ad oggetti nel quale nel quale verranno immagazzinati i dati.verranno immagazzinati i dati.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 25: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Un'interfaccia di amministrazione: Un'interfaccia di amministrazione:

Zope fornisce una completa interfaccia Zope fornisce una completa interfaccia utente che può essere utilizzata per la utente che può essere utilizzata per la gestione e lo sviluppo delle applicazioni.gestione e lo sviluppo delle applicazioni.

L'interfaccia può essere usata da L'interfaccia può essere usata da qualsiasi browser web moderno e si qualsiasi browser web moderno e si presenta in modo molto familiare agli presenta in modo molto familiare agli utenti, visualizzando gli oggetti tramite utenti, visualizzando gli oggetti tramite una struttura ad albero, in modo simile ai una struttura ad albero, in modo simile ai più diffusi file manager. più diffusi file manager. Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 26: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 27: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Orientamento agli oggetti: Orientamento agli oggetti:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Per utilizzare Zope al meglio, sara' Per utilizzare Zope al meglio, sara' necessario afferrare il concetto di necessario afferrare il concetto di orientamento agli oggetti. orientamento agli oggetti.

L'orientamento agli oggetti e' un modello L'orientamento agli oggetti e' un modello di sviluppo del software che viene di sviluppo del software che viene utilizzato in molti linguaggi di utilizzato in molti linguaggi di programmazione (C++, Java, Python, ed programmazione (C++, Java, Python, ed altri). altri).

Page 28: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Orientamento agli oggetti: Orientamento agli oggetti:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

In un sistema orientato agli oggetti In un sistema orientato agli oggetti (come Zope), le applicazioni vengono (come Zope), le applicazioni vengono plasmate sugli oggetti. plasmate sugli oggetti.

Gli oggetti sono "contenitori" di Gli oggetti sono "contenitori" di datidati e di e di logicalogica di controllo. di controllo.

Page 29: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Applicazione NON orientata agli Applicazione NON orientata agli oggetti: oggetti:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

In una normale applicazione non In una normale applicazione non orientata agli oggetti, potete distinguere orientata agli oggetti, potete distinguere due parti:due parti:● CodiceCodice. Ad esempio, in una classica . Ad esempio, in una classica applicazione web basata su CGI potete applicazione web basata su CGI potete avere una parte logica sottoforma di avere una parte logica sottoforma di script Perl.script Perl.● DatiDati. Potreste avere le informazioni . Potreste avere le informazioni relative agli impiegati memorizzate in relative agli impiegati memorizzate in una base di dati gestita da MySQL o una base di dati gestita da MySQL o Oracle, su cui opera il vostro codice.Oracle, su cui opera il vostro codice.

Page 30: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Applicazione NON orientata agli Applicazione NON orientata agli oggetti: oggetti:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Questo implica che questi dati esistono Questo implica che questi dati esistono quasi unicamente in funzione del codice quasi unicamente in funzione del codice che li può manipolare. che li può manipolare.

Senza di esso praticamente non Senza di esso praticamente non avrebbero significato.avrebbero significato.

Page 31: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Applicazione orientata agli oggetti: Applicazione orientata agli oggetti:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Ci sarà una ed una sola cosa: Ci sarà una ed una sola cosa: ● OggettiOggetti. Gli oggetti sono collezioni di . Gli oggetti sono collezioni di codice e di dati assemblati assieme. codice e di dati assemblati assieme.

Per esempio potete avere un oggetto che Per esempio potete avere un oggetto che rappresenta un impiegato. Al suo interno rappresenta un impiegato. Al suo interno sono presenti i dati sull'impiegato, quali il sono presenti i dati sull'impiegato, quali il numero di telefono, la via, .., e anche la numero di telefono, la via, .., e anche la "logica" (il codice) in grado di manipolare "logica" (il codice) in grado di manipolare questi dati.questi dati.

Page 32: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Riassunto: Riassunto:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

In una applicazione non orientata agli In una applicazione non orientata agli oggetti, i dati sono separati dal codice. oggetti, i dati sono separati dal codice.

In una applicazione orientata agli oggetti In una applicazione orientata agli oggetti invece sia i dati che il codice sono invece sia i dati che il codice sono immagazzinati in uno o piu' oggetti. immagazzinati in uno o piu' oggetti.

Gli oggetti possono modellare Gli oggetti possono modellare praticamente ogni cosa.praticamente ogni cosa.

Page 33: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

In Zope, il Control_Panel e' un oggetto, In Zope, il Control_Panel e' un oggetto, le "Folder" che create sono oggetti e le "Folder" che create sono oggetti e anche la "root folder" e' un oggetto. anche la "root folder" e' un oggetto.

Quando si utilizza la lista contenente gli Quando si utilizza la lista contenente gli elementi da aggiungere per creare un elementi da aggiungere per creare un nuovo elemento nella Zope Management nuovo elemento nella Zope Management Interface, state creando un oggetto. Interface, state creando un oggetto.

Le persone che estendono Zope creando Le persone che estendono Zope creando i Prodotti definiscono i propri tipi di i Prodotti definiscono i propri tipi di oggetti. oggetti.

Page 34: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Attributi: Attributi:

I dati relativi ad un oggetto sono definiti I dati relativi ad un oggetto sono definiti dai suoi attributi. dai suoi attributi.

Ad esempio, dei possibili attributi Ad esempio, dei possibili attributi possono essere: "first_name" e possono essere: "first_name" e "last_name", che sono rispettivamente "last_name", che sono rispettivamente una serie di caratteri che rappresentano una serie di caratteri che rappresentano il nome e il cognome dell'impiegato. il nome e il cognome dell'impiegato. Infine può avere l'attributo "title", che Infine può avere l'attributo "title", che identifica la descrizione dell'incarico.identifica la descrizione dell'incarico.

Page 35: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Metodi: Metodi:

L'insieme di azioni che un oggetto può L'insieme di azioni che un oggetto può compiere è definita dai suoi metodi. compiere è definita dai suoi metodi.

Per esempio, un metodo "getFirstName" Per esempio, un metodo "getFirstName" può restituire il valore dell'attributo può restituire il valore dell'attributo "first_name" dell'oggetto, mentre il "first_name" dell'oggetto, mentre il metodo "setFirstName" può modificare il metodo "setFirstName" può modificare il valore dell'attributo "first_name". Il valore dell'attributo "first_name". Il metodo "getTitle" dell'oggetto può metodo "getTitle" dell'oggetto può restituire "Vice Presidente" o "Portinaio". restituire "Vice Presidente" o "Portinaio".

Page 36: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Approfondimento: Approfondimento:

Alcuni oggetti sono chiamati "metodi".Alcuni oggetti sono chiamati "metodi".

Per esempio, esistono Metodi DTML, Per esempio, esistono Metodi DTML, Metodi SQL e Metodi Esterni. Ciò avviene Metodi SQL e Metodi Esterni. Ciò avviene perchè questi oggetti sono stati pensati perchè questi oggetti sono stati pensati per essere usati come metodi. Quando per essere usati come metodi. Quando vengono invocati sono ancorati alla vengono invocati sono ancorati alla cartella che li contiene; anche la logica cartella che li contiene; anche la logica che includono fa riferimento alla cartella che includono fa riferimento alla cartella che li contiene. che li contiene.

Page 37: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Classi: Classi:

Una classe definisce il comportamento Una classe definisce il comportamento di un oggetto e ne rappresenta il di un oggetto e ne rappresenta il costruttore. costruttore.

E' una cosa piuttosto normale trovare E' una cosa piuttosto normale trovare alcuni oggetti in un sistema che sono alcuni oggetti in un sistema che sono essenzialmente simili ad un altro salvo essenzialmente simili ad un altro salvo per il valore dei loro attributi.per il valore dei loro attributi.

Page 38: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Esempio: Esempio:

Potete avere oggetti nel vostro sistema, Potete avere oggetti nel vostro sistema, ognuno dei quali con gli attributi ognuno dei quali con gli attributi "first_name" e "last_name". "first_name" e "last_name". L'unica differenza è il valore contenuto L'unica differenza è il valore contenuto all'interno degli attributi. all'interno degli attributi. L'attributo "first_name" di un oggetto può L'attributo "first_name" di un oggetto può essere "Fred", mentre un altro può essere "Fred", mentre un altro può contenere "Jim". contenere "Jim".

Questi oggetti sono membri della stessa Questi oggetti sono membri della stessa classe. classe.

Page 39: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Istanze: Istanze:

Gli oggetti che vengono costruiti da una Gli oggetti che vengono costruiti da una classe sono chiamati istanze della classe classe sono chiamati istanze della classe o o (piu' spesso) semplicemente istanze. (piu' spesso) semplicemente istanze.

Per esempio, la cartella Test ha un Per esempio, la cartella Test ha un attributo id il cui valore è Test, mentre attributo id il cui valore è Test, mentre un'altra cartella può avere l'attributo id un'altra cartella può avere l'attributo id impostato a Test2 ma entrambe sono impostato a Test2 ma entrambe sono istanze della stessa classe e si istanze della stessa classe e si comportano allo stesso modo.comportano allo stesso modo.

Page 40: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Istanze: Istanze:

Tutti gli oggetti con cui avete a che fare Tutti gli oggetti con cui avete a che fare utilizzando l'interfaccia di utilizzando l'interfaccia di amministrazione di Zope sono istanze di amministrazione di Zope sono istanze di una classe. una classe.

Generalmente le classi da cui questi Generalmente le classi da cui questi oggetti sono costruiti sono definite nei oggetti sono costruiti sono definite nei Prodotti di Zope, che sono creati dagli Prodotti di Zope, che sono creati dagli sviluppatori di Zope e dai membri della sviluppatori di Zope e dai membri della comunità. comunità.

Page 41: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

In Zope l'ereditarietà è molto utilizzata. In Zope l'ereditarietà è molto utilizzata.

Ad esempio, la classe "Image" eredita il Ad esempio, la classe "Image" eredita il suo comportamento dalla classe "File", suo comportamento dalla classe "File", poiché le immagini sono un particolare poiché le immagini sono un particolare tipo di file. tipo di file. Ma la classe "Image" aggiunge qualche Ma la classe "Image" aggiunge qualche comportamento in più che le permette di comportamento in più che le permette di presentare in forma visuale un marcatore presentare in forma visuale un marcatore HTML invece di provocare il download del HTML invece di provocare il download del file.file.Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Ereditarietà: Ereditarietà:

Page 42: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Contenuti dinamici con DTML: Contenuti dinamici con DTML:

DTML (Document Template Markup DTML (Document Template Markup Language) Language) è uno dei linguaggi a tag di Zope.è uno dei linguaggi a tag di Zope.

Questo tipo di linguaggio è dedicato Questo tipo di linguaggio è dedicato principalmente ai progettisti Web.principalmente ai progettisti Web.

Il DTML è molto potente ma deve essere Il DTML è molto potente ma deve essere utilizzato solo per la presentazione dei utilizzato solo per la presentazione dei dati.dati.Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 43: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Formattazione dei dati eterogenei: Formattazione dei dati eterogenei:

Esempio:Esempio:

<dtml-var standard_html_header><dtml-var standard_html_header><p>Hello world.</p><p>Hello world.</p><dtml-var standard_html_footer><dtml-var standard_html_footer>

Questa pagina Web utilizza insieme Questa pagina Web utilizza insieme codicecodiceHTML e DTML.HTML e DTML.

Il Il dtml-vardtml-var indica una sostituzione indica una sostituzione dell'oggetto.dell'oggetto.Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 44: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Gli oggetti header e footer: Gli oggetti header e footer:

standard_html_header contiene:standard_html_header contiene:

<html><html><body><body><p> Ultima modifica 2003/10/16 by Amost</p><p> Ultima modifica 2003/10/16 by Amost</p>

standard_html_footer contiene:standard_html_footer contiene:

<p><dtml-var ZopeAttributionButton></p><p><dtml-var ZopeAttributionButton></p></body></body></html></html>

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 45: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Eseguendo la pagina Web: Eseguendo la pagina Web: Il DTML verrà sostituito per ereditarietà Il DTML verrà sostituito per ereditarietà ottenendo:ottenendo:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 46: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Il sorgente: Il sorgente: Se l'oggetto è un'immagine, Zope lo Se l'oggetto è un'immagine, Zope lo sostituisce consostituisce conil TAG <img ...il TAG <img ...

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Page 47: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Approfondimento dtml-var: Approfondimento dtml-var:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

<dtml-call "REQUEST.set('name', 'paul everitt')"><dtml-call "REQUEST.set('name', 'paul everitt')"><dtml-var name <dtml-var name capitalizecapitalize>>

Paul everittPaul everitt<dtml-var name <dtml-var name lowerlower>>

paul everittpaul everitt<dtml-var name <dtml-var name upperupper>>

PAUL EVERITTPAUL EVERITT<dtml-var name <dtml-var name missing=”non inserito”missing=”non inserito”>>

non inseritonon inserito<dtml-var name size=3><dtml-var name size=3>

pau...pau...<dtml-var name size=3 etc=””><dtml-var name size=3 etc=””>

paupau

Page 48: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

dtml-call variabile globale: dtml-call variabile globale:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Il dtml-call attiva una variabile globale Il dtml-call attiva una variabile globale che sarà attiva per tutto il tempo di che sarà attiva per tutto il tempo di visualizzazione della pagina Web. visualizzazione della pagina Web.

<dtml-call "REQUEST.set('name', 'paul everitt')"><dtml-call "REQUEST.set('name', 'paul everitt')">

L'assegnazione determina il tipo della L'assegnazione determina il tipo della variabile.variabile.In questo caso In questo caso namename è di tipo è di tipo stringstring

Page 49: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

dtml-let variabile locale: dtml-let variabile locale:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Il Il dtml-letdtml-let attiva una o più variabili locali attiva una o più variabili locali che saranno attive solo in quella parte di che saranno attive solo in quella parte di codice.codice.

<dtml-let name=”paul everitt” num=23 tot=123><dtml-let name=”paul everitt” num=23 tot=123> <tr with=”dtml-tot;”><tr with=”dtml-tot;”> <td with=”&dtml-num;”>&dtml-name;</td><td with=”&dtml-num;”>&dtml-name;</td> ...... </tr></tr></dtml-let></dtml-let>

&dtml- è una sintassi abbreviata per il &dtml- è una sintassi abbreviata per il tag vartag var

Page 50: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Commentare una parte di codice: Commentare una parte di codice:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Il Il dtml-commentdtml-comment può essere usato per può essere usato per escludere una parte di codice e/o per escludere una parte di codice e/o per indicare un commento in formato testo indicare un commento in formato testo che non verrà inserito nella pagine Web.che non verrà inserito nella pagine Web.

<dtml-comment><dtml-comment> Ho escluso questa variabile per i seguenti motivi... Ho escluso questa variabile per i seguenti motivi... <dtml-call "REQUEST.set('name', 'paul everitt')"> <dtml-call "REQUEST.set('name', 'paul everitt')"></dtml-comment></dtml-comment>

Page 51: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Verifica la condizione con dtml-if: Verifica la condizione con dtml-if:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Il Il dtml-ifdtml-if permette di personalizzare la permette di personalizzare la propria pagina Web. Consente di valutare propria pagina Web. Consente di valutare una condizione e di svolgere operazioni una condizione e di svolgere operazioni differenti.differenti.

<dtml-if name><dtml-if name> Benvenuto <dtml-var name>!Benvenuto <dtml-var name>!<dtml-elif “name=='Giuseppe'”><dtml-elif “name=='Giuseppe'”> <dtml-raise type="404">Not Found</dtml-raise><dtml-raise type="404">Not Found</dtml-raise><dtml-else><dtml-else> <dtml-var login_dtml><dtml-var login_dtml></dtml-if></dtml-if>

Page 52: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Cicli con dtml-in: Cicli con dtml-in:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Il Il dtml-in dtml-in permette un'iterazione su una permette un'iterazione su una sequenza di oggetti eseguendo un blocco sequenza di oggetti eseguendo un blocco di operazioni per ogni elemento di operazioni per ogni elemento contenuto nella sequenza.contenuto nella sequenza.

<dtml-in "objectValues('Folder')"><dtml-in "objectValues('Folder')"> <p><a href="<dtml-var absolute_url>"><p><a href="<dtml-var absolute_url>"> <dtml-var title_or_id></a></p><dtml-var title_or_id></a></p></dtml-in></dtml-in>

Page 53: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

In fine Zope e FTP: In fine Zope e FTP:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

E' il formato di comunicazione con il E' il formato di comunicazione con il quale si possono trasferire dati tra quale si possono trasferire dati tra computer connessi in rete con velocita' e computer connessi in rete con velocita' e praticita' maggiori .praticita' maggiori .Zope poteva non permettere questa Zope poteva non permettere questa tecnica? tecnica? ;o);o)

lftp utente@tuamacchina:8021lftp utente@tuamacchina:8021

Si può accedere ai dati contenuti nel Si può accedere ai dati contenuti nel data.fs usando un qualsiasi programma data.fs usando un qualsiasi programma FTP con il proprio utente sulla porta 8021FTP con il proprio utente sulla porta 8021

Page 54: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Cosa c'e' ancora da sapere? Cosa c'e' ancora da sapere?

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Data.fs CMF Plone OpenFlow ZPT Local Data.fs CMF Plone OpenFlow ZPT Local File System DTML Document File System DTML Document manage_addFolder manage_addFolder Mail Host Zope3 Python __init__.py Mail Host Zope3 Python __init__.py Cookie Crumbler Formulator RAM Cache Cookie Crumbler Formulator RAM Cache Manager Virtual Host Monster Vocabulary Manager Virtual Host Monster Vocabulary Z SQL Method ZPoPyDA User Folder Z SQL Method ZPoPyDA User Folder Session REQUEST temp_folder ZCatalog Session REQUEST temp_folder ZCatalog Security Script Python ZopeTestCase Security Script Python ZopeTestCase MailBoxer manage CMFWiki Silva MailBoxer manage CMFWiki Silva fcForum ExtZSQL TTWType dtml-tree ... fcForum ExtZSQL TTWType dtml-tree ...

Page 55: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Dove posso reperire informazioni?Dove posso reperire informazioni?

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

http://www.zope.orghttp://www.zope.orghttp://www.zope.ithttp://www.zope.ithttp://cmf.zope.orghttp://cmf.zope.orghttp://www.plone.orghttp://www.plone.orghttp://www.zopelabs.comhttp://www.zopelabs.comhttp://www.python.orghttp://www.python.orghttp://www.python.it http://www.python.it http://lists.zope.orghttp://lists.zope.orgirc.debian.org 6667 #zope #zope-it irc.debian.org 6667 #zope #zope-it #plone#plone

Page 56: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

In particolare zope.it:In particolare zope.it:

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

Questo sito nasce con un'idea: mettere a Questo sito nasce con un'idea: mettere a disposizione esperienze e nozioni dei disposizione esperienze e nozioni dei tanti sviluppatori italiani in Zope.tanti sviluppatori italiani in Zope.

Zope.itZope.it sfrutta la potenza del CMF. sfrutta la potenza del CMF. Al Webbit 2003 ci sarà il primo Sprint Al Webbit 2003 ci sarà il primo Sprint Zope.it nel quale verrà sostituito CMF con Zope.it nel quale verrà sostituito CMF con Plone.Plone.

Page 57: Zope base Zope base Giuseppe Masili Giuseppe Masili giuseppe@linux.it giuseppe@linux.it The limits of a writing a product are really your imagination Andy.

Grazie per l'attenzioneGrazie per l'attenzione

Z o p eZ o p eA P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I A P P L I C A Z I O N I W E B S E M P L I C I E P O T E N T I

ZopeZope Giuseppe MasiliGiuseppe Masili [email protected] [email protected]