Luna ORM - Dal caricamento di una sorgente dati al codice

Luna ORM crea tutto il codice necessario per utilizzare un Database con .Net senza bisogno di scrivere una riga di codice. In questo articolo vedremo il processo che va dal caricamento di una sorgente dati al codice generato. 

Come già detto Luna genera solo codice Vb.Net che può comunque essere utilizzato anche in progetti C# (vedremo successivamente come).

Caricare una sorgente dati

Ora veniamo agli aspetti pratici. Per semplicità in tutti i nostri esempi utilizzeremo un Database Access, ma il procedimento è lo stesso con qualsiasi tipo di database.

Il nostro database di esempio contiene le tabelle Customers, Groups e Phones che identificano i clienti, divisi in gruppi logici e i loro contatti telefonici.

L'interfaccia permette di selezionare come fonte dati un Luna Data Schema (che vedremo in seguito), Microsoft Access (*.mdb, * .accdb), Ms SQL Server (Standard, Express, ecc..), MySql/Maria DB. Al momento gli interpreti per database SQL Server Compact e Oracle non sono ancora ultimati (in realtà quello per Oracle è in versione avanzatissima ma non ancora definitiva).

L'opzione 'Load View' se abilitata permette di caricare anche le viste se presenti.

Dopo aver avviato Luna e selezionato il file Access clicchiamo sul tasto "Load DB".

Selezionare le tabelle da generare

Nel secondo step Luna ORM mostra tutte le tabelle (e le viste in caso sia stata selezionata l'opzione) che ha trovato all'interno della sorgente dati selezionata.

In questa fase si potra: 

  • selezionare una o più tabelle per cui si vuole generare il codice;
  • cambiare il nome della classe generata facendo doppio click sul relativo Node nell'albero alle voci Generated Class e Generated DAO Class
  • cambiare il nome dei campi facendo doppio click sul singolo campo che si vuole rinominare nella sezione Fields;

Cosi ad esempio si potra rinominare la classe per la tabella Customers in Customer, lasciando il nome della DAO Class CustomersDAO.

Non c'è alcun vincolo sui nomi delle classi generate, la possibilità di rinominare ogni singolo oggetto consente di supportare la Pluralization.

Più avanti capiremo la struttura del codice generato da Luna e cosi sarà più semplice comprendere la suddivisione che viene fatta al momento. 

Opzioni

Nella sezione Option si potra selezionare il linguaggio di Output del codice generato che al momento è solo Vb.net. In realtà Luna utilizza dei template T4 quindi in passato veniva generato anche codice C# ma Luna ORM è un progetto in continua evoluzione e quindi aggiornare sempre tutti i template era un lavoro doppio che non riuscivo a fare in maniera parallela e quindi per il momento Vb.net è l'unica scelta. 

E' ovviamente comunque possibile utilizzare soluzioni miste all'interno di una solution .Net quindi non ci sono vincoli all'utilizzo di Vb.net anche nel progetto principale. 

La seconda opzione disponibile "Luna Project File: Overwrite existing file on save", che è selezionata di default, ha una grande utilità. Luna ORM ha un suo file proprietario che altro non è che un file XML che contiene la struttura del datasource analizzato e scollegato dalla sorgente originale. La prima volta che caricate una sorgente dati Luna ORM, al momento della generazione del codice, genererà anche un file .LDS (Luna data schema) dove salverà tutti i dati della sorgente originale e le eventuali modifiche fatte ai nomi assegnati alle classi e ai campi. 

Il consiglio che vi do è di inserire questo file all'interno del vostro progetto DAL (vedremo in seguito come e in che modo) e di assegnare la riapertura automatica da dentro Visual Studio dei file LDS con Luna ORM. Il motivo è semplice, Luna genera file separati per la definizione dei campi, le select ecc ecc e le classi dove potrete scrivere i vostri metodi o le vostre proprietà logiche. 

Nella vita di un progetto capita ovviamente di effettuare modifiche a tabelle, aggiungendo, rinominando o eliminando campi. In questo caso l'unica cosa che dovrete fare sarà fare doppio click sul vostro file LDS, Luna si avvierà, confronterà la struttura attuale della sorgente dati con quella che era stata utilizzata per generare precedentemente il codice, e generarà solamente i file da aggiornare nel vostro progetto per avere a disposizione il nuovo tracciato delle tabelle modificate. L'operazione di aggiunta di un campo si risolve in pochi secondi e un drag&drop come vedremo in seguito quando parleremo dell'integrazione con Visual Studio. 

L'ultima opzione disponibile "Luna Project File: Regenerate all tables" serve a dire al motore di Luna che anche se trova modifiche solo in alcune tabelle, si vogliono comunque rigenerare tutti i file di tutte le tabelle selezionate.

Una volta selezionate le proprie preferenze cliccare sul pulsante Create Code

La generazione del codice

Una volta scelto cosa e come generare Luna ORM presenterà una schermata riepilogativa dove c'e' un anteprima di tutto il codice che verrà generato. Nella tab SQL Command inoltre saranno disponibili i comandi T-Sql per ricreare la stessa sorgente tramite query.

In questo step l'unica cosa da fare è premere il tasto Save, selezionare una cartella sul file system e Luna ORM si occupera di salvare tutto in una struttura ordinata di cartelle e file che esamineremo nel prossimo articolo. 

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