[Ww.Web] SilverDark

Postanowiłem wziąć udział w konkursie Silverlighta (SL). Długo szukałem tematu. Po akademicku zacząłem w ostatniej chwili (czytaj: 2 dni temu). Poległem.

Czas pre-SL

WPFem zainteresowałem się gdzieś w początkach jego powstawania. Czekałem z zapoznaniem się z WPF tak naprawdę do czasu którejś z wersji Beta. Ciężka to była nauka, porównywalna chyba do nauki Flash 4. Do chwili obecnej napisałem 2-3 aplikacje, które są większe niż HelloWorld. Zderzyłem się z paroma problemami, zmieniłem sposób myślenia/oczekiwania co do pewnych komponentów WPF. Aktualnie uznaję WPF za dobrą alternatywę dla WinForms - może nie dla każdego zastosowania, lecz dla zdecydowanej ich większości. Potem pojawiły się informacje o WPF/E. Z nazwy oczekiwałem, iż będzie to taki WPF, ale na inne platformy.

"Lights, Camera, Action!"

Z oglądania kodu SL na blogach i w przykładach, wszystko wygląda fajnie, prosto i ładnie. Przykładowe aplikacje pokazują co można z tym zrobić. Myślałem, że zbieżność WPFa i SL będzie duża (w końcu pierwsza nazwa to WPF/E), i że za pomocą części wspólnej można tworzyć aplikacje WPF dobrze przenaszalne do SL. Och! Jaki ja bylem naiwny.

"Shileds up, weapons online"

Pojawia sie konkurs SL. Jest powód aby zapoznać się technologią. Najpierw wybór jaką aplikacje napiszę. Powstało wiele pomysłów: przeglądarka dokumentów (konwersja z DOCX,HTML,CHM,ect ->FlowDocument->XPS), dashboard z kilkoma elementami, smart tagi do HTMLa, itp. Zdecydowanym się w końcu na pierwszy pomysł - XPS reader. Pierwsze testy wykazały ze wystarczy z FixedPage wyrzucić kilka atrybutów i elementów i pozostanie część kompatybilna z XAMLem SL (okazało się że podobne podejście zastosował niejaki Delay). Potem zaczęły się kłopoty... Na przykład: jednym z ostatnich problemów jest niepoprawne parsowanie tekstu XAML. To znaczy ten sam tekst raz jest dobrze parsowany, a następnym razem zgłaszany jest wyjątek XamlParseException - co do znaku, co do bajtu ten sam tekst raz jest przetwarzany a raz nie.

Nastały mroczne czasy

Z końcu zrezygnowałem z udziału w konkursie. Na samą myśl o SL w tej chwili przychodzą mi na myśl w większości niecenzuralne określenia. Gdzieś, ktoś, kiedyś napisał ze SL to jeden ze sposobów na tworzenie aplikacji RIA - niestety według mnie w obecnym stanie wytworzenie nie trywialnej aplikacji wymaga samozaparcia i dużej ilości czasu.

Troche marudzenia

Dla osób które "programowały w HTMLu" budując za pomocą HTML/JavaScript niestandardowe elementy UI, spojrzenie na SL może wydawać się ożywczym zbawieniem! Większa szybkość, możliwości czy ujednolicenie API (żadnych CrossBrowser trików!) przyciąga. Ale na tym poziomie podobną funkcjonalność oferuje Flash (chyba? Niestety przestałem interesować się tą technologią gdzieś w okolicach wersji 6 lub 7). Zaletą SL wobec Flash jest prawdopodobnie brak naleciałości z poprzednich wersji jako ze jest to pierwsza wersja.

Z drugiej strony dla osoby która poznała najpierw WPF, a teraz próbuje użyć SL to coś z pogranicza koszmaru i komedii. Koszmarem jest samo programowanie, szukanie dokumentacji, debugowanie aplikacji i dochodzenie, czy problem leży po stronie programisty czy błędu w SL. Komedią jest literka R ze skrótu (RIA) - w wersji "z pudełka" mamy dostęp do 5 głównych kontrolek/elementów: Canvas, Image, TextBlock, Glyphs i Shape (wraz z pochodnymi). W Toolkicie są dodatkowe kontrolki, które niestety się "rozjeżdżają", mają nieintuicyjne API, ale przynajmniej są. Zgadam się, że do zrobienia sprawnie "aplikacji" zegarek, odtwarzacz filmików bądź "flashowe menu" w zupełności wystarczy. Aby zrobić cos bardziej użytecznego/zaawansowanego, trzeba włożyć w to dużo pracy.

Po tym pierwszym spotkaniu SL odkładam na półkę z rzeczami nie używanymi. Zresztą sam MS widzi potrzebę re ewaluacji tego produktu jako że 1.1 jest zawieszony i będzie kontynuowany jako 2.0 z poszerzonym zakresem funkcjonalności. Może wrócę do tego produktu, ale nie wcześniej niż udokumentowana, późna wersja Beta.

Opublikowane 24 stycznia 08 01:29 przez Wojciech Gebczyk

Komentarze:

# nuwanda said on stycznia 24, 2008 15:22:

Eh trzeba się przyznać... też poległem. Chciałem spróbować swoich sił na nowym polu, dałem sobie dwa tygodnie jeszcze w starym roku, ale nic z tego nie wyszło. Może uda się w następnym konkursie po wersji SL 2.0...

# Wojciech Gebczyk said on stycznia 24, 2008 17:03:

Napisz czemu nie wyszło. Brak czasu? Technologia? Przyda się na przyszłość. :-)

Komentarze anonimowe wyłączone

About Wojciech Gebczyk

Code Sculptor.