Qualche giorno fa ho seguito il blog di Gianluca Hotz sul Declarative Management Framework, una nuova interessantissima feature di SQL Server 2008.
Devo dire che l'ho trovata proprio una funzionalità potente e molto
interessante. Tramite DMF è possibile infatti definire svariate
policies relative alle opzioni del server, a quelle del database e a
tutto ciò che può essere definito nell'amministrazione di un database
server in generale.
Un tipo di policy a mio avviso molto importante per alcuni aspetti è
quello che consente di stabilire le regole relative alla naming
convention degli oggetti database. E' possibile definire ben definiti
vincoli sull'utilizzo dei normi degli oggetti che andiamo a creare.
Prendendo l'esempio dell'azienda in cui lavoro, tutti si possono
riferire ad un documento in cui sono specificate le linee guida per la
creazione delle tabelle, foreign key, programmabilità, ecc.
Ma non risulta troppo comodo, poichè è necessario sempre rileggere la
parte del documento interessata ogni qual volta andiamo ad operare sul
nostro db.. Prima o poi i concetti entrano in testa e il doc non serve
più
ma
rimane sempre la possibilità che chi va a creare oggetti possa
sbagliarsi anche senza accorgersene.. Quindi il doc fornisce sì le
linee guida, ma non controlla.
DMF, con la policy sulle naming, serve proprio in questo punto.
Soprattutto per chi, come me, ha dovuto implementare una logica di DDL
trigger a manina per controllare il nome di ogni oggetto.
A prescindere dal fatto che comunque le policies di questo tipo
utilizzino comunque dei trigger DDL, credo che utilizzare la nuova
feature di SQL Server 2008 per la naming convention sia più veloce e
decisamente importante per il database development.
Innanzitutto per la leggibilità del
codice. Lavorando in gruppo e seguendo le regole, tutti sapranno sempre
scrivere codice comprensibile per tutti. Comprensibile anche dopo tanto
tempo che non lo si guarda più, poichè anche se la policy si riferisce
all'oggetto nello specifico, indirettamente mantiene più vicino quanto
scritto agli standard aziendali.
E DMF ci sonsente di creare, a mio modo di vedere, proprio la definizione di standard di sviluppo aziendali. Risulta molto comodo definire un template di regole da seguire, esportarlo in XML e poi riutilizzarlo identico su di un altro server o in altri contesti.
E per ultima cosa, ma non per importanza, riusciamo ad ottenere un vero e proprio ordine
una sorta di schema controllato e organizzato. Questo ci permette di
avere chiarezza, o meglio, di capire sempre di quali oggetti si sta
parlando. E' molto utile sapere che un tipo oggetto si chiamerà sempre
con un nome relativo ad un particolare template. Anche per avere un
database "parlante" e "pulito" a livello di modellazione.
Sia chiaro, sono cose che il buonsenso di ogni DBA o DBDeveloper (o
sviluppatore in generale) hanno già creato. Non è una novità darsi
delle regole di sviluppo. La novità è proprio lo strumento che ci
permette di crearle e controllarle in automatico, senza dover dire "ma chi ha fatto temp1?", oppure "ma prova2 è una vista o una tabella?"
. Ora, queste sono estremizzazioni, ma credo che qualcuno abbia già affrontato problemi simili
..
Quante volte si sentono persone che dicono "creo una tabella di appoggio e la chiamo appo"?
Beh, ora, per evitare che queste cose si ripetano, DMF impedirà la
creazione dell'oggetto e darà un messaggio di ritorno come "Ok, falla pure, ma non qui"
.
A parte gli scherzi con questo tipo di policy, a mio modesto parere,
avremo tanti vantaggi. Certo, qualcuno storcerà il naso perchè non si
sentirà più liberissimo. Ma tutto va a favore dello sviluppo.
Pensate che questa è solo una piccola parte delle policies che si
possono configurare. Ce ne sono tantissime e sarà importantissimo
capirle tutte a fondo per determinare fino a dove possano servire alla
nostra causa o fino a quanto profondamente possiamo spingerci nel
definirle.
Che dire, spero di poterle utilizzare presto, anche se il caro sql server 2005 (come passa il tempo
) resterà sui nostri server per ancora tanto tempo.
Intanto sul mio pc la CTP5 c'è.. Mi divertirò con quella versione per ora..
E voi? cosa pensate di SQL Server 2008? e di questo DMF?
Stay tuned! 