Silverlight 2

Silverlight 2 Microsoftu jest środowiskiem międzyplatformowym, które pozwala uruchamiać w witrynach internetowych zawartość multimedialną oraz tworzyć aplikacje typu RIA. Czy wnosi na tyle dużo ciekawych nowości i zmian, że poradzi sobie z wszechobecnym na rynku Flashem?


Silverlight 2 Microsoftu jest środowiskiem międzyplatformowym, które pozwala uruchamiać w witrynach internetowych zawartość multimedialną oraz tworzyć aplikacje typu RIA. Czy wnosi na tyle dużo ciekawych nowości i zmian, że poradzi sobie z wszechobecnym na rynku Flashem?

Internet cały czas ewoluuje. Zmienia się podejście do pisania aplikacji webowych oraz wyświetlania informacji czy elementów multimedialnych na stronach. Deweloperzy poszukują rozwiązań, które zapewnią im jak najprostsze, a zarazem efektowne możliwości prezentacji. Na tym polu najpopularniejszym środowiskiem jest Flash, stworzony przez firmę Macromedia, a rozwijany dalej przez Adobe. Microsoft, który chce zaznaczyć swą obecność w każdym z możliwych segmentów rynku IT, postanowił wypowiedzieć wojnę Flashowi, czego finałem okazało się opracowanie własnego rozwiązania tego typu - platformy Silverlight.

Silverlight 2

Witryna poświęcona platformie Silverlight - stworzona oczywiście w oparciu o Silverlighta

Pierwszą, stabilną wersję środowiska Silverlight pokazano we wrześniu 2007 roku. Od razu nowa technologia Microsoftu została postrzeżona przez deweloperów, jako zagrożenie dla Flasha. Silverlight 1.0, znany także jako WPF/E (Windows Presentation Foundation/Everywhere) nie mógł jednak wtedy rywalizować z ciągle rozwijającym się produktem ze stajni Adobe. Powodem tego było m.in. zbyt małe wsparcie firm trzecich oraz ogromna popularność Flasha. Produkt Microsoftu stanowił wtedy jedynie ciekawą alternatywę, ale nie wnosił zbyt wiele do tworzenia stron.

Zaraz po premierze pierwszej odsłony Silverlighta firma intensywnie kontynuowała prace nad kolejną wersją środowiska, a rozpoczęte one zostały już wcześniej, przed oficjalną premierą "jedynki". Microsoft zmienił wkrótce oficjalną nazwę technologii z 1.1 na 2.0, ponieważ wprowadzono do niej wiele nowości - już pierwsza beta, udostępniona na początku 2008 roku, pokazała szereg innowacji i udoskonaleń.

Druga wersja testowa to już prawie kompletny zestaw narzędzi i nowych technologii, oddany w ręce zainteresowanych w czerwcu zeszłego roku. Warto wspomnieć, że witryna ubiegłorocznych Igrzysk Olimpijskich w Pekinie została stworzona właśnie w oparciu o Silverlight 2.0 beta 2.

Pełny atak Microsoftu skierowany przeciwko Flashowi, nastąpił jednak dopiero w październiku 2008 roku, kiedy to firma przedstawiła światu finalną wersję Silverlighta 2.0 i podała do wiadomości publicznej harmonogram dalszego rozwoju produktu.

Czym jest Silverlight?

Po pierwsze, powinniśmy odpowiedzieć sobie na pytanie czym jest Silverlight, a czym platforma Microsoftu z pewnością nie jest. Silverlight jest dodatkiem do przeglądarki internetowej. Plugin udostępniony został zarówno dla platformy Windows, jak i Mac OS X, dla programów Internet Explorer, Mozilla Firefox, Safari - wkrótce powinna zostać udostępniona wtyczka dla Google Chrome. Pełna lista obsługiwanych środowisk i przeglądarek znajduje się w tabeli obok.

Brak niestety wsparcia dla Linuksa, choć tym problemem zajęła się już społeczność wolnego oprogramowania (patrz ramka obok).

Moonlight - Silverlight dla Linuksa

Moonlight jest adaptacją środowiska Silverlight do Linuksa. Prace nad prototypem rozpoczęły się podczas konferencji MIX07, poświęconej standardom webowym. Tuż po wydaniu Silverlighta 1.0 Microsoft rozpoczął współpracę z programistami firmy Novell nad linuksową wersją alternatywy Flasha. Owocem współpracy stał się Moonlight, bazujący na języku Mono - wolnej implementacji .NET. Środowisko jest całkowicie wolne i podlega postanowieniom licencji GNU LGPLv2.

Moonlight znajduje się obecnie w fazie rozwojowej beta (w grudniu zeszłego roku udostępniono pierwszą wersję testową) i wydany został w postaci rozszerzenia dla przeglądarki Firefox. Środowisko zawiera własny silnik renderujący JavaScript i dostępny jest zarówno na platformę 32-bitową, jak i x86-64. Moonlight nie jest w pełni zgodny z Silverlightem 2.0, pierwsza wersja alpha, która zapewni pełną kompatybilność, ma zostać udostępniona w marcu br.

Silverlight 2

Obsługiwane systemy i przeglądarki internetowe

