poniedziałek, 6 października 2008

Silverlight 2 RC 0

Bez wątpienia najważniejszą nowością z września tego roku jest Silverlight 2 RC0.  Aby nie dublować newsów, powiem że dość wyczerpujące informacje są na stronie http://silverlight.net/GetStarted/sl2rc0.aspx oraz na umieszczonych na niej linkach.   Jeśli chodzi o dokumentację do tej wersji, to nie ma jej on-line, ale na jednym z blogów został umieszczony link do pliku .chm. Dla miłośników narzędzia Deep Zoom Composer zostały wydane nowe szablony, które po rozpakowaniu trzeba skopiować do katalogu z plikami aplikacji -;)

 sl-rc0-new-controls1untitledX

Oprócz wielu licznych mniejszych zmian, są i te większe: nowe kontrolki (ComboBox, ProgressBar, PasswordBox) oraz możliwość wyświetlania MessageBox' ów, nowe domyślne szablony dla wszystkich kontrolek, nieco inny sposób renderowania. Jak zapowiada  ScottGu na swoim blogu, w planach jest udostępnienie w ciągu następnych paru miesiący dodatkowych kontrolek i funkcjonalności na bazie Silverlight 2 oraz zorganizowanie galerii z alternatywnymi skórkami dla kontrolek.

Miałem już okazję zgłębić dość szczegółowo zmiany pomiędzy Silverlight 2 Beta 2 a RC0, gdy migrowałem swoją aplikację do nowszej wersji SL.  Jeśli jest ktoś zainteresowany, zapraszam do przeczytania mojego posta na ten temat.

piątek, 29 sierpnia 2008

Lato 2008 - nowości

Mamy już koniec sierpnia, więc zrobię krótkie podsumowanie letnich nowości Microsoftu. IMHO najbardziej istotne były:

16-07-2008
ASP.NET MVC Preview 4

21-07-2008
ASP.NET AJAX 4.0 Preview 1

06-08-2008
SQL Server 2008 RTM

11-08-2008
.NET 3.5 SP 1 + Visual Studio 2008 SP 1
Silverlight Tools Beta 2 for Visual Studio 2008 (aktualizacja dla SP1)
WPF Toolkit - Preview

27-08-2008
Internet Explorer 8 Beta 2

29-08-2008
ASP.NET MVC Preview 5

A tymczasem stosunkowo w niedługim czasie powinien pojawić się Silverlight 2 RTW ...

środa, 6 sierpnia 2008

Galeria moich zdjęć w nowym Deep Zoom Composer !


Pozwoliłem sobie skorzystać z najnowszej wersji programu Deep Zoom Composer i opublikować kilka swoich zdjęć w sieci. Zagadka - ile zdjęć ukryłem we frontowym zdjęciu? (patrz uważnie na puszkę piwa!). Więcej informacji można znaleźć tutaj.

wtorek, 29 lipca 2008

Drugi blog

Od dzisiaj zaczynam prowadzić drugiego bloga po angielsku, w którym zamierzam opisywać konkretne sprawy związane z aktualnie badaną przeze mnie technologią (aktualnie Silverlight). W moim założeniu ma to być blog typowo techniczny.

Natomiast w polskim blogu zamierzam kontynuować ciekawostki dotyczące różnych nowych technologii oraz komentować rzeczywistość ze świata IT.

Polskiemu i angielskiemu blogowi nadałem nowy ujednolicony wygląd.

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

środa, 23 lipca 2008

Silverlight 2 Beta 2 w praktyce - ciąg dalszy

Kilka zagadnień, z którymi ostatnio miałem doczynienia:

1. The project type is not supported by this installation - gdy zainstalowałem narzędzia do Silverlight'a na maszynie z Visual Studio 2008 z SP1 (beta), to przy próbie otwarcia jakiekolwiek projektu VS konsekwentnie informował, że nie obsługuje takiego rodzaju projektu lub że referencja na obiekt jest nullem (!). Pomogło zresetowanie ustawień Visual Studio z linii komend.
http://www.microsoft.com/silverlight/resources/readme.aspx?v=2.0

2. Pobieranie bibliotek z kontrolkami na żądanie - przydatne, gdy:
- chcemy współdzielić kontrolki w różnych aplikacjach
- ze względów wydajnościowych, by ładować tylko potrzebne kontrolki, a pozostałe dociągać i ładować w razie potrzeby

Do projektu biblioteki pobieranej na żądanie umieszcza się referencję w taki sam sposób jak do biblioteki, która ma być powiązana w sposób statyczny. Jedyna różnica polega na tym, że we właściwościach referencji trzeba:
- w Visual Studio: propercję Copy Local ustawić na false
- w MSBuild: propercję Private ustawić na false
Wtedy assembly biblioteki nie zostanie włączone do archiwum .xap aplikacji.

http://msdn.microsoft.com/en-us/library/cc296243(VS.95).aspx. Zasugerowany podanym tu przykładem byłem przekonany, że biblioteki z kontrolkami należy pakować do archiwum .xap. Jednak jedynie projekt Silverlight Application pozawala na pakowanie do .xap, projekt Silverlight Class Library na to nie pozwala (nie pozwala też na linkowanie do aplikacji webowej za pomocą Visual Studio). Natrafiłem na stronę http://geekswithblogs.net/lbugnion/archive/2008/04/16/silverlight-packing-user-controls-in-separate-assemblies.aspx, gdzie autor umieszczał kontrolki w projekcie Silverlight Application po wyrzuceniu z niego niektórych plików. Ten pomysł w obecnym wydaniu Silverlight się nie sprawdził, co prawda strumień z .xap był odczytywany, ale ładowanie assembly kończyło się u mnie niepowodzeniem... Wtedy w adresie URI (parametr metody OpenReadAsync klasy WebClient) zamiast adresu do pliku .xap dałem adres do pliku .dll i ... zadziałało!

W obejrzanym przeze mnie później (niestety!) webcaście o dynamicznym ładowaniu bibliotek również w URI jest podawana ścieżka do pliku .dll, skopiowanego ręcznie do katalogu ClientBin aplikacji webowej.

3. W aplikacjach Windows mamy MessageBox, a co mamy w Silverlight?

HtmlPage.Windows.Alert('Message')

4. Jakiś czas temu pisałem o problemie z dodaniem referencji do serwisu WCF w Visual Studio. Gdy teraz korzystałem z Visual Studio 2008 z SP1 (beta) ten problem nie wystąpił.

Książka o Silverlight 2 (beta 2) już sprzedaży !

Laurence Moroney Introducing Microsoft Silverlight 2.0