Ieri mi sono scontrato con il problema di
generare un file di trace di un'applicazione.
Il mio pensiero è subito volato verso le Enterprise Library, finalmente l'occasione di
utilizzare questo gioiello della scienza e della tecnica. Durante il workshop
del 2 dicembre (Architecture & Management) ero rimasto affascinato
dagli Application Blocks, tanto (giustamente) decantati dal nostro Lorenzo. Dopo l'uscita della versione 1.0 delle EL non vedevo l'ora di avere
l'occasione per buttarmici sopra. Ma con il senno di poi mi rendo conto che
l'occasione non era questa.
Infatti, man mano che approfondivo
l'argomento mi rendevo sempre più conto che le EL sono eccezionali, ma nel
mio caso era come utilizzare una bomba atomica per far fuori una mosca. La
maggior parte delle funzionalità offerte dal Logging Block erano superflue per
il mio scopo. Dovevo solo scrivere un misero file di trace in locale in una
posizione ben definita. Ripresomi dall'entusiasmo e con fare
sconsolato (ancora una volta mi tocca rimandare l'uso delle EL
) mi sono buttato sulla comodissima classe Trace del
framework:
Trace.Listeners.Add(new TextWriterTraceListener(this.mTraceFile));
Trace.AutoFlush = true;
...
if(this.mWriteTrace) Trace.WriteLine(message, category);
...
~MiaClasse()
{
Trace.Close();
}
Ho evitato volutamente l'uso dei TraceSwitch e del
WriteLineIf dato che:
You can minimize the performance penalty of instrumenting your
application by using If...Then statements instead of using
WriteLineIf statements.
Fonte: Msdn - Trace.WriteLineIf Method
Che dire, la cosa nella sua banalità mi ha fatto riflettere. Spesso cadiamo
nella trappola di dimenticare l'obiettivo e farci trascinare dal desiderio di
utilizzare l'ultimo ritrovato perché ci incuriosisce, perché fa cool (La cosa vale anche nella vita di tutti i giorni, compriamo
cellulari con più funzioni di un pc per poi usare il 10% di queste
funzionalità). Altre volte vogliamo offrire di più di quanto il cliente ci ha
chiesto, ed implementiamo di nostra iniziativa funzionalità che riteniamo
utilissime (Ho cominciato ad essere cosciente di questa problematica dopo
l'intervento dell'Agile Marco
al workshop di cui sopra).
Quante volte, quindi, il nostro essere Tecno-Entusiasti ci allontana
dall'obiettivo?
powered by IMHO 1.2 with Emoticon Formatter