Silverlight jest bezpłatny. Microsoft udostępnił technologię całkowicie za darmo. Rozszerzenie do przeglądarek internetowych jest darmowe, podobnie jak narzędzia, biblioteki, dokumenty i dodatki, pozwalające deweloperom tworzyć aplikacje webowe i witryny zgodne z platformą.

Wśród najważniejszych cech Silverlighta wymienić należy: obsługę przy użyciu "lekkiej" wtyczki, której pobranie i instalacja zajmują kilka chwil, możliwość strumieniowego odtwarzania materiałów audio i wideo (także HD w rozdzielczości 720p), umieszczanych w witrynach internetowych, zaawansowane narzędzia do prezentowania zdjęć i możliwość selektywnego odświeżania elementów webowych, bez potrzeby przeładowywania całej strony.

Silverlight 2 nie jest natomiast nowym językiem programowania stron, ani aplikacji webowych. Bazuje na nowych technologiach, ale oparty został o platformę .NET i pozwala jedynie rozszerzać zawartość witryn i aplikacji webowych o nową funkcjonalność.

Zmiany, zmiany, zmiany...

Silverlight 2, w stosunku do pierwszej odsłony środowiska, wnosi wiele znaczących nowości i usprawnień. Według Microsoftu, możliwości oferowane przez "dwójkę" są około trzykrotnie większe, jeśli porównamy je z Silverlightem 1.0. Obok znajduje się tabela, która jest zestawieniem możliwości obu środowisk.

Silverlight 2

Porównanie możliwości Silverlighta 1.0 i 2.0

Silverlight 2 wspiera WPF, nowy model API i silnik graficzny, zaimplementowany po raz pierwszy w Windows Vista, który jest całkowicie zgodny z XAML (Extensible Application Markup Language). Dzięki tej technologii programiści mogą przygotowywać witryny z elementami graficznymi, które znamy z Visty (np. przezroczystość czy przenikanie). XAML zapewnia łatwe łączenie elementów graficznych w całość, bez potrzeby ingerencji w kod HTML. Natomiast rozszerzenia JavaScriptu pozwalają wykorzystywać elementy WPF w połączeniu z uniwersalnym językiem skryptowym przeglądarek.

Kolejną istotną cechą Silverlighta 2 jest możliwość łatwiejszej integracji z projektami, opartymi na kodzie JavaScriptu czy Ajaksie. Platforma Microsoftu zawiera rozszerzenia, które pozwalają "scalić" się z istniejącymi witrynami internetowymi, tym samym nie jest wymagane tworzenie strony od podstaw. Podobnie rzecz ma się z aplikacjami webowymi. Oczywiście Silverlight 2.0 wspiera także aplikacje i strony bazujące na pierwszej wersji platformy. Oznacza to, że musisz jedynie zainstalować w przeglądarce najnowsze rozszerzenie, a zawartość bazująca na Silverlight 1.0 zostanie wyświetlona poprawnie.

Zaimplementowano nowy model szablonów - Visual State Manager, pozwalający łatwiej nakładać elementy graficzne na kontrolki. Same kontrolki przeniesiono do odosobnionego środowiska uruchomieniowego, co znacznie ułatwia projektowanie stron. Dodano także nowe opcje, jak zawijanie tekstu czy sortowanie (moduł DataGrid).

Istotnych zmian doczekała się obsługa sieci. Po pierwsze, usprawniono wsparcie dla CrossDomain, protokołów REST i SOAP, wątków i mechanizmów bezpieczeństwa. Dodano opcje uploadu dla usługi WebClient oraz obsługę połączeń dla komunikacji dupleksowej i LINQ. To tylko niektóre zmiany sprawiające, że praca z Silverlightem w Internecie jest wygodniejsza.

Dokonano kilku istotnych ulepszeń w interfejsie użytkownika. Wymieńmy choćby lepszą obsługę animacji, błędów konsoli oraz usprawnienia dotyczące wejść z klawiatury i myszy czy nowości wprowadzone z myślą o niepełnosprawnych. Zautomatyzowano także wiele procesów.

Usprawniono obsługę usług danych ADO.NET, dodano wsparcie dla języków innych, niż ASP.NET, w tym C#, Visual Basic.NET czy języków dynamicznych DLR (Dynamic Language Runtime) - Iron Ruby oraz Iron Python.

DeepZoom - fotogalerie w skali makro

Silverlight 2

Witryna HardRock Memorabilia - przykład zastosowania rewolucyjnej technologii prezentowania zdjęć - DeepZoom

Jedną z największych innowacji w "dwójce" jest technologia DeepZoom, będąca implementacją Seadragon (wykorzystana m.in. w programie Photosynth) dla aplikacji Silverlight. Technologia wprowadza nowy, oparty na XML-u, format kafelków. W praktyce, dla przeciętnego użytkownika, oznacza to możliwość obracania, przybliżania i powiększania fotografii wysokiej jakości. DeepZoom znacznie przyspiesza ładowanie się kolekcji zdjęć na urządzeniach mobilnych, gdyż wyświetlane są tylko elementy w danej chwili zaznaczone. Jednym z najlepszych przykładów wykorzystania tej technologii jest witryna HardRock Memorabilia (http://www.memorabilia.hardrock.com ). Warto dodać, że dla DeepZoom zaimplementowano funkcję, która pozwala przekształcać dostępne bazy kafelków na te, które są zgodne z nową technologią - opcja MultiScaleTileSource.