June 2007 Blog Posts

Unit test e build server

Attualmente partecipo allo sviluppo di un progetto dove abbiamo circa 500 unit-test, 1.000 assert ed il tempo di esecuzione di tutti i test si avvicina ai 5 minunti. Questo porta a non eseguire sempre tutta la suite di test. Per esempio se modifico una singola classe modifico o aggiungo qualche test, scrivo il codice per far passare solo i test che mi interessano in questo momento e quando quest'ultimi sono ok faccio il commit sul source control. Così facendo però corro il rischio di aver fatto il commit di codice che potenzialmente fa fallire gli altri test che non ho eseguito ma d'altro canto non posso sempre "perde"...

[SQL CONFERENCE] Performance Dashboard e Query Optimizer

Sessione di Stefano Stefani, Senior Software Enginier che lavora dal 2000 a Redmond nel team di SQL Server. Per iniziare Stefano ha presentato la Performance Dashboard , ovvero una serie report disponibili con il Service Pack 2 che nascono dalla esperienza del PSS di SqlServer 2005 che ha creato questo strumento per meglio assistere i proprio clienti in caso di necessita di assistenza. Secondo argomento trattato è stato il Query Optimizer. Questo componente interno a SqlServer è "quel signore" che decide come eseguire una query. Stefano che è uno degli sviluppatori che lo ha realizzato quindi ne conosce i pregi e difetti. Nella sua esposizione ha illustrato con dovizia di particolari come si...

[SQL CONFERENCE] Ottimizzare Xquery con indici XML

Sessione tenuta da Paolo. Si parla di XQuery e dai feedback dei partecipanti alla sessione l'argomento risulta essere piuttosto di nicchia. Io personalmente l'ho sfruttato solo in un caso in passato ma senza la necessità di usare anche gli indici sui campi di tipo xml quindi per me la sessione è stata un piacevole approfondimento della materia. Alla fine della sessione sono stati presentati 2 esempi reali in cui la nuova feature è stata utilizzata in applicazioni reali: per firmare digitalmente file xml salvati nel database grazie al SQLCLR per eseguire la entity extention via plug-in Il secondo esempio è...

[SQL CONFERENCE] Livelli di isolamento

Prima sessione pomeridiana. Speaker Andrea che cerca, ci riesce, a svegliarci con un esempio "molto interessante" che evidenzia come sia importate una piena comprensione della materia trattata. Piccola nota: nel dietro le quinte l'esempio proposto da Andrea già aveva catturato l'attenzione degli altri speaker a tal punto che Stefano Stefani, membro del team di sviluppo di SQL Server e guest star della confernza, assiste alla sessione ed alla fine interviene attivamente con delle pillole che possono venire solo da chi come lui in questi ultimi anni ha vissuto di "pane e SQL Server". Tornando al contenuto della sessione, Andrea ha cercato di portare esempi in cui il comporatamento di...

[SQL CONFERENCE] Server Management Objects

Seconda sessione di Davide alla SqlConference 2007 questa volta dedicata a Server Management Objects, ovvero una serie di oggetti managed per eseguire operazioni di gestione e manutenzione sul nostri Server Sql (dalla versione 7 in poi) Personalmente avendo già in passato usato la versione COM distruita con la versione 2000 di SqlServer, chiamata SQLDMO, già conoscevo a grandi linee il modello ad oggetti e le operazioni che si possono effettuare. La mia attenzione in questa sessione é stata catturata da PowerShell, uno strumento per me nuovo con cui Davide ha mostrato come usare oggetti managed, in questo caso quelli di SMO, senza dover...

[SQL CONFERENCE] Service Broker

Sessione di livello 400 tenuta da William Franchini su Service Broker. Premetto che ho sempre avuto alcuni pregiudizzi nell'utilizzo del service broker semplicemente perchè usarlo vuole dire usare SQLServer 2005 non solo come database server ma anche come application server in cui inserire logica di business e la sessione mi ha confermato che questa è una scelta architettura quasi irreversibile. Fatta questa premessa durante la sessione è stato presentato un caso reale in cui il service broker viene utlizzato in due diversi scenari: operazioni asincrone applicazioni distribuite Il primo scenario mi ha convinto abbastanza, ovvero se...

[SQL CONFERENCE] SQLServer CE

