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.