Dziś chciałbym przedstawić sposób dostępu aplikacji Silverlight (klient) do zasobów umieszczonych na serwerze.
Za to zadanie odpowiada klasa WebClient znajdująca się w przestrzeni nazw System.Net
Oto przykład:
private void LoadImageFromServer()
{
this.wcImg = new WebClient();
this.wcImg.OpenReadAsync(new Uri("../AppData/picture.jpg"),UriKind.RelativeOrAbsolute));
this.wcImg.OpenReadCompleted += delegate(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
using (Stream stream = e.Result)
{
var image = new BitmapImage();
image.SetSource(stream);
Dispatcher.BeginInvoke(() =>
{
this.picPhoto.Source = image;
this.picPhoto.Width = image.PixelWidth;
this.picPhoto.Height = image.PixelHeight;
});
}
}
};
this.wcImg.DownloadProgressChanged += delegate(object sender,DownloadProgressChangedEventArgs e)
{
this.txtPercentageLoaded.Text = e.ProgressPercentage + "%";
};
}
Program pobiera zdjęcie z katalogu AppData zamieszczonego w katalogu wirtualnym aplikacji.
Nic nie zostai na przeszkodzie by zamieścić wszystkie pliki graficzne bezpośrednio w projekcie Silverlight, jednakże należy pamiętać, że postępując w ten sposób, zwiększamy rozmiar naszego pliku XAP czego chcieliśmy uniknąć.
Powyższy sposób pozwala nam na utrzymanie optymalnego rozmiaru pliku XAP co jest równoważne z szybszym ściągnięciem go na maszynę kliencką oraz pozwala nam na swego rodzaju dynamikę tzn. możemy upload'ować pliki na serwer i mieć od razu do nich dostęp z poziomu aplikacji Silverlight.
Brak komentarzy:
Prześlij komentarz