Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoOrsina Ippolito Modificato 10 anni fa
1
© 2004 CiBiSoft.com – Carlo Barazzetta Delphi Day 2004 Piacenza 9 giugno 2004 InstantObjects Un Object Persistence Framework Open Source per Delphi 5,6,7 pro e Kylix 3 presentato da Carlo Barazzetta www.cibisoft.com
2
© 2004 CiBiSoft.com – Carlo Barazzetta La mappatura object/relational Per ridurre le distanze tra il modello OO e il modello relazionale Per memorizzare oggetti in strutture relazionali (tabelle/record) Per sviluppare applicazioni OO senza database ad oggetti Questo meccanismo di mappatura è contenuto in un OPF (Object Persistence Framework) Rif: http://www.ambysoft.com/persistenceLayer.html
3
© 2004 CiBiSoft.com – Carlo Barazzetta Cosa è un O.P.F. Un layer software che consente la persistenza degli oggetti del modello su vari mezzi di storage (database SQL o file oriented, file XML...). Il sistema di mappatuta O/R è una parte dell'OPF. Che scopo ha un OPF Disaccoppia le classi del modello dal modo in cui verranno salvate le istanze rendendo il meccanismo di persistenza trasparente al programmatore
4
© 2004 CiBiSoft.com – Carlo Barazzetta Vantaggi di un OPF Indipendenza dal motore e dalla struttura del database Il codice non vi fa mai riferimento esplicitamente Possibilità di sfruttare la metodologia OO In particolare l'incapsulamento e l'ereditarietà Significativa riduzione delle ridondanze nel codice Rispetto ad un approccio tradizionale basato su DataSet Maggior riutilizzo del codice
5
© 2004 CiBiSoft.com – Carlo Barazzetta Svantaggi di un OPF Curva di apprendimento più ripida Specie per chi ha esperienza con l'approccio tradizionale Delphi di accesso ai dati. Necessità di maggiori skill per i programmatori Minor sfruttamento delle caratteristiche dei server database Programmazione lato server, locking, transazioni... Prestazioni generalmente inferiori Rispetto ad applicazioni C/S o 3 tier ben architettate
6
© 2004 CiBiSoft.com – Carlo Barazzetta InstantObjects: Storia Background Una (sfortunata) storia come prodotto commerciale Creato in Danimarca da Seleqt Difficoltà ad avere il support adeguato Progetto Open-Source Rilasciato sotto licenza MPL L'interesse è cresciuto grazie alla disponibilità dei sorgenti. Una solida base di utenti/sviluppatori...compresi noi di Delphi & Dintorni!
7
© 2004 CiBiSoft.com – Carlo Barazzetta Una classe semplicissima (TPhone) Definiamo la classe e le sue proprietà Osserviamo il codice sorgente prodotto (la modifica è bidirezionale) Utilizziamo un broker per creare il database Osserviamo la struttura creata Creiamo una piccola interfaccia utente Aggiungere un oggetto Scaricare gli oggetti dal db Un semplice esempio
8
© 2004 CiBiSoft.com – Carlo Barazzetta IO: Supporto a design-time Il Model Explorer Class editor Class treeview Database builder Il generatore di codice Struttura delle classi in InstantObjects Esempio di codice generato (occhio ai commenti!) Il file mdr Contiene la mappatura (i commenti) Viene generato a partire dai sorgenti e è incluso nell'exe
9
© 2004 CiBiSoft.com – Carlo Barazzetta Persistence Layer: classi TInstantObject Classe base per tutti gli oggetti Tip: crearne sempre una propria TInstantAttribute Base per tutti gli attributi oggetti di classi derivate da TInstantAttribute, ed esposti come proprietà da TinstantObject TinstantQuery Accesso ai dati in simil-sql TInstantConnector e i Brokers Un broker isola le specificità di un back-end e/o di una libreria di accesso ai dati
10
© 2004 CiBiSoft.com – Carlo Barazzetta Presentation Layer: classi TInstantExposer Un dataset con i campi mappati sugli attributi di un oggetto (ObjectClassName e FieldOptions) Può mostrare un solo record/oggetto o un elenco di oggetti (amObject, amContent) Per usare i componenti data-aware Supporta lettura e scrittura Permette il filtraggio lato client (a valle) TInstantSelector Un Exposer con un TInstantQuery interno Per leggere dal DB elenchi di oggetti filtrati Uso di DataSetFields per Master-Details
11
© 2004 CiBiSoft.com – Carlo Barazzetta Intro Demo: Un Modello più complesso: uso di attributi semplici, Part, Parts, Reference, References Una interfaccia utente più evoluta: Ereditarietà visuale Uso di Selector ed Exposer (amObject e amContent) ComboBox (uso dei field object reference) Controlli di validità: Set(Property), BeforeStore... isValidObject Presentation Layer: esempio
12
© 2004 CiBiSoft.com – Carlo Barazzetta Esempio: Demo Primer Esempio da studiare bene e provare a modificare prima di iniziare con nuovi progetti. Modello semplice ma completo Ereditarietà e incapsulamento Possibilità di testare i vari brokers Possibilità di provare il linguaggio simil-sql Generatore Random di dati Esportazione in XML del modello dati Versione compatibile con Kylix 3
13
© 2004 CiBiSoft.com – Carlo Barazzetta Esempio: Sport Club Manager Generazione alternativa sorgenti I.O. e struttura DB. Il problema delle uses circolari: Classi di base e classi applicative Mappatura Viste logiche (solo per broker SQL) Soluzioni efficaci a problemi complessi: Gestione multilingua sui dati
14
© 2004 CiBiSoft.com – Carlo Barazzetta Perché Scegliere InstantObjects? Punti di forza Molto RAD rispetto alla concorrenza Molto flessibile a livello di programmazione Supporto per i controlli data-aware Disponibilità di diversi Brokers di accesso ai dati Disponibile per Delphi 5,6,7 Pro e Kylix 3 E' completo e funziona!
15
© 2004 CiBiSoft.com – Carlo Barazzetta Il problema del Porting Struttura del DB rigida Impossibile fare un porting parziale Il problema dell'Id univoco contro le chiavi multiple. Se si è lavorato bene la parte di presentation e le stampe si possono salvare. Le regole di business vanno completamente riscritte (ma si semplificano!)
16
© 2004 CiBiSoft.com – Carlo Barazzetta InstantObjects: disponibilità Sito ufficiale: http://www.instantobjects.org http://sourceforge.net/projects/instantobjects/ Sorgenti, demos, help CVS Newsgroup italiano e internazionale ospitato da Delphi & Dintorni: news://news.delphiedintorni.it
17
© 2004 CiBiSoft.com – Carlo Barazzetta Conclusioni Un OPF funzionante gratis per Delphi Professional e Kylix! Addio record, è stato bello finché è durato! Un bel passo avanti... per i più coraggiosi!
18
© 2004 CiBiSoft.com – Carlo Barazzetta La situazione del progetto Open Source Carlo Wolter: Project Manager Rilasciata la versione compatibile con Kylix 3 (compreso il demo Primer) Lavori in corso: miglioramento delle prestazioni Supporto agli attributi Currency Nuovi Brokers (IBO, XML...) Analisi external Parts/References Feature Requests
19
© 2004 CiBiSoft.com – Carlo Barazzetta Feature requests
20
© 2004 CiBiSoft.com – Carlo Barazzetta Developer list
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.