Introduzione a InstantObjects

16
© 2005 Ethea Introduzione a InstantObjects Per chi conosce altri OPF Per chi non conosce altri OPF A cura di Nando Dessena [email protected]

description

Per chi conosce altri OPF Per chi non conosce altri OPF A cura di Nando Dessena [email protected]. Introduzione a InstantObjects. Sommario. 1: Mappatura object/relational e OPF 2: InstantObjects come OPF 3: Usare InstantObjects 4: Partecipare allo sviluppo - PowerPoint PPT Presentation

Transcript of Introduzione a InstantObjects

Page 1: Introduzione a InstantObjects

© 2005 Ethea

Introduzione a InstantObjects

Per chi conosce altri OPFPer chi non conosce altri OPF

A cura di Nando [email protected]

Page 2: Introduzione a InstantObjects

© 2005 Ethea

Sommario

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

Page 3: Introduzione a InstantObjects

© 2005 Ethea

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)

Page 4: Introduzione a InstantObjects

© 2005 Ethea

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.

Page 5: Introduzione a InstantObjects

© 2005 Ethea

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

Page 6: Introduzione a InstantObjects

© 2005 Ethea

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

Page 7: Introduzione a InstantObjects

© 2005 Ethea

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!

Page 8: Introduzione a InstantObjects

© 2005 Ethea

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

Page 9: Introduzione a InstantObjects

© 2005 Ethea

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

Page 10: Introduzione a InstantObjects

© 2005 Ethea

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

Page 11: Introduzione a InstantObjects

© 2005 Ethea

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

Page 12: Introduzione a InstantObjects

© 2005 Ethea

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

Page 13: Introduzione a InstantObjects

© 2005 Ethea

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

Page 14: Introduzione a InstantObjects

© 2005 Ethea

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”

Page 15: Introduzione a InstantObjects

© 2005 Ethea

4: Sviluppo di InstantObjects L'organizzazione del progetto e il ruolo di

Ethea 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

Page 16: Introduzione a InstantObjects

© 2005 Ethea

5: InstantObjects Q&A

www.instantobjects.org

www.sourceforge.net/projects/instantobjects/

news://news.delphiedintorni.it

www.ethea.it

[email protected]

Domande?