Rodrigo Díaz Concha

Silverlight 3 y 4 en Español. Este sitio se ha movido.

Ir a rdiazconcha.com

Silverlight 3 Beta 1: Conciencia de Conexión

Silverlight 3 Beta 1:  Conciencia de Conexión

El nuevo espacio de nombres System.Net.NetworkInformation de Silverlight, incorporado en Silverlight 3 Beta 1 nos permite implementar una funcionalidad de “conciencia” de conexión en nuestras aplicaciones, esto es, saber en un momento dado si la aplicación está ejecutándose en un ambiente conectado o ha perdido la conexión; para poder determinar un comportamiento correcto en cada uno de esos escenarios.  Esta funcionalidad nos sirve tanto para aplicaciones que se estén ejecutando dentro del Navegador como en aplicaciones Fuera del Navegador, es por eso que dejé este tema como un artículo por separado (ver el artículo Silverlight 3 Beta 1:  Fuera del Navegador para más información al respecto de este tipo de aplicativos).

Clase NetworkInterface

Esta clase abstracta incluye el método estático GetIsNetworkAvailable(), el cual nos indica si hay una conexión de red o no.

Es muy importate mencionar que este método NO indica si hay una conexión a Internet, es decir, no está directamente relacionado una conexión de red disponible a una conexión en Internet efectivamente.  Una manera para conocer si tenemos una conexión a Internet es hacer ping a un sitio conocido y con alta disponibilidad (ejemplo: www.microsoft.com, o www.yahoo.com) y/o utilizar las clase WebClient para descargar un archivo conocido en nuestro servidor donde esté hospedada la aplicación, por ejemplo: un archivo de texto pequeño que podamos descargar y leer para determinar si efectivamente tuvimos acceso a través de Internet.

El siguiente fragmento de código muestra cómo podemos utilizar NetworkInterface.GetIsNetworkAvailable() para determinar si tenemos una conexión de red:

public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();
 
        btn.Click += (s, a) =>
        {
            txt.Text = NetworkInterface.GetIsNetworkAvailable().ToString();
        };
    }
}

Clase NetworkChange

Un paso más adelante en esta funcionalidad está la clase NetworkChange la cual incluye el evento NetworkAddressChanged

Lee todo el artículo completo en mi blog

Comments

No Comments

Leave a Comment

(required) 

(required) 

(optional)

(required) 


Protected by FormShield
Refresh
Listen
Please enter the characters shown on the image


Code: