marzo 2005 Blog Posts
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...
"Originally, we were targeting NT to
the Intel i860 (code-named 'N-Ten)', a RISC processor that was horribly behind
schedule. Because we didn't have any i860 machines in-house to test on, we used
an i860 simulator. That's why we called it NT, because it worked on the
'N-Ten.'"
-Mark LucovskyDistinguished EngineerWindows
Server Architect
Citazione tratta da http://www.winsupersite.com/reviews/winserver2k3_gold1.asp