Metodologie di sviluppo
Direttamente da Gavin King (Mr. Hibernate, l'amico di Janky ) un post che la dice lunga, molto lunga:
"In Defence of RDBMS"
http://blog.hibernate.org/cgi-bin/blosxom.cgi/2007/05/23
Il post è piuttosto lungo, e quindi riporto solo due estratti di quanto scritto da Gavin. Li riporto perchè sono concetti che chi mi conosce sa che difendo da sempre....anche quando sembravano essere controcorrente, e venivano tacciati come "vecchi e superati", ma ora che è passata la moda si riscoprono e tornano alla luce del sole...Bene, meglio tardi che mai!
Sulla centralità e sulla vita dei database:
"[...] data and data models last longer than applications, longer even than programming languages. Data is...
posted @ venerdì 25 maggio 2007 13:08 |
I vari articoli MSDN scritti in italiano dai vari MVP (e non) sono ora disponibili, oltre che nei rispettivi Developer Center, anche in questa comoda lista:
http://www.microsoft.com/italy/msdn/risorsemsdn/community/mvp/articles.mspx
posted @ mercoledì 11 aprile 2007 19:41 |
E' stato pubblicato un interessante documento sull'utilizzo degli Unit Test in un database: http://msdn2.microsoft.com/en-us/library/bb381703(VS.80).aspx
posted @ lunedì 19 marzo 2007 21:55 |
Finalmente è arrivato il momento di vedere sul palco me e Gianky insieme!
Come i più veloci hanno già notato il prossimo workshop UGISS UGIDotNet vedrà me e Gianky tenere la sessione "Data Access: strategie ed ottimizzazione":
http://www.ugidotnet.org/workshops/workshops_detail.aspx?ID=69540c2b-3ada-4191-90e3-2641f6ed9d05
Non credo che vogliate perdervi un simile spettacolo
posted @ giovedì 8 marzo 2007 12:50 |
Sto ascoltando in questo momento il programma "Al vostro posto" di Radio 24. Tralasciando il tema della puntata del programma, la cosa che mi preme sottolineare è come il responsabile dell'ATM intervistato dalla Radio abbia ancora la concezione di idee che i dati scambiati dall'ATM ed i suoi partner siano su "dischetti" (testuali parole). Rabbrividisco.
Ma la cosa che mi fa ancora più rabbrividire è che ogni volta che qualche responsabile di qualche società viene intervistato riguardo a qualche disguido di comunicazione con il cliente finale (di qualsiasi tipo, dalla notifica del pagamento di un multa - come nel caso...
posted @ lunedì 19 febbraio 2007 20:17 |
Come già anticipato da Lorenzo e da Simone il 21 Febbraio 2007 ci sarà un Technical Workshop dedicato a Visual Studio 2005 Team Edition for Database Professionals. Insieme a Lorenzo mostrerò come l'utilizzo di VS 2005 DBPro sia una reale manna dal cielo (non per fare pubblicità lo dico seriamente) per chi sviluppa / amministra un database. Non mancate!
posted @ martedì 16 gennaio 2007 16:13 |
Leggendo l'interessante transcript della "Agile Chat" postata da Emanuele mi sono venuti in mente una serie di considerazioni che vorrei condividere con tutti, in modo da poter avere un feedback su queste idee che tra poco andrò a descrivere e che mi sembrano il "clou" della problematica.
posted @ mercoledì 20 dicembre 2006 15:33 |
Sono contento che Mauro abbia chiarito nel dettaglio ciò che intendevano lui e Raf nei post che consigliavano di non utilizzare le stored procedure. Io rimango cmq della mia posizione. Non usare le stored procedure E' MALE. Onde evitare flame :-) mi spiego subito. Il caso descritto: "L'uso di uno statement specifico che si preocupa di aggiornare i soli dati realmente modificati permette inoltre di gestire meglio la concorrenza ottimistica nel caso in cui, ad esempio, il client X modifichi la Ragione Sociale mentre il client Y modifichi l'indirizzo della ns entity, in un caso come questo potrebbe non avere senso...
posted @ domenica 12 novembre 2006 01:45 |
Il link alla homepage del guru della programmazione ad oggetti Rockford Lhotka
http://www.lhotka.net/Default.aspx
Dal sito è possibile scaricare il framework sviluppato dallo stesso Lhotka, aggiornato a .NET 2.0, e descritto nei suoi ormai famosi libri:
http://www.lhotka.net/Articles.aspx?id=1351540e-b941-446a-bacb-e0059cc82ee7
posted @ martedì 11 aprile 2006 21:45 |
Ecco qui il link
http://www.ratio.co.uk/objectiveview.html
Gli articoli sono interessanti e gli autori sono di tutto rispetto (Johson, Vaughan, Ambler giusto per citarne alcuni...)
posted @ mercoledì 29 marzo 2006 17:40 |
Come ho già detto diverse volte e come Scott Ambler (e non solo) sostiene da tempo, è possibile approciare allo sviluppo del DB con metodologie Agili.
Per poterlo fare _veramente_ e _seriamente_ è necessario (oltre che ad un cambio di mentalità ) avere a disposizione sistemi per l'attuazione di Unit Testing: per Sql Server è possibile utilizzare TSQLUnit. Ancora non ho iniziato ad usarlo, ma lo userò a breve, presto posterò le prime impressioni d'uso.
A livello più generico un tool per effettuare Unit Testing sui db è SQLUnit (basato su Java). Nel caso il primo non dovesse andare bene (è ancora...
posted @ giovedì 9 marzo 2006 23:27 |
Scott Ambler ha raccolto cinque articoli di importanti figure nel mondo della modellazione dei dati (tra cui anche David Hay) in una pubblicazione scaricabile gratuitamente da qui:http://www.cutter.com/offers/agiledata2.html
Gli articoli sono:
Evolutionary Database Development Techniques by Scott W. Ambler and Pramod J. Sadalage
Agile Database Testing by Ken Collier
Enabling Agile Database Development: A Case Study by Nick Ashley
Agile Applications as Open-Vocabulary English Business Rules over SQL by Adrian Walker
Data and Agile Methods by David Hay
sono 44 pagine (un librettino in pratica) e non ho ancora avuto il tempo di leggerlo tutto, ma sembra (come tutti gli scritti di Scott) molto interessante....
posted @ martedì 28 febbraio 2006 01:59 |
Vedo che si comincia a creare un pò di interesse intorno al tema del data modelling. Un ottimo libro sull'argomento, molto aggiornato, che tiene conto anche delle domande normalmente poste da chi ha esperienza di sviluppo OO e delle ultime teorie sulla sviluppo Agili (senza per questo "violare" i normali concetti di data modelling) è questo
Data Modeling Essentialshttp://www.amazon.com/exec/obidos/tg/detail/-/B0007KIQP4/ref=pd_sim_b_5/104-8044554-9575905?%5Fencoding=UTF8&v=glance
Potrete cosi avere riposte so come cercare di modellare un database in modo corretto. Scoprirete cosi come è possibile creare un solido modello dati anche se le informazioni che avete a disposizioni sono incomplete. Ne consiglio la letture a chinque abbia a che fare con i...
posted @ giovedì 13 ottobre 2005 00:56 |
Un post di oggi di Igor mi ha stimolato a scrivere un articolo che da qualche giorno ho nel cassetto. L'idea mi è venuta da quando ho assistito alla presetazioni di Paul Nielsen riguardo alla modellazione dei dati, dove, in una slide iniziale, mostrava in modo estramamente chiaro e semplice che impatto hanno sulle performance le ottimizzazioni che possiamo fare su un qualsiasi database (SQL Server 2000 e 2005 in particolare). Il concetto è riassunto da questa piramide:
Che in modo incofutabile comunica che l'impatto maggiore sulle prestazioni è dato da questa sequenza:
1 - Modello del database
Se il database è disegnato male (troppo o troppo poco...
posted @ lunedì 10 ottobre 2005 20:32 |
Di AJAX se ne è già parlato abbastanza (dopotutto è la buzzword del momento ) ed io non ho intenzione di dire nulla di nuovo in proposito, visto che è gia stato quasi detto tutto ed il contrario di tutto. Quello di cui voglio discutere qui è l'utilizzo di una tecnologia asincrona come AJAX in un contesto un pò più grosso, come può essere un moderno sito web (intranet, extranet o public website che sia).
L'idea di utilizzare una qualsiasi architettura che renda asincrone alcune chiamate al server è, per quello che mi riguarda, qualcosa che diventerà sempre più una normalità,...
posted @ giovedì 6 ottobre 2005 01:09 |
In questi giorni sto leggendo un libro molto bello, dal titolo Refactoring to Patterns. A parte l'interesse suscitato dal tema stesso, ed il bel taglio dato da Joshua Kerievsky, l'autore, che ne fa l'ideale seguito per chi a letto Design Pattern e Refactoring (entrambi, come questo, nella lista dei libri da leggere), ho trovato un'altra bella analogia che aiuta a capire perchè è necessario fare refactoring.
Se vi state chiedendo perchè mi sta tanto a cuore questa faccenda delle analogie, è presto detto: le situazioni per me più difficili da affrontare non riguardano la parte tecnica, dato che, normalmente, l'importanza del...
posted @ domenica 17 luglio 2005 21:13 |
Oggi l'ho detto anche alla conferenza parlando di XML e lo ha sottolineato anche il mio collega Alessandro parlando di SQLCLR. Questi sono strumenti MOLTO potenti....ma che non devono necessariamente essere utilizzati in ogni database ed in ogni query che faremo su SQL 2005. Anzi...molte volte è meglio evitare di usarli in quanto le soluzioni set-based che il "vecchio" T-SQL ci mette a disposizioni sono ancora (e rimarranno) molto ma molto ma molto più efficienti.
Allora perchè, come fa notare JoelOnSoftware e come riprende Bill Graziano nel suo blog, alcuni articoli su MSDN mostrano come fare cose che noi continuiamo a dire...
posted @ sabato 7 maggio 2005 00:33 |
Questo sembra proprio un tool interessante! Non ho ancora avuto il tempo di darci un'occhiata approfondita, ma da quello che si vede dal sito sembra un'idea quantomeno stimolante!
http://dpatoolkit.sourceforge.net/
posted @ giovedì 3 febbraio 2005 09:11 |
Il post sulle "superfici di contatto" ha avuto diversi feedback (speravo di più ad esser sincero...si parla parecchio di metodologie di sviluppo qui si UGIdotNET e quindi pensavo che l'argomento interessase ai più...boh), ed ha riportato in auge il dilemma "meglio un data access layer o delle procedure sul database tipo stored procedure?".
Beh, io qui dico la mia, sperando ancora un volta in un ampio feedback in modo da metter sul tavolo un pò di argomenti di discussione interessanti.
La mia idea è che non ci può essere un vincitore a questa domanda. Nessuna delle due opzioni è meglio dell'altra in...
posted @ martedì 1 febbraio 2005 09:28 |
In questi giorni da un cliente mi sono trovato a dover
spiegare perchè è cosa buona e giusta creare uno strato di accesso ai
dati e perchè è necessario utilizzare abbondantemente stored procedure e
affini (se presenti nell'rdbms utilizzato).
Sul momento ho spiegato per esteso le varie problematiche che tale soluzione
permette di evitare, correggere e prevenire, ma, ora, ripensandoci bene, credo
che la cosa potrebbe essere resa molto più chiara e comprensibile (e soprattutto
convincente) utilizzando un semplice concetto.
Tale concetto è ben rappresentato dall'idea di
pensare a delle "superfici di contatto ". Database e applicazioni,
applicazioni ed altre applicazioni,...
posted @ venerdì 28 gennaio 2005 19:05 |
Bene, sono contento che il post precedente abbia suscitato interesse!
Vi ricordo che sul sito www.agiledata.org potete dare un'occhiata ai contenuti del libro prima di acquistarlo (direi che c'è praticamente *tutto* il libro...però per me la carta stampata è ancora insostituibile!)
powered by IMHO 1.2
posted @ giovedì 27 gennaio 2005 20:18 |
Non è da me fare una pubblicità così marcata a qualcosa, ma questo libro è davvero da leggere.
Oggi ho finito di leggerlo (ma ho già in programma la rilettura di alcune sue parti) e ogni singola pagina è una miniera di consigli ed esperienza.
Io normalmente mi trovo molto spesso a dover essere l'anello di congiunzione tra database architects e software architects e quindi argomenti quali la convivenza di due paradigmi differenti (come OOD ed il modello relazionale) sono pane di tutti i giorni, cosi come la convivenza con sistema legacy, che, come ben si sa, sono come i protagonisti di...
posted @ mercoledì 26 gennaio 2005 23:20 |
Ieri sono andato avanti nella lettura del libro Agile Database Techniques, che si dimostra ad ogni pagina sempre più bello.
Ho scoperto che esiste il concetto di Class Normalization, che è ovviamente è parallelo al concetto di Data Normalization così ben conosciuto a tutti coloro che lavorano con un rdbms.
Le regole che esprime sono regole che - secondo me - probabilmente già tutti applichiamo e conosciamo, in quanto mi sembrano "semplicemente" delle regole legate al buon senso, ed, alla fine, si ritorna al concetto fondamentale che le operazioni che agiscono sui dati vanno dove ci sono i dati. Dato che però magari questo concetto...
posted @ giovedì 13 gennaio 2005 10:27 |
Ieri ho speso molto tempo sui mezzi di trasporto (troppo....quando potremo direi anche noi "Beam me up, Scotty" ? ), ma per fortuna sono riuscito a investirlo nella sana lettura del libro "Agile Database Techniques".
Uno dei punti che più mi ha favorevolmente colpito - e stupito direi - è che Scott W. Ambler, l'autore, sostiene che per essere Agili è necessario diventare dei Generalized Specialist. E' una cosa in cui ho sempre creduto, e mi sono praticamente sempre trovato in controcorrente , ed ora che lo leggo scritto sul libro di uno degli autori più autorevoli del movimento agile, beh,...
posted @ mercoledì 12 gennaio 2005 10:16 |
Anche oggi sul ng di SQL Server è stata postata la fatidica domanda: "...ma devo scrivere cosi tante stored procedure"?
Si.
Non bisogna avere paura di avere molte stored procedure all'interno di un database, non è sintomo di cattiva programmazione nè tanto meno di poca portabilità.Le stored procedure permettono di far sì che lo schema del nostro database sia indipendente dalla logica di business e viceversa. La logica di business (molto più correttamente la logica di accesso ai dati) deve "semplicemente" scegliere qual'è la stored procedure (o query se ipotizziamo di lavorare su un db che non supporta le SP) che deve...
posted @ lunedì 10 gennaio 2005 15:18 |
Finalmente il libro è arrivato!
In questi giorni comincierò a leggerlo (tanto più che devo viaggare spesso, quindi potrò impegare il tempo sui mezzi di trasporto in modo ottimale) e vediamo che ne esce.
Devo ammettere di essere abbastanza esaltato a riguardo!
posted @ lunedì 10 gennaio 2005 15:04 |
Approcio Agile e Pattern ovunque, anche per chi deve modellare i database:
http://www.bookpool.com/.x/hr9s5wows8/sm/0471202835
e
http://www.amazon.com/exec/obidos/tg/detail/-/0932633293/104-4238991-1062343?v=glance
sicuramente faranno inorridire i puristi del modello relazionale (e ne conosco almeno un paio ) ma a me questi approci piacciono un sacco!
posted @ domenica 2 gennaio 2005 15:23 |
Stavo cercando un tool che mi permettesse di creare dei dati di esempio (verosilimi) con la quale popolare un db di test (mi sa che il tool me lo devo fare....) e sono capitato su questa interessantissima pagina:
http://www.agiledata.org/
che, come potete capire del nome, propone un approcio agile allo sviluppo dei database....magari può essere d'aiuto anche per rispondere al problema sollevato da AndreaB nel suo post:
http://blogs.ugidotnet.org/penpal/archive/2004/12/29/7934.aspx
posted @ domenica 2 gennaio 2005 13:11 |