jueves, 27 de septiembre de 2007

Smart Clients Connection Monitor

La semana pasada tuve la oportunidad de asistir a una charla informativa en el paseo "La Plaza" en Buenos Aires acerca de las nuevas tecnologías de Microsoft. Si bien los temas eran más bien conocidos el nivel de los presentadores no podría haber sido mejor: Matías Wolosky, Diego Gonzalez, Rodolfo Finochietti, Angel "Java" Lopez y Martín Salías (a quien agradezco haberme conseguido un lugar en el evento). Con la presentación de Ezequiel Glinsky, entre todos los temas interesantes (WPF, AJAX, Silverlight, LINQ, Smart Clients) fue este último justamente el qué más me llamó la atención, tema abordado por Marías Wolosky de manera impecable y muy amena. Matías mostró una aplicación que utilizaba WPF y funcionaba en el cliente pero se sincronizaba con un web service, bien, tuve la curiosidad de descargar el código de dicha aplicación y me encontré con las librerías de Smart Clientes de Patterns & Practices (dicho sea de paso grupo del cual Matías forma parte), este librería está pensada para ayudar al desarrollo de clientes inteligentes, y tiene un pequeño arsenal de utilidades, en esta oportunidad voy a explicar un poco el ConnectionMonitor.

 

ConnectionMonitor

 

Esta clase nos permite verificar el estado de una conexión remota o local configurando su comportamiento desde el archivo de configuración de la aplicación (siguiente la filosofía de WCF), vamos a ver un ejemplo Verificar el estado de un sitio web

Si necesitamos verificar el estado de, digamos, slashdot (para hacerlo bien geek) tenemos que configurar el archivo del siguiente modo:

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="ConnectionMonitor" type="Microsoft.Practices.SmartClient.ConnectionMonitor.Configuration.ConnectionSettingsSection, Microsoft.Practices.SmartClient.ConnectionMonitor" />
    </configSections>
    <ConnectionMonitor>
        <Connections>
            <add Type="DesktopConnection" Price="0"/>
        </Connections>
        <Networks StrategyType="Microsoft.Practices.SmartClient.ConnectionMonitor.HttpPingStatusStrategy, Microsoft.Practices.SmartClient.ConnectionMonitor">
            <add Name="Local" Address="http://slashdot.org"/>
        </Networks>
    </ConnectionMonitor>
</configuration>

 

 

Y el código sería este.:

 

    public class Class1
    {
        ConnectionMonitor monitor;
        Timer timer = new Timer(1000);
 
        static void Main(string[] args)
        {
            Class1 c = new Class1();            
            c.Test();
            Console.ReadLine();
        }
        private void Test()
        {
            monitor = ConnectionMonitorFactory.CreateFromConfiguration();
            timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
            timer.Enabled = true;
        }
 
        void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            timer.Enabled = false;
            monitor.Networks.UpdateStatus();
            Console.WriteLine("Conectado {0}", monitor.IsConnected);
            timer.Enabled = true;
        }
    }

 

 

Explicaciones obvias aparte, es todo, gracias a la comunidad y a la gente de P&P. Hasta la próxima.

1 comentario:

Admirador dijo...

cómo puedo descargarlo completo por favor señor ???

gracias