Per esigenze di lavoro ho dovuto approfondire l'utilizzo di Assembly .NET all'interno di database realizzati con SQL Server 2005. Dopo una breve ricerca, ho acquistato il libro Pro SQL Server 2005 Assemblies. Il volume, poco più di 250 pagine divise in 11 capitoli, affronta tutti gli aspetti legati alla realizzazione di Assembly .NET per SQL Server 2005, dalla fase di creazione a quella di deploy.
Fin dalle prime pagine l'accento è posto sul fatto che, sebbene sia possibile utilizzare codice .NET all'interno del DBMS, è opportuno non abusare di questa funzionalità: just because .NET assemblies are available as an alternative to T-SQL for
processing and validation logic, this does not mean that all (or even most) development will now take place inside a .NET assembly running in the database. T-SQL is still very much a valid method for solving database problems, and where the processing is set-based, T-SQL is by far the most effective solution... [CUT]... if you already have a stored procedure or
trigger working perfectly well in T-SQL, you need to think very hard about moving it to .NET. The advent of .NET programming within the database is certainly no reason to stop improving and refining your T-SQL knowledge.
I capitoli possono essere divisi in gruppi. I primi 3 forniscono un'introduzione all'argomento, mostrando i concetti principali che saranno approfonditi nel seguito. Fin dall'inizio, le spiegazioni sono accompagnate da esempi pratici. Un aspetto molto importante è che il libro illustra tutti i passaggi necessari per creare e utilizzare Assembly .NET con SQL Server 2005 anche se non si dispone di Visual Studio: in questo modo, gli esempi posso essere seguiti anche da chi dispone delle versioni Express di VS, che non supportano la creazione di progetti per SQL Server.
I capitoli 4-8 spiegano come creare ciascuno degli oggetti .NET supportati dal SQL Server, ovvero Stored procedure (capitolo 4), User-Defined function (capitolo 5), User-Defined types (capitolo 6), User-Defined aggregates (capitolo 7) e Trigger (capitolo 8). Anche questi capitoli sono ricchi di esempi, di cui alcuni molto interessanti, come la stored procedure che crea automaticamente un feed RSS a partire dal contenuto di un database e quella per salvare e recupare immagini all'interno di una tabella. Inoltre, segnalo la completezza degli esempi relativi alla creazione di una funzione utente che restituisce una tabella: personalmente questo per me è sempre stato uno degli argomenti più ostici, ma seguendo passo-passo il libro sono riuscito a sviscerarlo in poco tempo...
Passando all'ultimo gruppo di capitoli, il numero 9 si occupa della gestione degli errori e delle strategie di debug. Il libro spiega come eseguire il debug da Visual Studio oppure utilizzando la riga di comando. La teoria, inoltre, va sempre di pari passo con la pratica: in particolare, viene illustrato come definire stored procedure che scrivono il risultato dell'operazione nel registro di sistema e, in caso di eccezioni, inviano una mail di notifica al DBA. Il capitolo successivo, secondo me uno dei più importanti, è dedicato alla sicurezza. Viene spiegato con dovizia di particolari come utilizzare le funzionalità di sicurezza basate su ruoli e il sistema dei permessi per l'esecuzione di specifiche porzioni di codice. Gli esempi forniti mostrano come creare permessi per accedere a file su disco e a risorse di rete via HTTP. Infine, l'ultimo capitolo parla dell'integrazione degli Assembly per SQL Server con sistemi esterni, in particolare Web service e il Service Broker, il sistema di comunicazione basato su messaggi che è integrato nel DBMS.
In conclusione, Pro SQL Server 2005 Assemblies è un libro molto interessante, in cui gli argomenti sono affrontati con il giusto livello di dettaglio, ed è ricco di esempi che consentono di prendere immediatamente dimestichezza con la tematica trattata. Per quanto mi riguarda, vale tutti i 50$ del suo prezzo. Lo consiglio a chiunque sia interessato ad approfondire l'argomento.