Databases
Ispirato e istruito dalla sessione di Andrea, spero di poter iniziare questa settimana questo piccolo progetto.
Si tratta innanzitutto di creare uno script per la creazione del database e poi codare il membership provider.
Appena lo comincio apro un nuovo workspace su GotDotNet!
Ho deciso di spostare il progetto su GotDotNet. Pubblicherò lì news (con feeds RSS!), nuove releases, etc.. Ci sono anche un forum e un bug tracker, che naturalmente potete utilizzare.
Ho già pubblicato le due "vecchie" releases (0.6 e 0.7.0) e i sorgenti sfruttando il sistema di source control (integrato tramite plugin in Visual Studio!).
Ora vorrei creare un installer (in bundle con l'Enterprise Library e il provider ADO.NET per Firebird). Devo soltanto trovare il tempo di leggere le licenze e realizzarlo.
Putroppo non sono ancora riuscito a fare una pagina di redirect sul vecchio sito perchè ho dimenticato la password... troverò un sistema per farlo (spero!).
Nome...
Ho effettuato qualche piccola modifica al pacchetto.
Grazie ad Alessandro Petrelli per le sue correzioni sullo script sql per la creazione del database
Northwind.
Dal changelog:
5th April 2005 - version 0.7.0 released
* License changed into LGPL * Cleaned up
"bin" and "obj" directories from some files which were used during the
initial development process
* Minor changes to "NorthwindForFirebird.sql" (thanks to
Alessandro Petrelli)
* Minor changes to "Readme.txt"
* Added "Changelog.txt" * Version changed
...
Come promesso, ecco una prima versione. Potete scaricare il file zip
contenente il progetto, comprendente sorgenti, binari e documentazione qui .
Linguaggio utilizzato: C#
Strumenti utilizzati: Visual Studio 2003, NUnit framework, String Resource Generator
Database utilizzato dalla test suite: Northwind for Firebird (realizzato da me, col solo scopo di
testare questo provider, sperando che a MS non dispiaccia).
ADO.NET provider per Firebird: versione 1.7, CVS head (non funziona con la RC2 per via di alcuni bug da me segnalati e corretti).
E' una versione preliminare (0.6), bisognerebbe testarla ancora un po'.
Per domande, consigli, bug reports, potete scrivermi direttamente attraverso
il mio blog.
Buone feste a...
Nuove modifiche sul server CVS per l'ADO.NET data provider del progetto FirebirdSql.
Il secondo dei bug segnalati è stato corretto. Anche un terzo, riguardante la gestione
dell'evento RowUpdated è stato fissato, sebbene necessiti di ulteriore testing.
Beh, è la prima volta che mi capita, devo dire che è una bella soddisfazione
scoprire, identificare un bug e vederlo corretto!
Tengo comunque a sottolineare che non si trattava di bug particolarmente
gravi, ma semplicemente di comportamenti che si discostavano da quelli
degl'altri ADO.NET provider.
Direi che il lavoro sull'Enterprise Library sta per
concludersi.
Tra le piccole soddisfazioni di questo lavoro, due micro-bug scoperti
nell'ADO.NET data provider, versione 1.7 RC2.
1) Quando il data adapter fallisce l'insert/update/delete su una
riga, viene settato dataRow.RowError solo se
dataAdapter.ContinueUpdateOnError è settato a true. (FbDataAdapter.cs,
linea 456)
2) dataReader.RecordsAffected ritorna -1 anzichè il numero di righe
effettivamente modificate da un insert/update/delete statement se eseguito prima
che il data reader stesso venga chiuso. (FbDataReader.cs, linea 43)
Il primo è già stato riconosciuto è corretto nel CVS, il secondo l'ho appena
comunicato sulla mailing list ufficiale.
UPDATE: Il commit sul server CVS di sourceforge non è ancora stato effettuato.
UPDATE:...
In questi giorni di vacanza mi sto dedicando alla
scrittura di un nuovo data provider per l'Enterprise Library, dedicato al database Firebird.
L'impresa si sta rivelando abbastanza semplice, sebbene io non possa, almeno
per il momento, ritenermi un esperto del .NET framework. La disponibilità dei
sorgenti aiuta naturalmente molto. Le implementazioni dei provider per DB2, SQLServer e Oracle
sono piuttosto simili in certi punti e spesso è bastato
riprendere direttamente il loro codice.
Al momento sto aggiungendo qualche test fixture e risolvendo alcuni problemi con la
gestione degli errori durante l'update del data set. Per riutilizzare le
classi base fornite per lo unit testing ho dovuto...
Correva l'estate 2004 quando, per un mio progetto, mi misi a cercare un database gratuito...
Per prima cosa valutai lo strafamigerato MySql... imbattendomi subito in cocenti delusioni. Le prime furono tecniche: niente stored procedures, niente triggers, niente viste, niente UDTs... e infine... udite udite: addirittura niente check constraints! Le seconde stilistiche... mai vista niente di più lontano dagli standard SQL! Dulcis in fundo una bella nota sulla licenza: non risultava free per progetti di stampo commerciale...
Allora decisi di valutare il buon vecchio colosso PostgreSql... niente male, veramente cool l'eredità tra tabelle! La mia mente OOP già immaginava folli idee, ma...