1 / 16

Introduzione a InstantObjects

Per chi conosce altri OPF Per chi non conosce altri OPF A cura di Nando Dessena nando.dessena@ethea.it. Introduzione a InstantObjects. Sommario. 1: Mappatura object/relational e OPF 2: InstantObjects come OPF 3: Usare InstantObjects 4: Partecipare allo sviluppo

adina
Download Presentation

Introduzione a InstantObjects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Per chi conosce altri OPF Per chi non conosce altri OPF A cura di Nando Dessena nando.dessena@ethea.it Introduzione a InstantObjects

  2. Sommario 1: Mappatura object/relational e OPF 2: InstantObjects come OPF 3: Usare InstantObjects 4: Partecipare allo sviluppo 5: InstantObjects Q&A

  3. 1: Mappatura object/relational e OPF (1) 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 Un simile meccanismo di mappatura è detto OPF (Object Persistence Framework)

  4. 1: Mappatura object/relational e OPF (2) Cosa è un OPF Un layer software che consente la persistenza degli oggetti del modello su vari mezzi di salvataggio (database, file di testo, file XML...). Che scopo ha un OPF Disaccoppia le classi del modello dal modo in cui verranno salvate le istanze, permettendo di variare quest'ultimo senza toccare le prime.

  5. 1: Mappatura object/relational e OPF (3) OPF: Vantaggi... Indipendenza dal motore e dalla struttura del DB Possibilità di sfruttare la metodologia OO Significativa riduzione delle ridondanze nel codice ...e svantaggi Curva di apprendimento più ripida e necessità di maggiori skill nei programmatori Minor sfruttamento delle caratteristiche dei server Programmazione lato server, locking, transazioni... Prestazioni in taluni casi inferiori

  6. 1: Mappatura object/relational e OPF (4) Creare un OPF personalizzato Concettualmente non è difficile OPF general-purpose per Delphi Prima Bold (BoldSoft), poi ECO (Borland) Più di un OPF; classe Enterprise; disponibile solo in .NET InstantObjects Open source; curva d'apprendimento morbida TechInsite OPF (tiOPF) Open source; curva d'apprendimento ripida; progetto molto attivo Altri (Obiwan, DePO) Open source, mai decollati

  7. 2: InstantObjects come OPF (1) I pregi principali di InstantObjects... Molto facile e molto RAD Buona integrazione nell'IDE di Delphi Molto flessibile a livello di programmazione BOM Supporto per i controlli data-aware Tramite TInstantSelector e TInstantExposer Una solida base di utenti/sviluppatori ...compresi noi di Ethea!

  8. 2: InstantObjects come OPF (2) ...E i difetti attuali: Quelli comuni a molti progetti open source Documentazione talvolta incompleta Un pizzico di organizzazione in più non guasterebbe Può porre limitazioni sulla struttura del database Struttura delle chiavi, riferimenti in campi Memo Problemi risolti o attenuati nella versione 2 e successive. Prestazioni non sempre all'altezza Ma migliorate nella versione 2 grazie a nuovi broker e nuove ottimizzazioni

  9. 3: Usare InstantObjects (1) Un esempio con InstantObjects Intro Definire il modello Il Model Explorer Attributi semplici, riferimenti e container Generare il codice Uno sguardo al codice generato Il file MDR Modificando il codice il modello è aggiornato Introdurre semplici business rules

  10. 3: Usare InstantObjects (2) Creare il database Panoramica sui broker Uno sguardo alla struttura Una semplice interfaccia utente Lo strato di presentazione data-aware Esempi di tecniche comuni Creare o modificare un oggetto Fare una copia di un oggetto Ricerche e filtri tramite i selector

  11. 3: Usare InstantObjects (3) Caratteristiche avanzate Definire e applicare regole personalizzate Property setter, BeforeStore Gli attributi BeforeCreateAttributes Input/Output in XML InstantReadObject, InstantWriteObject TInstantXMLProducer, TInstantXMLProcessor La unit InstantUtils

  12. 3: Usare InstantObjects (4): Il Persistence Layer 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 tramite IQL TInstantConnector e i Broker Un broker isola le specificità di un back-end e/o di una libreria di accesso ai dati

  13. 3: Usare InstantObjects (5): Il Presentation Layer TInstantExposer Un dataset con i campi mappati sugli attributi di un oggetto (ObjectClassName e FieldOptions) Può mostrare un solo record/oggetto (amObject) o un elenco di oggetti (amContent) Per usare i componenti data-aware Supporta lettura e scrittura Permette il filtraggio lato client (“a valle”) TInstantSelector Un InstantExposer con una TInstantQuery interna Per leggere dal DB elenchi di oggetti I DataSetField per le strutture master/detail

  14. 3: Usare InstantObjects (6) In sintesi... Un OPF come IO è indispensabile: Per creare applicazioni DB OO senza DB OO Per supportare database di vari tipi nella stessa applicazione È utile: Per tutte le applicazioni database È rischioso: Per applicazioni multi-utente ad elevato tasso di concorrenza Usare un OPF richiede maggior preparazione Anche se IO è tra i più “facili”

  15. 4: Sviluppo di InstantObjects L'organizzazione del progetto e il ruolo diEthea e Delphi&Dintorni Le risorse a disposizione del progetto I newsgroup su D&D Roadmap Rilascio versione 2.0 Ristrutturazione e miglioramento documentazione Sia per utenti che per sviluppatori Reclutamento e stabilizzazione del team di sviluppo Lavoro sulle nuove funzionalità Come partecipare allo sviluppo di InstantObjects

  16. 5: InstantObjects Q&A www.instantobjects.org www.sourceforge.net/projects/instantobjects/ news://news.delphiedintorni.it www.ethea.it info@ethea.it Domande?

More Related