Seminario Università degli Studi di Udine, Polo Scientifico dei Rizzi Martedì 3 luglio 2007, ore 17,00 CMS Open Source: il caso Plone-Zope Fabio Bottega (f.bottega@tecnoteca.it)
CMS open source Slide 2 CMS Open Source: il caso Plone-Zope Partiamo dal titolo Cosa vuol dire Open Source? Cosa vuol dire CMS? Cos è ZOPE? Cos è Plone?
Il software Open Source: introduzione Slide 3 Cosa vuol dire Open Source Principi l utente ha libertà di eseguire il programma per qualsiasi scopo l utente ha la libertà di modificare il programma secondo i propri bisogni (perché questa libertà abbia effetto in pratica è necessario garantire l accesso al codice sorgente del programma) l utente ha la libertà di distribuire copie del programma, gratuitamente o dietro compenso l utente ha la libertà di distribuire versioni modificate del programma, così che la comunità possa fruire dei miglioramenti apportati Storia 1984: formalizzato per la prima volta da Stallman (MIT) 1985: nasce l organizzazione Free Software Fondation Vedi seminario ALSI 11 luglio su tipologie licenze open source
Il software Open Source: punti di forza Slide 4 Vantaggi consente la riduzione dei tempi di sviluppo grazie al coinvolgimento di numeri anche molto elevati di sviluppatori favorisce un test più efficace grazie ai numerosi sviluppatori che partecipano al progetto e grazie alla disponibilità del codice sorgente permette di riusare più facilmente il codice e le esperienze già disponibili rende libero l utente dalla dipendenza dal fornitore contiene i prezzi dei prodotti, non soggetti a contratti-capestro, in genere favoriti da situazioni monopolistiche permette di verificare con la massima trasparenza che nel software non siano nascosti sistemi che violino la privacy degli utilizzatori garantisce la possibilità di personalizzazione del software, a cura dell utente o di strutture terze di servizi salvaguarda gli investimenti garantendo la continuità dei progetti sw
Il software Open Source: modelli di business Slide 5 Dalle licenze ai servizi Il modello di business è economicamente sostenibile: il business si sta spostando radicalmente dalla vendita dei programmi alla vendita dei servizi correlati. Fonti di reddito supporto tecnico: installazione, configurazione e soluzione di problemi personalizzazione: adattamento del software alla specifiche necessità del cliente formazione: istruzione di personale tecnico per il supporto, istruzione degli utenti all utilizzo consulenza: per la scelta del prodotto, per l integrazione con altri sistemi già presenti, ecc vendita di software pacchettizzato (esempio: distribuzioni Linux) sviluppo e vendita di documentazione
Il software Open Source: tipologie di soluzioni Slide 6 Soluzioni infrastrutturali sistemi operativi strumenti per gestire servizi di rete strumenti di supporto alla sicurezza servizi server di posta elettronica database e tools collegati application server sistemi per la reportistica web sistemi di workflow Strumenti sviluppo software linguaggi di programmazione e compilatori sistemi di project management sistemi per la manutenzione del software Soluzioni per il desktop suite per l office automation browser client di posta prodotti per la grafica software scientifico Soluzioni applicative sistemi di groupware CMS ERP, CRM e software gestionale ECommerce Elearning Gestione documenti sistemi GIS Help Desk e Asset Management
CMS - Definizioni Slide 7 Cos è un CMS CMS = Content Management System (sistema per la gestione dei contenuti Un CMS non è necessariamente strumento per la realizzazione di siti web: può gestire contenuti di tipologie specifiche (gestione documenti = DMS), essere riservato a gruppi ristretti di utenti (intranet), operare in ambiente LAN (tecnologia client-server), ecc Un CMS permette di costruire e aggiornare un sito dinamico, anche molto grande, senza necessità di scrivere una riga di HTML e senza conoscere linguaggi di programmazione lato server o progettare un apposito database Un CMS mantiene rigorosamente separati: il codice software la descrizione del layout (con fogli di stile CSS) i contenuti
CMS - Definizioni Slide 8 Cos è un CMS (2) Un CMS tratta tipologie diverse di informazioni: pagine, cartelle, notizie, eventi, link, file, immagini e photogallery, forum, sondaggi, questionari, schede strutturate, mappe cartografiche, elementi multimediali, ecc Un CMS gestisce con attributi e metodi specifici i diversi contenuti informativi (meglio se prevede meccanismi di caricamento di plugin esterni) Un CMS gestisce in modo nativo utenti, ruoli e permessi Un CMS gestisce in modo workflow per la pubblicazione controllata dei contenuti Un CMS comprende due ambienti distinti per le attività di front-office (consultazione informazioni) e di back-office (aggiornamento informazioni) Un CMS consente di tracciare il versioning dei contenuti
CMS - Definizioni Slide 9 Gli utenti di un CMS Visitatori pubblici: consultazione pagine, richiesta informazioni tramite form, acquisti on line, iscrizione newsletter, consultazione FAQ, accesso a forum e sondaggi, ecc Utenti aree riservate: dipendenti dell Ente / Azienda, partner esterni (agenti / fornitori) Redazione: operatori e responsabili dell aggiornamento dei contenuti, ciascuno con il proprio ruolo (ad esempio l operatore inserisce i testi, il capoufficio li verifica e li convalida, il responsabile del sito approva e pubblica i contenuti) Staff tecnico: operatori informatici addetti alla gestione del sistema (verifica prestazioni e continuità servizio, gestione sicurezza, backup dei dati, aggiornamento versioni software)
CMS - Definizioni Slide 10 CMS = + usabilità crea pagine omogenee e rende il sito un ambiente familiare per l utente rende disponibili strumenti di aiuto alla navigazione ( briciole di pane, mappe, navigazione contestuale) consente una facile ricerca dei contenuti all interno del sito mette a disposizione strumenti di interazione (aiuto, contatto) CMS = + accessibilità (WCAG Web Content Accessibility Guidelines 1.0 del W3C-WAI) genera codice valido utilizzando degli strumenti automatici di pulitura di TAG deprecati (es. FONT) aiuta nella creazione di contenuti accessibili (es. obbliga la definizione dell ALT al momento dell inserimento di una immagine) consente la gestione di lingue diverse e la loro selezione automatica
CMS motivazioni all utilizzo Slide 11 Vantaggi del CMS per il portale internet gestisce in modo guidato l inserimento di notizie, comunicazioni, calendario eventi, sondaggi, form di richiesta informazioni integra un motore di ricerca interno per reperire facilmente le informazioni nel sito consente l aggiornamento dei contenuti da personale non tecnico tramite editor web visuali che permettono di scrivere i testi senza conoscere il codice HTML semplifica l inserimento di contenuti multilingua crea dinamicamente l albero di navigazione e la mappa del sito consente periodiche attività di restyling grafico tramite semplici modifiche dei fogli di stile (CSS) aiuta nell ottemperare ai requisiti di usabilità e accessibilità
CMS motivazioni all utilizzo Slide 12 Vantaggi del CMS per il portale intranet fornisce strumenti di comunicazione quali chat, forum, instant messaging, weblog, wiki, bacheche elettroniche consente di pubblicare procedure e modulistica interna comprende funzioni per la gestione di documenti offre supporto al lavoro di gruppo (calendario condiviso, rubrica) aiuta a gestire la disponibilità di risorse interne (auto, attrezzature, sala riunioni)
CMS come scegliere Slide 13 Come scegliere un CMS Aspetti commerciali costi tipologia delle licenze garanzia referenze Aspetti tecnici presenza di un solido framework di sviluppo stabilità garanzia di evoluzione scalabilità portabilità ed adattabilità disponibilità del codice sorgente e di adeguata documentazione disponibilità di assistenza
CMS come scegliere Slide 14 Framework e application server: una marcia in più Molti CMS sono stati sviluppati partendo da un Framework, un robusto set di strumenti e servizi che ne semplifica la costruzione. I vantaggi derivano da una rapida prototipazione, flessibilità e ottimizzazione dei tempi di sviluppo. Alcuni CMS inoltre si basano su una piattaforma ancora più evoluta del Framework: l Application server che mette a disposizione funzionalità di base quali la gestione degli utenti, la sicurezza e la scalabilità. Ne è un esempio PLONE, basato sull Application Server ZOPE
CMS prodotti disponibili (open e non open) Slide 15
ZOPE Slide 16 Cos è ZOPE un ambiente di sviluppo (IDE) interamente web based un ambiente di esercizio (sistema di produzione) un application server un web server una piattaforma di web publishing un database ad oggetti (ZODB) un ambiente arricchito da centinaia di prodotti aggiuntivi (plugin) un application server open source (licenza ZPL)
ZOPE come nasce Slide 17 Un po di storia Nel 1996 l azienda americana Digital Creation realizza uno strumento di sviluppo per il web chiamato Bobo che distribuisce con licenza open source Nel 1997 realizza Principia, una potente e stabile piattaforma di sviluppo per applicazioni web, basata su Bobo e la distribuisce come prodotto proprietario Nonostante l alta qualità, Principia non riesce a trovare una giusta collocazione nel mercato già saturo degli Application Server Nel 1998 la Digital Creation decide la svolta strategica: riunire Bobo, Principia e i moduli del database in un unico prodotto da distribuire con codice aperto Nasce ZOPE che è l acronimo di Z Object Publishing Environment
ZOPE distribuzione open source Slide 18 A quasi dieci anni di distanza si è rivelata la scelta vincente notevole crescita del numero degli utilizzatori del software con aumento del brand nascita di una estesa comunità di sviluppatori che risulta essere un potente strumento di marketing virale garanzia di continuità di sviluppo del software, di mantenimento e di correzione degli errori a costo zero aumento del know how dell azienda la fornitura di servizi di supporto tecnico e la commercializzazione di applicazioni evolute hanno prodotto un alto ritorno economico
ZOPE la comunità degli sviluppatori Slide 19 La comunità la comunità internazionale degli sviluppatori è attiva sul sito http://www.zope.org la comunità italiana si incontra sul sito http:// www.zope.it migliaia di sviluppatori sparsi in tutto il mondo contribuiscono allo sviluppo del progetto, implementando nuovi prodotti (plugin) e partecipando al test delle nuove versioni rilasciate 300 prodotti (plugin) scaricabili dal sito centinaia di aziende hanno scelto ZOPE come ambiente di sviluppo
ZOPE le caratteristiche Slide 20 Le principali caratteristiche di ZOPE possibilità di utilizzo su piattaforme diverse: Windows, Linux, Solaris organizzazione in gerarchie di oggetti, con elementi nativi di tipo folder, document, image, mailhost, ecc operatività completa attraverso un qualsiasi browser ambiente integrato, interfaccia GUI ed estetica omogenea Linguaggi DHTML e TAL per la costruzione dinamica delle pagine web linguaggio Python per la implementazione della logica, delle classi di base dell'applicazione e dei prodotti esterni
ZOPE le caratteristiche Slide 21 Le principali caratteristiche di ZOPE (2) sofisticata gestione interna delle problematiche di sicurezza database object oriented interno (ZODB) export e backup supporto di XML e DOM connettività con i principali database relazionali (PostgreSQL, MySQL, Oracle, SQLServer, DB2, SAP DB, Sybase, ODBC) web server interno e supporto dei principali webserver disponibili supporto nativo protocollo SSL (Secure Sockets Layer) alte prestazioni in configurazione base e disponibilità del modulo Zope Enterprise Option (ZEO) per siti ad alta intensità di traffico sistemi di autenticazione ZODB, LDAP, DB relazionale, ecc protocolli di rete HTTP(S), FTP, WebDAV, SMTP, IMAP, POP, XML- RPC, SOAP
ZOPE i prodotti Slide 22 Prodotti aggiuntivi (plugin) nell ambiente di sviluppo ZOPE sono disponibili centinaia di moduli chiamati prodotti attivabili per rendere disponibili nuove funzionalità i prodotti sono applicazioni esterne sviluppate esponendo una interfaccia standard che garantisce l integrazione nell ambiente base di ZOPE realizzati da aziende terze o sviluppatori indipendenti e rilasciati in forma open source prodotti di sistema: connettori per database, autenticazione, CMS (PLONE ed altri), ecc prodotti applicativi: wiki, forum, commercio elettronico, helpdesk, project management, ecc
ZOPE Zope 3 Slide 23 ZOPE 3 disponibile dal novembre 2006 come evoluzione di ZOPE 2 (quest ultimo rilasciato in versione stabile dal settembre 1999) miglioramenti tecnologici e nella metodologia di utilizzo approccio completamente a componenti integrazione nativa di componenti nati come plugin di ZOPE 2 (localizzazione, Formulator, ecc) mantiene i linguaggi ZPT e DTML linguaggio di configurazione ZCML migrazione agevolata da five, strato software per disporre in ZOPE 2 di alcune delle migliorie di ZOPE 3
ZOPE approfondimenti tecnici Slide 24 Caratteristiche Object Oriented ZOPE è implementato principalmente in linguaggio Python, da cui eredita il completo orientamento agli oggetti Un oggetto di ZOPE ha in genere uno dei seguenti ruoli: contenuto (pagine, folder, documenti, file, link, ecc) presentazione (template di pagina scritti in DTML o TAL) logica (programmazione in linguaggio python) La 'URL' di una risorsa web è un percorso in una gerarchia di folder, la cui struttura viene mappata automaticamente sulla base dell'id dell'oggetto e del metodo richiesto (ad esempio http://www.cmdbuild.org/download/download/edit) Il protocollo HTTP fornisce un modo per inviare messaggi agli oggetti e ricevere le loro risposte. Tramite il criterio di acquisizione un oggetto può acquisire attributi e comportamenti dai propri contenitori (folder precedenti)
ZOPE approfondimenti tecnici Slide 25 Persistenza Gli oggetti ZOPE sono memorizzati nello ZODB (Zope Object DataBase), un database transazionale ad oggetti incluso nel framework Ogni richiesta web è trattata dal database ad oggetti come una transazione separata, consentendo il rollback in caso di errori E' disponibile una funzione di undo multilivello Il framework rende completamente trasparente allo sviluppatore la gestione della persistenza e delle transazioni Grazie alla presenza di interfacce software ben definite il meccanismo di persistenza può facilmente di interagire con DBMS esterni (relazionali, file system, ecc)
ZOPE approfondimenti tecnici Slide 26 L interfaccia utente Per accedere alla ZMI (Zope Management Interface) è sufficiente tramite un browser aprire il sito con suffisso '/manage', oppure tramite il link Zope Management Interface presente nella pagina di default una volta installato ZOPE Le componenti principali dell I/F utente sono: Pannello di controllo comprendente: pulsanti restart / shutdown motore database management product management debug management
ZOPE approfondimenti tecnici Slide 27 L interfaccia utente (2) User Folder (acl_users) per: aggiunta nuovi utenti modifica utenti assegnazione di ruoli Metodi default: index_html standard_html_header standard_html_footer Oggetti default: error_log session_data_manager Menu drop-down per inserimento oggetti: selezionare un oggetto e premere Add personalizzarlo e aggiungere proprietà utilizzarlo come URL del portale
ZOPE approfondimenti tecnici Slide 28 L interfaccia utente (3) Funzioni base applicabili agli oggetti visualizzati: rinomina taglia copia incolla cancella seleziona tutto import / export TAB Find : ricerca di oggetti nel database ricerca base e avanzata
ZOPE approfondimenti tecnici Slide 29 La gestione della sicurezza Autenticazione: gestito tramite folder speiali User folders (anche mappabili su sistemi esterni) accedendo ad una risorsa protetta il sistema richiede all utente di autenticarsi ogni utente è associato a uno o più ruoli Autorizzazione: basata su ruolo / metodo / permesso (sì / no) permessi differenziabili per ogni metodo di ogni singolo tipo di oggetto
ZOPE approfondimenti tecnici Slide 30 Linguaggi di scripting i linguaggi di scripting utilizzati da Zope sono: TAL (Template Attribute Language) nell ambito della tecnologia ZPT (Zope Page Templates) DTML (Document Template Markup Language), meno utilizzato sono linguaggi server-side, eseguiti quindi dal server ZOPE e i risultati della loro esecuzione sono inviati al browser web TAL e DTML consentono di generare pagine in maniera dinamica, tramite inserimento di particolari 'tags' nel codice HTML, convertiti poi in HTML puro da inviare al browser web Zope Page Template si propone di risolvere le problematiche di integrazione tra sviluppatori e designer adottando tre principi base: permettere l'uso approfondito dei normali strumenti di editing far sì che quello che si vede sia molto simile a quello che si ottiene tenere il codice fuori dai template escluso le strutture logiche
ZOPE approfondimenti tecnici Slide 31 Linguaggi di scripting (2) TAL (Template Attribute Language) non infastidisce gli editor wysiwyg, che i designer potranno utilizzare senza troppi problemi anche parallelamente al lavoro degli sviluppatori gli editor wysiwyg non infastidiscono i designer, mostrando l'html valido degli ZPT nella forma che loro si aspettano limite: non si possono creare sottoprocedure e classi o implementare algoritmi complessi (ma la logica deve stare fuori dall'interfaccia ) Esempio ZPT / TAL: <title tal:content= here/title >titolo della pagina</title> Istruzioni TAL più comuni: tal:define, tal:attributes, tal:replace, tal:content, tal:repeat, tal:condition Esempio DTML: <dtml-in oggetto_sequenza> <!-- comandi sui valori della sequenza --> </dtml-in>
PLONE Slide 32 Cos è PLONE il più conosciuto fra tutti i prodotti ZOPE, di cui eredita l ambiente di base un CMS potente e completo per lo sviluppo di portali internet evoluti una ottima soluzione per lo sviluppo di portali intranet e come strumento di groupware per collaborazioni remote un ambiente arricchito da centinaia di prodotti aggiuntivi (plugin) specifici del CMS sviluppati da oltre un centinaio di sviluppatori accreditati uno dei CMS più apprezzati ed utilizzati (600 portali recensiti in http://www.plone.net in 35 nazioni) una soluzione open source (licenza GPL)
PLONE le caratteristiche Slide 33 Le principali caratteristiche di PLONE setup immediato in ambienti Windows, Linux, Mac OS X, Solaris look elegante e pensato per l usabilità disponibile in oltre 35 lingue, incluse arabo ed ebraico editor web con funzioni di formattazione, inserimento immagini e link ridimensionamento automatico delle immagini caricate ricerca full text istantanea, anche su file OO, Word, PDF potente motore di workflow personalizzabile velocità e scalabilità (meccanismi di cache e supporto clustering) accessibilità (pagine compatibili con lo standard US Section 508, e con il rating W3C AA)
PLONE le caratteristiche Slide 34 Le principali caratteristiche di PLONE (2) visibilità elevata in rete (100% XHTML e CSS validi per la gioia dei browser e dei motori di ricerca) interoperabilità (LDAP, SQL, SOAP, WebDAV, sistemi autenticazione) Syndication : PLONE produce automaticamente feed RSS estensibile tramite centinaia di prodotti aggiuntivi a disposizione ed in particolare con Archetypes (vedi nel seguito) supporto in rete, ampia documentazione on-line e cartacea protetto e maturo: PLONE è disponibile da oltre cinque anni, la Plone Foundation (fondazione no-profit gestita dalla comunità) ne detiene e protegge la proprietà intellettuale ed il marchio vincitore di numerosi premi internazionali
PLONE i prodotti Slide 35 Prodotti aggiuntivi (plugin) anche per PLONE sono disponibili centinaia di moduli chiamati prodotti attivabili per rendere disponibili nuove funzionalità specifiche del CMS prodotti di sistema: skin visuali, localizzazione, versioning, supporti di memorizzazione, workflow, archetypes, ecc prodotti applicativi: forum, blog, commercio elettronico, sondaggi, multimedia, photogallery, elearning, calendario, gestione eventi, cartografia GIS, ecc
PLONE approfondimenti tecnici Slide 36 L attivazione di un nuovo portale PLONE dalla ZMI
PLONE approfondimenti tecnici Slide 37 La pagina iniziale di default in un portale PLONE Logo Barra di ricerca Portal tabs breadcrumbs Stato e preferenze Main content Left_slots Right_slots Footer
PLONE approfondimenti tecnici Slide 38 Accesso al back-office
PLONE approfondimenti tecnici Slide 39 Workflow Ogni oggetto può assumere diversi stati durante il suo ciclo di vita Lo stato di un oggetto determina se sia accessibile o meno dai vari ruoli utente definiti in PLONE Il Workflow di PLONE include 4 stati di default visibile in revisione pubblicato privato
PLONE approfondimenti tecnici Slide 40 Gli stili quello che vediamo appena creato un nuovo sito Plone è lo stile di default, ma PLONE permette una elevata configurazione del layout per andare ad agire sull aspetto il nostro punto di partenza si trova in: portal_skins/plone_styles i tre file principali sono: base_properties plone.css plonecustom.css ma nessuno dei tre è modificabile ogni metodo, definizione o file di sistema può essere modificato dopo essere stato salvato in un folder particolare: portal_skins/custom ogni file (oggetto) presente in custom ha una priorità maggiore del file originale da cui deriva in questo modo possiamo personalizzare i nostri file/metodi senza andare a modificare l'originale
PLONE approfondimenti tecnici Slide 41 Gli stili (2) sostituire il logo in alto a destra di PLONE è ad esempio una attività estremamente semplice se non abbiamo modificato il nome del logo come definito nel file base_properties, ci basta andare in custom ed inserire, una nuova immagine, con il nostro nuovo logo, che chiameremo logo.jpg qualora invece avessimo già customizzato il file base_properties, modificandogli il logoname, dobbiamo assegnare all'immagine che carichiamo l'id uguale al valore di logoname
PLONE approfondimenti tecnici Slide 42 Tipi di oggetti nel folder portal_types sono contenute le definizioni per tutti gli oggetti al momento disponibili in PLONE è possibile creare un nuovo tipo semplicemente copiandone uno già presente (cambiandogli ovviamente il nome) e modificando poi le sue proprietà in funzione di ciò che vogliamo fargli fare altri tipi di oggetti si aggiungono a quelli base qualora si installino prodotti aggiuntivi
PLONE approfondimenti tecnici Slide 43 Tipi di oggetti (2) Cliccando su un tipo, si accede alla lista delle proprietà Fra le proprietà più interessanti: Icon (icona nella ZMI) Initial view name (azione di default per la visualizzazione iniziale dell oggetto) Implicitly addable (flag tipo aggiungibile al portale) Filter content type (flag oggetto folderish ) Allowed content types (tipologie di oggetti inseribili al suo interno)
PLONE approfondimenti tecnici Slide 44 Tipi di oggetti (3) cliccando sul tab actions entriamo della gestione delle azioni, intese come metodi di visualizzazione definiti per il particolare tipo di oggetto ogni azione può venire modificata agendo sui rispettivi campi, ma si possono anche aggiungere nuove azioni personalizzate
PLONE approfondimenti tecnici Slide 45 Portal tabs La definizione delle azioni generali definite sul nostro portale si trovano nel folder portal_actions qui possiamo modificare le azioni definite per le portal tabs ed aggiungerne di nuove tutte le entry nel cui campo Category è presente il valore portal_tabs corrispondono ai TAB generali del nostro portale volendo ad esempio far sì che il TAB notizie sia visibile solo ad utenti autenticati, basta inserire nel campo Condition il valore python:member
PLONE approfondimenti tecnici Slide 46 Slot per ogni portale può essere definita una qualsiasi combinazione e disposizione degli slots Sono presenti due proprietà 'speciali' assegnabili agli oggetti: left_slots e right_slots sono proprietà speciali in quanto ereditate in visualizzazione essendo gli slot proprietà (attributi) assegnabili ad un oggetto, possiamo vederli e/o modificarli cliccando sul TAB Properties presente nella ZMI della root del nostro portale PLONE
PLONE approfondimenti tecnici Slide 47 La gestione utenti in PLONE utilizza Folder Member Folder ACL User Tool portal_memberdata Tool portal_membership Ogni utente iscritto presenta in Members un folder con id uguale al suo username, che costituisce la sua home acl_users è gestito dal prodotto PlonePAS che consente di assegnare ruoli (predefiniti da ZMI) e configurare gruppi di utenti
PLONE approfondimenti tecnici Slide 48 Portal catalog Gestisce le indicizzazioni degli oggetti nel portale Agendo sul TAB della ZMI possiamo accedere a: catalog: lista degli oggetti indicizzati (è possibile effettuare un refresh, o cliccando sull'oggetto, vedere le informazioni collegate) indexes: indici utilizzati per la catalogazione (è possibile effettuare il refresh e aggiungere nuovi indici per la catalogazione) metadata: scelta degli attributi da indicizzare (è possibile aggiungere nuovi metadata da catalogare) advanced: consente di effettuare un Update catalog per rimuovere oggetti invalidi
PLONE approfondimenti tecnici Slide 49 Gli Archetypes Per creare nuovi tipi di oggetti in PLONE è possibile: scrivere da zero l'intero codice del nuovo prodotto (richiede una buona conoscenza del sistema) scrivere il codice partendo da scheletri predefiniti di prodotti vuoti (richiede una conoscenza leggermente inferiore) utilizzare tools di sviluppo che facilitano l'intera operazione e svolgono una parte del lavoro per noi PLONE ci fornisce uno strumento per sviluppare secondo il terzo punto Lo strumento si chiama Archetypes, che nel suo utilizzo base richiede: la definizione della classe relativa all'oggetto (tipo) che vogliamo creare la definizione degli attributi (proprietà) la definizione delle funzioni della classe (metodi)
PLONE approfondimenti tecnici Slide 50 Gli Archetypes (2) Una volta descritto l oggetto basta aggiungere il nuovo Tipo in Plone Archetypes utilizzerà le informazioni definite per generare automaticamente le pagine di visualizzazione (view) e le form (edit) per la modifica dei contenuti Approccio UML (Unified Modelling Language) descrizione dell oggetto (classi, attributi e metodi) in un editor UML utilizzo dell utility ArchGenXMP.py per la traduzione del file XMI o XSD (XML Schema) nel formato descrittivo previsto da Archetypes importazione del prodotto in Plone tramite pannello di controllo eventuale customizzazione delle pagine TAL di presentazione e di gestione del nuovo Tipo Editor UML open source: ARGOUML (http://argouml.tigris.org) Non è particolarmente sofisticato, ma è sufficiente per il nostro scopo
PLONE approfondimenti tecnici Slide 51 Gli Archetypes (3) Progetto UML File XMI Prodotto Plone Esportazione in formato XMI parsing del file XMI per generare il prodotto Plone Aggiunta e modifica delle pagine di presentazione Copia del prodotto nella directory Product di Zope
PLONE approfondimenti tecnici Slide 52 Strumenti di supporto allo sviluppo Unit test: ZopeTestCase, PloneTestCase Functional test e System test: PloneSelenium verifiche attraversamento codice: CallProfiler bug tracking: PloneCollectorNG Accesso SVN (SubVersion): PloneSVNAccess
PLONE alcuni esempi di siti Slide 53 Comune di Pordenone Comune di Cividale Comune di Tavagnacco ERSA FVG Ippovia Valle Cormor Portale turistico Prov PD
ZOPE e PLONE link utili Slide 54 Alcuni link utili portale della comunità ZOPE: http://www.zope.org sito commerciale ZOPE: http://www.zope.com portale del CMS PLONE: http://www.plone.org portale del network PLONE: http://www.plone.net portale della comunità italiana: http://www.zope.it Riferimenti non ufficiali in italiano (ottenuti da ricerche in rete): ZOPE Book: http://www.linuxtrent.it/members/lele/zopebookit.pdf/file_ view PLONE Book: http://www.unife.it/help/allegati/ebook-ita-plone-book-italiano-2005.pdf slide su Phyton: http://www.sal.disco.unimib.it/corso_python.pdf
Seminario Università degli Studi di Udine, Polo Scientifico dei Rizzi Martedì 3 luglio 2007, ore 17,00 CMS Open Source: il caso Plone-Zope Domande? Fabio Bottega (f.bottega@tecnoteca.it)