Sessione di Roberto Brunetti che vuole essere una serie di best practices sull'accesso ai dati persistiti in SQLServer CE sia da dispobsitivi Mobile sia da dispositi Desktop. Tanti i consigli pratici sulle varie possibilità e sulle tecniche per realizzare un data access layer per SQLServer CE. Per riassumerli brevemente usare (Base Table Cursor e Data Reader) e non usare (vedi. DataSet e DataTable). Fare chacing dei parametri se il dispositivo ha le caratteristiche adatte. Interessante l'esempio di come creare un progetto desktop per fare debugging in modo "classico" ma su codice preso dalla soluzione mobile. Frase topica della sessione: Quando la RAM scarseggia ... la papera...

[SQL CONFERENCE] SQLCLR

Arriva una sessione molto dev-oriented. Tocca a Paolo Pialorsi addentrarsi nello sviscerare le catteristiche del SQLCLR per capire se siamo in un caso in cui il common language runtime interno al SQLServer 2005  è uno strumento che può esserci più utile dei comandi T-SQL. IMHO ne vedo un'applicazione molto di nicchia (Regular Expression, Firma digitale , calcoli custom con logica molto complessa) ma in alcuni casi può essere una funzionalità veramente utile. Molti gli esempi presentati sottolineando anche gli scenari in cui la scelta di utilizzare SQLCLR invece di comandi T-SQL è una scelta errata. Insomma la sessione che mi è piaciuta di più nella giornata. Technorati tags: SQL CONFERENCE,...

[SQL CONFERENCE] Database mirroring

Altra sessione tenuta da Luca Bianchi. Sessione dal taglio prettamente sistemistico essendo la funzionalità di database mirroring una funzionalità trasparente per applicazioni che utilizzano un provider ADO.NET 2.0 con stringa di connessione opportunamente configurata. Maggiori dettagli li trovate in questo post di Andrea. Technorati tags: SQL CONFERENCE, Database mirroring

[SQL CONFERENCE] Analisi delle prestazioni e ottimizzazione

Come sempre ottima sessione di Davide che IMHO dovrebbe essere seguita da qualsiasi sviluppatore che lavora con SQLServer. Il motivo è molto semplice: prima o poi tutti ci si trova davanti un SQLServer che non cammina come vorremmo ed abbiamo bisogno di capire perchè e fare ottimizzazione sulle query che vengono eseguite. Gli argomenti trattati sono stati: Come raccogliere i dati per capire lo stato di salute del mio database attraverso: viste di sistema perfomarce counter tracing e quindi come analizzare i dati tramite: performance monitor ...

[SQL CONFERENCE] Novità del service pack 2

E' stata la prima volta che assistevo ad una sessione tenuta da Luca Bianchi, MVP di SQLServer, di cui in passato avevo già apprezzato alcuni articoli. Che dire, un ottimo speaker oltre che un ottimo articolista. Sinceramente non mi aspettavo molto da questa sessione pensado fosse solo per dba ed invece sono stato piacevolmente sopreso dai contenuti. Nella sessione sono state affrontate con il dovuto dettaglio tecnico i seguenti argomenti: logon trigger (anche se non impazzisco per i trigger questi possono essere molto utili se opportunamente utilizzati) nuove istruzioni ...

[SQL CONFERENCE] Blogging from the conference

Quest'anno avrò il piacere di partecipare a SQLCONFERENCE 2007 Se riesco vorrei annotare i miei commenti per ogni sessione a cui assisto. Non avendo a disposizione una connessione durante l'evento preparerò i post con WLW e li pubblicherò non appena rientrato alla base. Dall'agenda si preannuncia un evento con una track per dev/dba ed una track orientata alla Business Intelligence. Visto che nel mio futuro per ora penso che mi terrò lontano dalla Business Intelligence la mia scelta ricade su sessioni per dev e dba. Technorati tags: SQL CONFERENCE

Devo testare tutti i metodi setter e getter ?

Ieri sera mi sono imbattuto in un post che parlava di Unit Test in cui veniva data risposta alla domanda: "Should I test all getters & setters?" La risposta dell'autore del post era no. Ripensandoci mi sono chiesto perchè io che scrivo molti Unit Test non mi sono mai preoccupato molto di questo fatto. Alle fine ho realizzato che se mi pongo questo problema significa che prima scrivo il codice e poi scrivo il test. Se invece seguo un approccio TDD procedo in questo modo: scrivo un test per il getter della propietà che sto testando creo la proprietà vera e propria in sola lettura e mi assicuro che il...

Mock framework in PEX

Il nuovo framework di Unit Test che potrebbe vedere la luce insieme ad Orcas, la prossima versione di Visual Studio, dovrebbe contenere anche una funzionalità di mock objects. La notizia viene da questo post in cui è presente un piccolo esempio di cosa potremmo fare con PEX per usare oggetti "mokkati". Come per altri framwork sarà possibile creare mock objects di interfaccie e metodi virtual di classi non sealed