viernes, 24 de febrero de 2012

Modificar un JPanel en tiempo de ejecucion

Esta aplicación demuestra como intercambiar el JPanel activo en un JFrame para crear el efecto de pestaña.

no es raro encontrarnos con la necesidad de modificar de forma dinámica el layout en un JFrame, y muchas veces nuestros componentes no responden como esperamos, en este ejemplo se muestran de forma simple los pequeños detalles que hacen la diferencia.




domingo, 12 de febrero de 2012

log4net apagar NHibernate Logging

cuando NHibernate escribe en tus archivos de log, miles y miles de lineas de mensajes de depuración, que al final te resultan inútiles, y solo ocultan otra información que es realmente importante. aqui dejo este pequeño segmento de xml, que permite parametrizar el nivel de detalle para el logging de NHibernate.

Configuracion Basica

<log4net> 
  <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    <file value="C:\logfile.txt" /> 
    <appendToFile value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" /> 
    </layout> 
  </appender> 
  <root> 
    <level value="DEBUG" /> 
    <appender-ref ref="FileAppender" /> 
  </root> 
</log4net>

lo que debemos hacer es agregar el siguiente segmento

<!-- ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
<logger name="NHibernate">
  <level value="ERROR" />
</logger>


y listo, NHibernate ya no llenara tus archivos de log con información irrelevante. a continuacion el ejemplo completo de como debe quedar la configuración, para recibir los mensajes de level DEBUG de todos los loggers, y solo dejar el de NHibernate al level ERROR

<log4net> 
  <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    <file value="C:\logfile.txt" /> 
    <appendToFile value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" /> 
    </layout> 
  </appender> 
  <!-- ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
  <logger name="NHibernate">
     <level value="ERROR" />
  </logger>
  <root> 
    <level value="DEBUG" /> 
    <appender-ref ref="FileAppender" /> 
  </root> 
</log4net>

martes, 7 de febrero de 2012

C# Como Descargar Archivos

A medida que nos van surgiendo los programas, nos encontramos con una cantidad variada de necesidades, una de las mas comunes es la Descarga de Archivos, cuando uno aprende a programar generalmente se enfoca en aprender a manejar archivos en el disco duro local, pero no esta de mas tener a la mano el pequeño fragmento de código que te permite bajar un archivo de Internet.

no es muy complicado, pero si muy poderoso.

namespace WebFileDownload
{
    class Program
    {
        static void Main(string[] args)
        {

            var cliente = new WebClient();

            cliente.Proxy = null;

            cliente.DownloadFile("http://www.google.com/robots.txt", "robots.txt");

            System.Diagnostics.Process.Start("robots.txt");

        }
    }
}