14 Temmuz 2009 – 18:04
Merhaba Arkadaşlar;
Bugünkü yazımda Silverlight 3.0 yeniliklerinde biri olan Network sınıfına değineceğiz. System.Net.NetworkInformation uzayında NetworkInterface ve NetworkChange isimli 2 sınıf geldi. NetworkInterface boolean tipinde değer döndürür ve o andaki network durumunu bize true veya false şeklinde geri döndürür. NetworkChange sınıfı ise network durumu değiştiği an çalışır. Şimdi örnekle açıklayalım;
Öncelikle yeni bir Silverlight 3.0 projesi açalım ve Kod bölümüne System.Net.NetworkInformation uzayını projemize ekleyelim.Eğer uzayı eklediğimiz halde sınıflara ulaşamıyorsak Solution Explorer bölümünden referans olarak System.Net ekleyerek sorunumuz çözülür.
Xaml kısmında durumu yansıtabileciğimiz bir tasarım oluşturalım;
<UserControl
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
x:Class=”Network.MainControl”
Width=”640″ Height=”480″>
<Grid x:Name=”LayoutRoot” Background=”White”>
<Ellipse x:Name=”yesil” Stroke=”#FF000000″ Height=”40″ HorizontalAlignment=”Left” Margin=”152,176,0,0″ VerticalAlignment=”Top” Width=”40″/>
<Ellipse x:Name=”kirmizi” Stroke=”#FF000000″ Height=”40″ HorizontalAlignment=”Left” Margin=”224,176,0,0″ VerticalAlignment=”Top” Width=”40″/>
<TextBlock Height=”16″ HorizontalAlignment=”Left” Margin=”176,136,0,0″ VerticalAlignment=”Top” Width=”56″ Text=”Bağlantım : “ TextWrapping=”Wrap”/>
</Grid>
</UserControl>
Şimdi kod bölümüne gelelim ve durumu kontrol edeceğimiz metotu yazalım;
private void kontrol()
{
if (NetworkInterface.GetIsNetworkAvailable())
yesil.Fill = new SolidColorBrush(Colors.Green);
else
kirmizi.Fill = new SolidColorBrush(Colors.Red);
}
Şimdide ilk çalıştığında ve durumda değişiklik olduğunda durumu gösterebilceğimiz Eventları oluşturalım.
public MainControl()
{
InitializeComponent();
NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);
this.Loaded += new RoutedEventHandler(MainControl_Loaded);
}
void MainControl_Loaded(object sender, RoutedEventArgs e)
{
kontrol();
}
void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
{
kontrol();
}
Network durum kontrolu bu kadar şimdi uygulamamızı test edelim.

Bir sonraki yazımda görüşmek üzere..
Uygulamayı aşağıdaki linkten indirebilirsiniz…
Network.rar (42,03 kb)