3ENGINE

Programación y otros cachivaches

Archivo

Página 31/104

Tecnologia

Patrones de diseño software: resumen


Unos artículos relacionados con los patrones de diseño software que dan un repaso rápido y general son estos dos:

Patrones de Diseño UML (I)
Patrones de Diseño UML (II)

Luego hay otros dos artículos, tambien sobre patrones de diseño software, pero centrados en Java:

Los Patrones de Diseño Java EE (I)
Los Patrones de Diseño Java EE (II)

Estos artículos contienen dos diagramas muy útiles. Los pego aquí:

Patrones de diseño software

Patrones de diseño software




Tecnologia

Cómo escribir facilmente un fichero Log en .NET Framework


Si necesitamos que nuestra aplicación en .NET escriba en un fichero Log, ¿para qué inventar la rueda? podemos hacer uso de las clases estáticas Trace y Debug del espacio de nombres System.Diagnostics. La primera clase generará salida sólo si compilamos la aplicación en modo Debug.

Estas dos clases comparten uno o varios listeners (agentes de escucha) por donde se escribirá la salida:

  • TextWriterTraceListener para escribir en un fichero físico.
  • EventLogTraceListener para escribir en el visor de eventos.
  • ConsoleTraceListener para escribir en la consola.

Por defecto Debug y Trace tienen un DefaultTraceListener.

DefaultTraceListener se puede eliminar con el elemento <clear>o <remove> en el fichero de configuración o llamando al método Clear en la propiedad Listeners de la clase Debug o Trace.

Los métodos mas importantes de Debug y Trace son:

  • WriteLine para escribir una linea de mensaje en los listeners.
  • WriteLineIf para escribir una linea de mensaje en los listeners si se cumple la condición.
  • Indent para añadir una sangria a la salida.
  • Unindent para eliminar una sangria.
  • Assert para comprobar una condición; si esta es false, muestra un cuadro de mensaje con la pila de llamadas.
  • Flush para vacíar el búfer.

Ejemplo 1. Por defecto DefaultTraceListener escribe en la ventana de resultados.

Debug.WriteLine("Esto es un mensaje en debug");
Trace.WriteLine("Esto es un mensaje en trace");
Debug.Flush();
Trace.Flush();

Si compilamos el ejemplo 1 como Release comprobaremos que no se produce la salida de Debug:

escribir facilmente un fichero Log en .NET Framework

Ejemplo 2. Anulación de DefaultTraceListener y redirección de la salida a la consola y a un fichero Log.

Debug.Listeners.Remove("Default");
TextWriterTraceListener logFile = new TextWriterTraceListener("c:/MiFicheroLog.log");
Trace.Listeners.Add(logFile);
ConsoleTraceListener logConsole = new ConsoleTraceListener();
Trace.Listeners.Add(logConsole);
Debug.WriteLine("Esto es un mensaje en debug");
Trace.WriteLine("Esto es un mensaje en trace");
Debug.Flush();
Trace.Flush();

Ejemplo 3. Una buena idea es hacer uso de la clase System.Diagnostics.Stopwatch cuando necesitamos dejar constancia en un Log de la duración de un proceso.

Trace.WriteLine("Inicio del proceso");
Stopwatch sw = Stopwatch.StartNew();
MiProceso();
sw.Stop();
Trace.WriteLine("Duración del proceso: " + sw.Elapsed.ToString());

Tambien se puede añadir o eliminar TraceListeners mediante el .config de la aplicación. De este modo no es necesario recompilar la aplicación.

Ejemplo 4. Anulación de DefaultTraceListener y redirección de la salida a un fichero Log.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
    <trace autoflush="false" indentsize="4">
      <listeners>
        <remove name="Default" />
        <add name="myListener"  type="System.Diagnostics.TextWriterTraceListener" initializeData="c:/MiFicheroLog.log" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

Referencias:
DefaultTraceListener (Clase)
[VS2010] “Hola Mundo” con Moles




Tecnologia

Cómo obtener la MAC con .NET Compact Framework


Queria obtener la MAC usando el .NET Compact Framework pero no existen ninguna función o clase en la librerias que permita esto. Como tampoco es posible hacer uso de WMI con .NET Compact Framework no queda otro remedio que llamar a la API ‘iphlpapi.dll’. Por suerte existen unas librerias llamadas Smart Device Framework de OpenNETCF Consulting que simplifican esta tarea. Tenemos suficiente con las Smart Device Framework Community Edition (Free).

El codigo de ejemplo para .NET Compact Framework 2.0 lo podeis bajar de aquí VerMac

Referencias    http://arjunachith.blogspot.com/2007/08/retrieving-mac-address-in-compact.html




Tecnologia

Cómo instalar NetBeans 6.9 en Ubuntu


1. Instalar Sun Java Development Kit (JDK) 6

Desde el gestor de paquetes Synaptic: Activar el repositorio «Configuración>Repositorios>Otro Software>Socios de canonical» y buscar el paquete sun-java6-sdk seleccionarlo y aplicar.

Desde la linea de comandos:

$ sudo apt-get install sun-java6-bin sun-java6-jdk sun-java6-jre

** Este punto es opcional porque en Ubuntu 10.10 viene instalada por defecto OpenJDK que es la versión opensource del compilador de Java y únicamente, si queremos instalar la privativa de Sun debemos realizar este paso. previamente debemos eliminar del sistema la opensource bien desde Synaptic o desde la línea de comandos con:

$ sudo aptitude remove –purge openjdk-6-jre
$ sudo aptitude remove openjdk-6-doc openjdk-6-jre-headless openjdk-6-jre-lib

2. Instalar NetBeans 6.9 desde Centro de Software de Ubuntu

3. Configurar NetBeans en Español

Al instalar NetBeans desde el Centro de Software de Ubuntu se instala en Ingles, para instalarlo en Español es necesario instalar un plugin. En «Herramientas>Complementos>Configuración» añadir un centro de actualización con la URL http://deadlock.netbeans.org/hudson/job/nb6.5-community-ml/lastSuccessfulBuild/artifact/l10n/nbms/community/catalog_all.xml.gz, una vez añadido seleccionar en «Herramientas>Complementos>Complementos disponibles» los complementos NetBeans 6.5 ** localization kit y activarlos. Reiniciar NetBeans. (mas información en este enlace)