InstantObjects (Object Persistent Framework)

InstantObjects: Object Persistence Framework Open Source

InstantObjects è una suite di componenti Open Source per Delphi per lo sviluppo ad oggetti (business objects) e persistenza su database, prescelta da Ethea per la progettazione e realizzazione di tutte le applicazioni.

Url del progetto: https://github.com/EtheaDev/InstantObjects

Con InstantObjects la programmazione ad oggetti è spinta ai massimi livelli, consentendo una netta separazione della logica di business con le parti di presentation (interfaccia utente) e storage (persistenza su database).

Ethea, partecipa attivamente allo sviluppo, all’aggiornamento e alla gestione del progetto OpenSource InstantObjects.

All’interno del progetto c’è una guida molto dettagliata delle funzionalità: https://github.com/EtheaDev/InstantObjects/wiki

Con InstantObjects è possibile accedere a diversi motori sia SQL che file-oriented, quali: Firebird, Microsoft SQL Server, Oracle, InterBase, Informix, Advantage Database Server, ElevateSoft DBISAM, FlashFiler, MySQL, PostgreSQL… attraverso diverse tecnologie di accesso ai dati come ADO, DbExpress o FireDAC.

Utilizzando la demo ISFPrimerCross, è possibile vedere la libreria in azione con diversi motori di database e misurarne le performances:

Ethea ha integrato ed evoluto le potenzialità di InstantObjects all’interno del suo ambiente InstantSolutions Framework che è in grado di generare automaticamente il codice delle classi InstantObjects.

Infatti, con il rilascio della versione 2.9 è stato aggiunto anche il supporto per essere utilizzata per sviluppare server REST, sfruttando le librerie MARS Curiosity (di Andrea Magni) e Delphi-Neon (di Paolo Rossi).

Grazie allo sviluppo di un serializzatore/deserializzatore custom di Oggetti InstantObject per la libreria Delphi-Neon, all’accoppiata MessageBodyReader/MessageBodyWriter per MARS ed il supporto ai connector InstantObject/FireDAC per sfruttare il pooling delle connessioni è ora possibile pubblicare la  logica di business scritta con InstantObjects anche come Web-Services.

Queste nuove features sono già disponibili direttamente in InstantSolutions 7.3, il framework di Ethea nato per sviluppare applicazioni Windows Client/Server che ora fornisce già tutto il supporto anche per lo sviluppo di server REST tramite MARS.

La particolarità di InstantObject di definire per ciascun oggetto un attributo ClassName e un attributo Id sempre presenti in qualsiasi oggetto, oltre all’utilizzo di attributi speciali come gli InstantReference (che permettono il lazy-loading dei dati di dettaglio di un oggetto), si sposa perfettamente con la possibilità di pubblicare servizi REST che restituiscono solo i dati essenziali di uno o più oggetti, costituiti dai dati nativi, dai riferimenti (class/Id) verso altri oggetti e dagli InstantContainer (array di riferimenti).

Esponendo tramite MARS alcune risorse generiche è possibile accedere a tutti i dati dell’intero database.