home

SqlUP

SqlUP (SqlServer-UPdate) è una semplice libreria .NET che ho sviluppato per l'esecuzione di script t-sql su database SqlServer 2005; SqlUP è orientata all'esecuzione di script di aggiornamento del database, da effettuare contestualmente all'aggiornamento di un applicativo.

Particolare attenzione è stata dedicata al mantenimento dell'integrità dei dati da aggiornare e alla flessibilità dell'aggiornamento stesso.

Per questo scopo, sono supportate le seguenti caratteristiche:

Ultimo ma non ultimo, SqlUP è disponibile in formato binario e sorgente ed è liberamente utilizzabile (vedi licenza inclusa nella distribuzione).

Scenari di impiego

SqlUP può essere utilizzata dall'applicativo da aggiornare, da un applicativo ad hoc che si occupi dell'aggiornamento, magari scaricabile via ClickOnce, oppure in qualunque altro contesto che consenta l'utilizzo di librerie .NET (un servizio Windows creato appositamente per aggiornare il database, un task MSBuild per eseguire script nell'ambito del processo di compilazione, ...).

E' inoltre possibile usare l'applicazione a linea di comando SqlUPConsole.exe inclusa nella distribuzione, anche se questa ha principalmente scopo dimostrativo.

Ambiente di sviluppo

La libreria SqlUP è stata sviluppata con .NET Framework 2.0, linguaggio C#.

Sono stati inoltre utilizzati alcuni tool di terze parti:

Nota: non è necessario installare nessuno dei tool citati per utilizzare la distribuzione binaria o per ricompilare il codice sorgente.

Esempi di utilizzo

Per l'utilizzo della libreria, fare riferimento ai codici sorgenti: contengono due semplici applicazioni di esempio e i test NUnit.

Ecco un estratto:

ScriptCollection scripts = new ScriptCollection();
scripts.AddFile("script1.sql");
scripts.AddFile("script2.sql");

ScriptExecutorController controller =
    new ScriptExecutorController(new SmoScriptExecutor(connString));

controller.ExecuteInTransaction = true;

ScriptCollectionExecutionResult result =
    controller.ExecuteScriptCollection(scripts);

Console.WriteLine(result.ShortOutput);

Per ulteriori informazioni è disponibile la documentazione (vedi sotto).

Documentazione

La documentazione di SqlUP è disponibile on-line o all'interno delle distribuzioni in formato chm.

Download

Versione Alpha - Windows

SqlUP-1.3.1.344-bin.zip
Distribuzione binaria con applicativi di esempio e documentazione in formato chm.

SqlUP-1.3.1.344-src.zip
Distribuzione completa con sorgenti, test NUnit, script di build e documentazione in formato chm e html.

Sviluppi futuri

La versione 1.3 di SqlUP verrà migliorata nella gestione del tracing e nel dispose delle risorse (al momento la connessione va rilasciata dal chiamante).

La versione 1.4 supporterà un motore di aggiornamento incrementale che selezioni gli script da eseguire.

Sarà così possibile aggiornare un database copiando di volta in volta i nuovi file di script in una directory predefinita e lasciando che SqlUP identifichi quelli ancora da eseguire (ad esempio memorizzando nel database stesso le informazioni necessarie).