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