sobota, 26 lipca 2008

Silverlight 2 Beta 2 w praktyce - ciąg dalszy

Pragnę wspomnieć o kilku zagadnieniach związanych z Silverlight, którymi się ostatnio zajmowałem:

1. Definiowanie obiektów w XAML

Robiąc binding do obiektów CLR, czasami jest wygodnie zdefiniować ich instancje z odpowiednimi parametrami w XAML, zamiast w code-behind. Pokazane to zostało m.in w webcaście http://channel9.msdn.com/posts/mtaulty/Silverlight-Custom-Types-in-XAML/. W praktyce również zrobiłem podobny przykład, przy czym sam obiekt bez parametrów w XAML wygenerowałem za pomocą Expression Blend przy okazji tworzenia bindingu.

2. Templates

Stworzyłem szablon, który następnie podpiąłem do 2 przycisków. Tym razem efekt pracy w Expression Blend działał poprawnie w czasie run-time (w przeciwieństwie do mojej wcześniejszej próby). Obecnie działałem z SP1 do VS i prostszy szablon odnosił się do przycisku, a nie do panelu ... Czyżby miało to jakieś znaczenie?

3. Resources

Bardzo dobry webcast o umieszczaniu zasobów w aplikacjach Silverlight: http://channel9.msdn.com/posts/mtaulty/Silverlight-Resources-from-XAPDLLSite-Of-Origin/. Obrazek wchodzący w skład projektu Silverlight w VS możemy umieścić w:
- assembly aplikacji (w Properties VS: Build Action = Resource, URI = 'obrazek.jpg')
- poza assembly w archiwum aplikacji .xap (Build Action = Content, URI = '/obrazek.jpg')
- poza plikiem .xap w aplikacji webowej
- w assembly biblioteki, z której korzysta aplikacja (URI = '/[nazwa assembly];component/obrazek.jpg)
Przy wczytywaniu zasobów obowiązuje pewna kolejność: jeśli zasób nie zostanie odnaleziony w assembly i w archiwum .xap, to szukany jest w katalogu aplikacji webowej.

4. Upload i download za pomocą klasy WebClient

Te zagadnienia dobrze ilustrują webcasty: http://channel9.msdn.com/posts/mtaulty/Silverlight-Uploads-with-WebClient/ oraz
http://channel9.msdn.com/posts/mtaulty/Silverlight-Downloads-with-WebClient/. Przydatne metody i eventy klasy WebClient:
- przy operacji upload: OpenWriteAsync / UploadStringAsync, OnUploadProgressChanged, OnOpenWriteCompleted / OnUploadStringCompleted
- przy operacji download: OpenReadAsync / DownloadStringAsync, OnDownloadProgressChanged, OnOpenReadCompleted / OnDownloadStringCompleted

5. WCF

http://msdn.microsoft.com/en-us/library/cc197959(VS.95).aspx - ograniczenia w obsłudze bindingów i protokołów WS-*
http://silverlight.net/forums/p/17733/74019.aspx - sprawa korzystania z aplikacji webowej i serwisu WCF na tym samym komputerze (localhost i adres domenowy komputera nie są traktowane za tożsame, aplikacja webowa nie może być uruchamiana przez ścieżkę plikową tylko przez adres webowy)

c.d.n

Brak komentarzy: