Luna ORM - Introduzione e concetti basilari

Introduzione a Luna ORM

Luna è un ORM open source (licenza Apache 2.0)  e liberamente scaricabile che permette di facilitare e standardizzare la scrittura delle classi che accedono al Database. 

Il codice viene generato in Vb.Net e può essere utilizzato indistintamente in progetti Desktop o Web. Il codice di Luna ORM può anche essere utilizzato in progetti C#.

Il progetto nasce dall'esigenza di scrivere codice di alta qualità in maniera ottimale,  e meno noiosa possibile. 

Non ci sono DLL da integrare, tutto quello che viene generato è "semplice" codice che può essere debuggato, modificato, esteso ecc ecc...

Il target ideale per Luna ORM sono soluzioni piccole o medie, non ci sono limitazioni di alcun tipo e sono scaricabili anche i sorgenti del progetto Luna ORM in se.

Differentemente dai tanti ORM in circolazione Luna non prevede una curva di apprendimento o particolari paradigmi da imparare. 

Quindi come funziona? 

Database

Tutto parte da una corretta analisi e dalla creazione del database relazionale. Questo prevede una corretta capacità di analizzare e implementare una struttura di tabelle, relazioni, viste ecc ecc che non è oggetto di questo articolo e che si acquisisce con gli anni. 

Al momento i database supportati sono MS Access (*.mdb, *.accdb), MS SQL Server, Oracle, MySql/Maria DB, e qualsiasi altro database che supporta l'accesso OLEDB utilizzando MS Access come strato intermedio. E' comunque possibile come vedremo in seguito supportare virtualmente qualsiasi tipo di database. 

Structure

Luna ORM ha una sua struttura proprietaria astratta di tabelle, campi, viste ecc.. con cui mappa una sorgente database in memoria in un suo formato standard.

Interpreter

Interprete è un processo che si appoggia su routine specifiche per ogni tipo di database, e si occupa di connettersi alla sorgente dati specificata, leggere tutta la struttura di campi tabelle e relazioni, e creare in memoria una struttura speculare utilizzando gli oggetti proprietari Luna. 

Converter

Dopo che la struttura del database sorgente è stata fisicamente disconnessa dalla struttura mappata in memoria, il convertitore crea tutto il codice che serve per interfacciarsi con una qualsiasi altra sorgente dati che ricalca la struttura analizzata. 

Interfaccia grafica

Il tutto viene gestito da una semplice interfaccia grafica composta da 3 maschere, che guida l'utente attraverso un wizard nella creazione del codice finale. 

Luna ORM crea una sua struttura di file che nasce per essere integrata direttamente in visual studio, permette di riaprire una struttura già salvata, si occupa automaticamente di trovare le differenze se presenti e aggiornare il codice necessario. 

Tutto il codice generato è gia diviso in maniera da permettere al programmatore di estendere le classi generate con metodi custom, dando comunque la possibilità di sovrascrivere le classi che si generano in caso di modifiche alla sorgente originale senza perdere il codice aggiunto. 

Ma tutto questo lo potremo analizzare in articoli specifici e successivi.

Download

In ogni articolo troverete in calce il link per scaricare liberamente il progetto che trovate su CodePlex all'indirizzo:

https://lunaorm.codeplex.com/

Per qualsiasi informazione, suggerimento o critica potete contattarmi qui o alla pagina facebook del progetto Luna ORM 

https://www.facebook.com/LunaORM/

Commenti

Lascia una Risposta
captcha