marzo 2007 Blog Posts
Già, da ieri sono felice possessore di una Xbox 360 nuova fiammante. Meglio tardi che mai! Non avendo ancora un televisore HD-Ready, ho comprato il cavo VGA e l'ho collegata al monitor 19" del PC. Che dire... Gears of War è semplicemente qualcosa di mai visto, oltre che super divertente. Ora devo trovare il tempo di far fuori un centinaio di locuste. E comprare anche NBA 2K7 e Call of Duty 3
Parlando e lavorando con gli sviluppatori che giornalmente lavorano con i vostri prodotti, ho percepito confusione e preoccupazione sulla vostra relazione con la community open source che si è sviluppata attorno alla tecnologia .Net. Mentre Sun, IBM, altri fornitori di piattaforme, e ISV riconoscono la comunità open source come una base di codice complementare ai propri prodotti, Microsoft ha la tendenza a usare il brillante lavoro della comunità come una feature map per .Net. Scritta da Hamett e ribadita da Ayende. Il testo completo è qui. D'accordo praticamente su tutto.
E' sicuramente una best practice quella di chiudere un datareader quando questo è stato utilizzato. Consideriamo però il seguente snippet di codice: DBConnection connection;
using (connection = factory.CreateConnection())
{
DBCommand cmd = connection.CreateCommand();
// some code
DBDataReader dr = cmd.ExecuteReader();
// some code
}
Console.WriteLine(connection.State);
Il cursore non viene esplicitamente chiuso, questo è vero, ma viene comunque invocata la dispose della connection verso il DB.
Con SqlClient questo snippet funziona come previsto, stesso dicasi per OleDbClient e per Oracle.DataAccess: lo snippet stampa "Closed" sulla console e, se si disabilita il connection pool, si...
In questi giorni, insieme al mio team, ci stiamo cimentando nella realizzazione di un progetto piuttosto complesso in tempi (quando mai) a dir poco strettissimi. Si tratta di una condizione piuttosto estrema, tant'è che non è stato affatto facile far digerire a tutti l'idea di pensare ad un'architettura ben fatta, di separare i compiti tra i vari layer e di scrivere gli unit test. Alla fine per fortuna il buon senso ha prevalso, e la nostra applicazione, ora come ora ha il suo bel domain model è suddivisa in layer, tutti disaccoppiati ed esposti solo tramite interfacce ...
In Windows Communication Foundation, il proxy creato da svcutil eredita dalla classe ClientBase<T>, che a sua volta implementa l'interfaccia IDisposable. Conseguenza di questo fatto è che viene naturale invocare il nostro bel servizio scrivendo: using (MyServiceClient client = new MyServiceClient())
{
// more code goes here...
}
Ma se l'invocazione genera un errore, cosa accade? L'utilizzo del blocco using ci garantisce che venga chiamato il metodo Dispose() di MyServiceClient, che, Reflector alla mano, non fa altro che invocarne il metodo Close().
Attenzione però all'eccezione rilanciata se lo stato del client è Faulted (accade ogni volta che si verifica un errore non...
Tsk tsk... gli uomini duri preferiscono la .NET Super Bisteccazza Capitolina (TM)!! Eheheheheh!! A parte gli scherzi, grazie mille a Lorenzo "Marco sei un cogl..." Barbieri e Stefano Mostarda per la bellissima cena di ieri sera, grazie alla tipa con le calze fucsia, l'unica in grado di interrompere le nostre chiacchiere .nettare e non, e grazie anche a chi ha inventato la fiorentina! E ora dormo! :D