ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA ELEKTROTECHNICKÁ Katedra počítačové grafiky a interakce
Bakalářská práce
Silverlight jako platforma nejen pro internetové prezentace Petr Hejduk
Vedoucí práce: Ing. Jan Buriánek
Studijní program: Softwarové technologie a management Obor: Web a multimédia Leden 2010
|ii
Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
Abstrakt Cílem práce je zhodnotit platformu Silverlight z pohledu programování, tvorby obsahu a porovnat ji s ostatními podobně zaměřenými platformami na trhu. Dále pak v technologii Silverlight vytvořit internetovou prezentaci demonstrující hlavní inovativní prvky technologie a následně na ní otestovat multi-platformovost řešení.
Abstract The aim of the thesis is to evaluate the Silverlight platform in terms of programming, content creation and compare it with other similar platforms in the market. Furthermore, create a web presentation demonstrating the main innovative features of the technology and subsequently testing multi-platform of this solution.
12. Závěr ............................................................................................................................................. 50 Slovník pojmů ........................................................................................................................................ 51 Literatura a ostatní zdroje ..................................................................................................................... 53 Příloha A – ukázky z vytvořené aplikace ................................................................................................ 55 Příloha B – obsah přiloženého datového média ................................................................................... 65
|viii
Seznam Obrázků Obrázek 1- Instalace plug-inu MS Silverlight 3 v OS Windows Vista ..................................................... 10 Obrázek 2 - Úvodní obrazovka při vytváření Silverlight projektu v programu Expression Blend 3....... 11 Obrázek 3 – Struktura Silverlight aplikace............................................................................................. 12 Obrázek 4 - Mozilla Prism, Instalace webové stránky ........................................................................... 34 Obrázek 5 - Příklad využití Mozilly Prism jako webmailové aplikace .................................................... 35 Obrázek 6 - Instalace plug-inu Silverlight na Mac OS ............................................................................ 44 Obrázek 7 - Instalace plug-inu Silverlight na systému Linux Ubuntu v prohlížeči Mozilla Firefox ........ 45 Obrázek 8 - Chybné zobrazení hlavní stránky v Mozilla Firefox 3.5.5, OS Linux Ubuntu 9.10 .............. 46 Obrázek 9 - Chybné zobrazení hlavní stránky v Mozilla Firefox 3.5.5, OS Linux Ubuntu 9.10 č.2 ........ 47 Obrázek 10 - Zobrazení aplikace "Object Transform" v Mozilla Firefox 3.5.5, OS Linux Ubuntu 9.10.. 48 Obrázek 11 - Využití CPU ....................................................................................................................... 49
Seznam tabulek Tabulka 1 - Shrnutí rozdílů Silverlight / Flash ........................................................................................ 22 Tabulka 2 - Testování multi-platformovosti OS Win XP ........................................................................ 42 Tabulka 3 - Testování multi-platformovosti OS Win Vista .................................................................... 42 Tabulka 4 - Testování multi-platformovosti OS Win 7 .......................................................................... 43 Tabulka 5 - Testování multi-platformovosti OS Mac ............................................................................. 43 Tabulka 6 - Testování multi-platformovosti OS Linux Debian ............................................................... 44 Tabulka 7 - Testování multi-platformovosti OS Linux Ubuntu .............................................................. 45 Tabulka 8 - Testování multi-platformovosti OS Linux Ubuntu "Karmic Koala" ..................................... 46
Seznam grafů Graf 1- Silverlight vs. Flash, Časová náročnost implementace, zdroj: www.shinedraw.com ............... 26 Graf 2 - Silverlight vs. Flash, Časová náročnost implementace podle kategorií, zdroj: www.shinedraw.com ............................................................................................................................ 27
|ix
|x
1. Úvod Webové aplikace jsou v současné době velmi rozmanité. V ideálním případě by každá aplikace měla mít stabilní uživatelské rozhraní s mnoha funkcemi a měla by být dostupná prostřednictvím jakéhokoli prohlížeče. O dosažení tohoto ideálu se snaží řada technologií. Existuje jich nepřeberné množství a všechny se snaží něčím zaujmout, přinést v nějakém ohledu lepší možnosti. Technologie Microsoft Silverlight z tohoto pohledu nevybočuje z řady. Také se snaží zaujmout, ovšem způsob, jakým se jí to podařilo, překonala všechny dosud známé technologie. Lze říci, že se jedná o revoluční platformu, která je čím dál častěji vyhledávána a jejím prostřednictví jsou realizovány jak standardní, tak i dříve neproveditelné projekty. Cílem této práce je přiblížit možnosti této technologie, zhodnotit platformu Silverlight z pohledu programování, tvorby obsahu a multi-platformovosti a porovnat ji s ostatními podobně zaměřenými platformami na trhu. Pro ověření nově nabytých zkušeností vytvořím webovou prezentaci, která bude demonstrovat některé unikátní prvky. Vytvořenou aplikaci otestuji na různých operačních systémech i prohlížečích. Průběžně Vás v této práci seznámím se strukturou Silverlight aplikace, s její historií, s inovacemi, které přináší, s vývojovými nástroji pro tvorbu a přiblížím Vám šíři potenciálu této moderní technologie. Po přečtení práce budete mít jasný obrázek o tom, co tato technologie dokáže a v čem spočívají její výhody i nedostatky.
|1
2. Co je Silverlight Silverlight je platforma pro tvorbu multimediálního dynamického obsahu. Jde o jedno z nejpokročilejších dostupných řešení pro tvorbu a distribuci dynamických aplikací prostřednictvím webového prohlížeče a dokonce i mimo něj. Silverlight, po instalaci zásuvného modulu (plug-inu), zajistí spuštění grafické aplikace na straně klienta. Pracuje obdobným způsobem jako v současnosti nejrozšířenější nástroj pro multimediální internetové aplikace Adobe Flash.
Platforma Silverlight je založená na technologii WPF (Windows Presentation Foundation), což je technologie, která důsledně odděluje vzhled aplikace a její funkčnost. S technologií WPF se můžeme setkat například i u systémů jako jsou Windows Vista, Windows 7 nebo Windows Server 2008. Stejně tak jako WPF i Silverlight využívá programovacích jazyků ze skupiny .NET. Velmi důležitou vlastností je fakt, že u Silverlightu je použit deklarativní značkovací jazyk XAML (Extensible Application Markup Language), který kromě vzhledu uživatelského rozhraní může popisovat například i animace a vazbu na data.
Silverlight má vedle řady běžných funkcí pro grafiku, animace, práci s daty, atd., také několik revolučních novinek jako je například přehrávání videí ve vysokém rozlišení, detailní přiblížení obrázků (DeepZoom), klávesové zkratky, funkce typu Drag&Drop, podporu kontextové nápovědy nebo právě možnost odpoutání od webového prohlížeče. Prostřednictvím vývojových nástrojů Microsoft Visual Studio nebo Microsoft Expression Studio poskytuje celou řadu vestavěných ovládacích prvků (Button,TextBox, ScrollViewer atp.), které si můžeme po grafické stránce snadno editovat a přizpůsobit svým představám. Samozřejmostí je komunikace se serverem v podobě dotazů například na webové služby, které poskytnou data podle volby uživatele. Výsledkem tak může být velmi dobře graficky i technicky zpracovaná a snadno ovladatelná aplikace.
Takové aplikace splňující nejvyšší možné nároky na komplexnost grafického rozhraní, uživatelsky přívětivého chování, komfortu funkcí a možnostmi odpovídajícím spíše klasickému desktopovému řešení jsou označovány jako Rich Internet Application zkráceně RIA neboli obsahově bohaté aplikace.
|2
Může se zdát, že taková obsahově bohatá aplikace bude hodně náročná na procesor, ale realita je jiná. Většina dnešních internetových aplikací (např. Flash) je zpracovávána procesorem, zatím co jedna z nejdražších částí počítače - grafická karta je nevyužitá. Ale Silverlight, potažmo WPF aplikace běží na DirectX vrstvě, takže WPF aplikace jsou renderovány na grafické kartě a tím se podstatně ulehčuje procesoru počítače.
|3
3. Historie technologie Silverlight Microsoft Silverlight je technologie poměrně nová, vznikla v roce 2007, a přesto se velmi brzy dočkala řady inovací. V současné době je k dispozici již třetí verze této platformy. Na konci listopadu 2009 byla navíc uvedena první betaverze Silverlightu 4, která by měla být oficiálně představena v březnu 2010 na konferenci MIX 10. V následujícím přehledu jsou chronologicky uvedeny všechny dostupné verze s jejich nejdůležitějšími vlastnostmi.
3.1.
Silverlight verze1 V září 2007 Microsoft uveřejnil multimediální rozšíření Silverlight 1.0 a zároveň oznámil spolupráci se společností Novell na zpřístupnění tohoto produktu uživatelům operačních systémů založených na platformě Linux. Tato technologie podporující linuxové systémy vychází z projektu mono-project.com a nese název Moonlight.
Microsoft si spoluprací
se společností Novell klade za cíl umožnit svým zákazníkům, aby jejich řešení založená na platformě Silverlight oslovila co nejširší okruh zájemců.
Silverlight 1.0. používal jako programovací jazyk pro aplikační logiku Javascript, což znamenalo poměrně velké omezení pro programátory. Tohoto si byli v Microsoftu vědomi a velmi brzy po jeho uvedení, byl nastíněn další krok kupředu, kterou byla podpora programovacích jazyků ze skupiny .NET v další verzi. Základní vlastnosti této verze jsou: •
2D Grafika a Obrázky (PNG, JPG)
•
Audio
•
Video
•
Animace
•
Text
•
Práce se sítí
•
HTTP Downloader
•
Komunikace přes AJAX
Velké plus pro celou platformu znamenalo zpřístupnění vývojových nástrojů Microsoft Visual Studio a Microsoft Expression Studio. Tyto nástroje umožňují vývojářům a tvůrcům webových stránek jednoduše sdílet projekty, grafické návrhy a části programů. Je tak možno vytvářet aplikace rychleji a s nižšími náklady. V souvislosti s uvolněním Silverlight verze 1.0 nabízí Microsoft také nástroj Expression Encoder 1.0, jež je určen pro snadný převod |4
multimediálních souborů do prostředí Silverlight. Tento produkt, dříve známý pod označením Expression Media Encoder, umožňuje efektivní převod široké palety hudebních a video souborů do webového prostředí. Současně podporuje i internetový přenos živých koncertů a dalších událostí s využitím moderních funkcí, jako je přepínání mezi více zdroji (multisource switching) a přímé publikování obsahu včetně podpory služeb Windows Live.
3.2.
Silverlight verze 2 14. října 2008 byla verze 1.0 nahrazena verzí 1.1, která byla záhy přejmenována na verzi 2.0. Zásadní změnou byla avizovaná podpora dalších programovacích jazyků. Kromě Javascriptu lze využít C#, VB.NET, IronPython a IronRuby. Přibyly i předdefinované standardní ovládací prvky, které ve verzi 1.0 citelně chyběly. Dále Silverlight rozšířil podporu multimédií a možnosti využití otevřených vývojových nástrojů pro operační systémy Linux a Mac.
Microsoft se zavázal k podpoře otevřenosti a systémové spolupráci. V rámci této podpory Microsoft financuje projekt integrace pokročilých vývojových funkcí platformy Silverlight do otevřeného vývojového prostředí Eclipse. Microsoft také uvolnil sadu ovládacích prvků Silverlight Control Pack (SCP) a zveřejnil technické specifikace Silverlight XAML Vocabulary na vývojářských webových stránkách MSDN. Specifikace Silverlight XAML Vocabulary, zveřejněné pod licencí Open Specification Promise (OSP), usnadňuje nezávislým vývojářům tvorbu produktů, které mohou číst i zapisovat XAML pro Silverlight.
Silverlight 2 přinesla následující nové funkce: •
Podpora technologie .NET Framework s Rich Base Class Library: Kompatibilní část kompletního.NET Frameworku
•
Výkonné ovládací prvky: V základním prostředí mají vývojáři k dispozici prvky DataGrid, ListBox, Slider, ScrollViewer, Calendar a mnoho dalších.
Velké přiblížení (Deep Zoom): Přináší dosud nepoznanou interaktivitu při prohlížení obrazového materiálu v extrémně vysokých rozlišeních.
•
Rozsáhlá podpora síťových služeb: Podpora REST, WS*/SOAP, POX, RSS, a standardních HTTP služeb pro snadnou integraci se stávající infrastrukturou.
•
Rozšířená podpora .NET Framework Language: Na rozdíl od jiných prostředí Silverlight 2 podporuje celou řadu programovacích jazyků včetně: Visual Basic, C#, JavaScript, |5
IronPython a IronRuby. Vývojáři tak mohou snadno využít své stávající znalosti a schopnosti pro vývoj Silverlight aplikací. •
Pokročilá ochrana obsahu: Silverlight DRM, založená na technologii PlayReady, poskytuje robustní ochranu obsahu před zneužitím.
•
Vyšší škálovatelnost a podpora vkládání reklamy: Nová verze zahrnuje podporu streamování a progresivního downloadu obsahu, vkládání reklam do šířeného obsahu a pokročilou optimalizaci pro internetové vyhledávače.
•
Fungující
partnerský
ekosystém:
Celá
řada
partnerů,
jako
jsou
společnosti
ComponentOne, Infragistics a Telerik, nabízejí produkty, které rozšiřují možnosti vývojářů při tvorbě Silverlight aplikací ve vývojovém prostředí Visual Studio. •
Podpora různých prohlížečů a operačních systémů: Silverlight funguje v operačních systémech Mac OS, Windows, Linux a ve všech nejrozšířenějších prohlížečích jako jsou Internet Explorer, Firefox a Safari.1
3.3.
Silverlight verze 3 13. července 2009 zveřejnil Microsoft třetí generaci své multimediální platformy Silverlight. Se samotným plug-inem zpřístupnil i novou verzi vývojového nástroje Expression, jež usnadňuje vývoj moderních internetových aplikací s důrazem na multimédia. Tato verze přináší snazší vývoj internetových aplikací s podporou videa v plném HD rozlišení a hardwarově akcelerované 3D grafiky.
Microsoft v rámci technologie Silverlight 3
a vývojového nástroje Expression 3 představuje celou řadu přelomových vlastností, které vývojářům umožní vytvářet multimediální aplikace s jinak nedostupnými funkcemi.
Nové funkce v Silverlight 3: •
Expression SketchFlow. Přínos tohoto programu spočívá ve schopnosti rychle vytvářet prototypy budoucích aplikací a vkládat do projektu textové i grafické připomínky v rámci celého vývojového týmu.
•
Mimo prohlížeč/ Out of Browser. Silverlight 3 přináší možnost spouštět Silverlight aplikace i mimo webový prohlížeč. Díky tomu je možné přenést interaktivní webové prezentace bez potíží na optická média nebo USB paměťové prvky při zachování stejné
1
Oficiální stránky společnosti Microsoft - Tiskové zprávy, Microsoft uvádí Silverlight 2 – platformu pro tvorbu dynamického on-line obsahu, [cit 2009-09-05] dostupné z www: http://www.microsoft.com/cze/presspass/msg/20081014_news1.mspx,
|6
funkcionality, jakou má aplikace na webu. Stejně tak je možné Silverlight aplikace spouštět na osobním počítači bez připojení k internetu.
•
Plynulé internetové vysílání / Smooth Streaming. Funkce Smooth Streaming, která je součástí Internet Information Services 7.0 (IIS7) Media Services, umožňuje v kombinaci s prostředím Silverlight 3 jako první řešení na trhu vysílat v internetovém prostředí videa v HDTV kvalitě s rozlišením 1920x1080 obrazových bodů a podporuje kodeky H.264/AAC.2
•
Podpora Search Engine Optimization (SEO) - Optimalizace pro vyhledávače.
Vedle výše zmíněných novinek přináší Silverlight 3 desítky dalších nových funkcí zaměřených na zvýšení produktivity práce vývojářů, včetně zabudované podpory pro využívání 3D grafických karet. Tato funkce zajišťuje výrazně vyšší kvalitu grafiky a snižuje zátěž procesoru počítače. Samozřejmostí je také úzké provázání vývojového prostředí Expression Studio 3 se systémem Visual Studio.
3.4.
Silverlight 4 beta 1 18. listopadu 2009 na konferenci Professional Developer’s Conference v Los Angeles společnost Microsoft uvedla první betaverzi Silverlight 4. Tato zatím poslední verze údajně obsahuje stovky dalších vylepšení a pokračuje v inovativních řešeních pro ještě rychlejší a jednoduší vývoj aplikací. Betaverze Silverlightu 4 je zatím dostupná pouze pro vývojáře a běžný koncový uživatel si musí bohužel počkat až do března roku 2010 na oficiální verzi této platformy.
Co bude v Silverlight 4 nového? Nová verze bude především zaměřena na vývoj obchodních aplikací. Silverlight se chce nově prezentovat jako ideální platforma pro vývoj moderního firemního systému, a tímto rozšířit své pole působnosti. Mezi hlavní inovace Silverlightu 4 bude patřit:
•
Tisková podpora, tiskové náhledy, tiskové sestavy - fungující nezávisle na obsahu nebo rozlišení obrazovky.
2
Oficiální stránky společnosti Microsoft - Tiskové zprávy - Microsoft představuje Silverlight 3 a Expression 3, [cit 2009-09-05] dostupné z www: http://www.microsoft.com/cze/presspass/msg/20081014_news1.mspx
|7
•
Další vestavěné ovládací prvky, které půjde individuálně přizpůsobovat. Budou jimi například: RichTextBox s hypertextovými odkazy, editor obrázků, různých grafické masky, nabídne lepší možnosti validace formulářů, lepší organizaci tabulek, včetně podpory víceúrovňového filtrování nebo funkce copy&paste na celé řádky.
•
Podpora více jak 30 jazyků - nově budou vývojová prostředí podporovat například Hebrejštinu, Arabštinu, Čínštinu, atd..
•
.NET Common Runtime (CLR) bude nově umožňovat spouštět zkompilovaný kód, jak na webu, tak jako desktopovou aplikaci, bez nutnosti jakýchkoliv změn.
•
Podpora funkce drag&drop pro vkládání dat. Bude možné nahrát obsah z disku Vašeho počítače do webové stránky pouze přetažením do okna prohlížeče. Tímto krokem se opět více propojí svět webu a klasických aplikací.
•
Umožní spouštět desktopové aplikace, jako jsou Word, Excel nebo Outlook a jejich prostřednictvím manipulovat s daty.
•
Silverlight OOB bude mít k dispozici plná práva pro práci s filesystémem.
•
Plná podpora práce se schránkou.
Mimo těchto výše uvedených inovací bude Silverlight 4 obsahovat jistě mnohé další, které budou průběžně představovány. Pro vývoj aplikací ve 4. verzi je také důležité uvedení nových verzí vývojových nástrojů, jsou jimi MS Visual studio 2010 a Expression Blend 4, které jsou k dispozici již nyní. Silverlight verze 4 má konečně ambice stát se tím, čím ho Microsoft již od začátku s oblibou nazýval – „Flash Killer“.
|8
4. Klíčová spolupráce s partnery i uživateli Rozšiřováním funkcí platformy Silverlight a novými funkcemi pro zrychlení vývoje multimediálních aplikací reaguje Microsoft na poptávku ze strany svých partnerů i koncových uživatelů. Dle tiskových zpráv publikovaných na serveru http://www.microsoft.com pouhých devět měsíců po uvolnění technologie Silverlight 2 využívá aplikace vytvořené na této platformě již více než třetina všech uživatelů internetu. V současné době by se toto číslo mělo pohybovat již kolem 40 %. Například v České republice pomocí technologie Silverlight zpřístupňuje Teléfonica O2, ve spolupráci se společností BPA sport marketing, bezplatné přenosy z Extraligy ledního hokeje na portálu tv.hokej.cz. Automobilové a zábavní pořady českých televizí Barrandov, Prima a Z1 zase využívají této technologie při internetovém vysílání. S výhodami Silverlightu se také mohli seznámit diváci internetových přenosů z Wimbledonu prostřednictvím televizní stanice NBC Universal.2
2
Oficiální stránky společnosti Microsoft - Tiskové zprávy - Microsoft představuje Silverlight 3 a Expression 3, [cit 2009-09-05] dostupné z www: http://www.microsoft.com/cze/presspass/msg/20081014_news1.mspx
|9
5. Dostupnost platformy Silverlight Uživatelé, kteří poprvé navštíví stránky využívající technologii Silverlight, získají toto rozšíření pro svůj webový prohlížeč z dané stránky stažením instalačního souboru o velikosti 4,7 MB. Celá instalace je velmi jednoduchá a bez problémů ji zvládne každý uživatel internetu.
Obrázek 1- Instalace plug-inu MS Silverlight 3 v OS Windows Vista
|10
6. Struktura Silverlight aplikace a implementace kódu pro zobrazení ve webovém prohlížeči Struktura Silverlight aplikace se může zdát na první pohled nepřehledná a složitá, ale po podrobnějším prozkoumání zjistíme, že je jasně definovaná. Pokud mluvíme o zobrazení aplikace ve webovém prohlížeči, musíme dát pozor na několik věcí. Především musíme zajistit propojení všech vytvořených souborů, kterých je oproti jiným RIA aplikacím hned několik a všechny mají svojí důležitou funkci. Tyto soubory jsou generovány automaticky při vytvoření projektu v některém z vývojových prostředí MS Visual Studio nebo Expression Blend.
Obrázek 2 - Úvodní obrazovka při vytváření Silverlight projektu v programu Expression Blend 3
|11
Obrázek 3 – Struktura Silverlight aplikace
Po vytvoření projektu vidíme hned několik souborů, jejichž funkce jsou následující: Default.html
- hlavní stránka projektu s HTML kódem, v níž je definováno zobrazení
Silverlight aplikace ve webovém prohlížeči. Obsahuje funkce pro inicializaci Silverlight prostředí a zajišťuje jejich volání. Dále obsahuje reference na externí javascriptové soubory Silverlight.js a Page.xaml.js, které mají na starosti ovládání prostředí a zpracování událostí souvisejících s prvky definovanými v XAML souboru. Další referenční soubor Page.xaml obstarává prezentační vrstvu - definuje vzhled uživatelského prostředí, běh animací nebo jiných vizuálních prvků prostřednictvím XAML jazyku. Ke každému xaml souboru ještě náleží jeho třída, označená příponou xaml.cs, kde jsou definovány všechny funkce a logika celé Silverlight aplikace.
|12
7. Silverlight pohledem vývojáře Z pohledu vývoje RIA aplikací je technologie Silverlight rozhodně velmi zajímavá a disponuje rozsáhlými možnostmi. Jedním z největších lákadel je pochopitelně podpora programovacích jazyků ze skupiny .NET. Díky tomu, stačí umět jen jeden programovací jazyk. Můžete s tím programovat klientskou i serverovou část a dokonce ho využijete i v databázi. Tuto skvělou vlastnost nemá žádná jiná RIA platforma. Dále, jak jsem již zmínil v úvodu práce, Silverlight je postaven na bázi technologie WPF, jež zaručuje důsledné oddělení vizuální a programové části. Cílem takovéto aplikace je sjednotit poutavé grafické uživatelské rozhraní, 2D a 3D grafiku, vektorové i bitmapové prvky, animace, vazbu na data, audio i video. WPF je velmi mocná technologie, bohužel není s technologií Silverlight zcela kompatibilní. Většina věcí je sice podobných či stejných, ale není zde zajištěna binární kompatibilita (jako například u Adobe Flex), a pokud se snažíme převést aplikaci z WPF do Silverlightu, bez zásahu do kódu se nám to nepodaří. Stejný problém řešíme i v případě, že chceme použít jednu aplikaci pro web i pro desktop. Dokud nebude zajištěna binární kompatibilita kódu pro všechny oblasti použití, bude tato skutečnost vždy působit jako velké mínus proti technologiím, které tuto vlastnost mají. Kritici technologii WPF vytýkají také přílišnou a zbytečnou komplikovanost, a postavení vývojového modelu Silverlightu na této platformě nepovažují za moudrý krok. Na druhou stranu se není čemu divit, jelikož Microsoft v posledních letech investoval do vývoje technologie WPF obrovské prostředky a i přes drobné nedostatky je v současnosti to nejlepší, co může programátorům nabídnout. Pro vývojáře, je kromě programovacího jazyka, také velmi důležité vývojové prostředí. Microsoft pro vývoj Silverlightu zpřístupnil to nejlepší, co mohl - MS Visual Studio. Jedná se o velmi pokročilý editor s řadou užitečných funkcí a výborně propracovaným systémem automatického doplňování kódu (intellisense). Visual Studio je dostupné hned v několika verzích – ve verzi Express, která je zdarma, obsahuje již všechny důležité funkce a Silverlight aplikace se v něm dají vyvíjet. Pouze škoda, že jeho podpora není hned v základu, ale po nainstalování doplňku Silverlight Tools for VS, vše funguje jak má. Pro programování a kompilaci není vhodnější nástroj, proti tomu však působí jeden velký nedostatek a to fakt, že Visual Studio neobsahuje pro Silverlight žádný vizuální editor. Lze sice měnit vizuální
|13
stránku přímo zápisem do XAML kódu, ale pro tvorbu komplexního uživatelského rozhraní to nestačí. Microsoft se rozhodl pro tvorbu uživatelského rozhraní vytvořit zcela nové nástroje, které prezentuje pod označení Expression. Bohužel, tyto nástroje již zdarma nejsou, kompletní balení všech dostupných nástrojů pro tvorbu UI - Expression Studio stojí 599 USD. Za tuto cenu obdržíte: Expression Blend – hlavní nástroj pro tvorbu UI, Expression Web – nástroj pro vývoj webových aplikací, včetně podpory všech používaných jazyků a platforem (CSS, PHP, HTML/XHTML, XML/XSLT, CSS, JavaScript, ASP.NET i ASP.NET AJAX, Silverlight, Flash, import souborů z programu Photoshop i video/audio pro web streaming), Expression Design – pro tvorbu grafiky, návrhy layoutu či tvorbu různých efektů a nakonec Expression Encoder – nástroj pro práci s videem umožňující převod souborů QuickTime, AVI, a MPEG pro platformu Silverlight, dále nabízí možnost jednoduché editace, ale předně podporuje kodeky VC-1 nebo H.264 pro možnost Full HD video streamingu. K výše zmíněným nástrojům lze ještě přidat program DeepZoom Composer, který je k dispozici zdarma a slouží k přípravě obrázků pro extrémní zvětšení tzv. DeepZoom. Nástroje z řady Expression jsou však orientovány hlavně pro designéry, jakoby Microsoft předpokládal, že programátor dostane UI již hotové a bude se věnovat pouze kódování, což v praxi ne vždy platí. Také vyzrálost těchto nástrojů není příliš na vysoké úrovní, ačkoliv s každou další verzí lze předpokládat zlepšení. Všechny nástroje jsou k dispozici ke stažení ze stránek http://silverlight.net/.
Hlavní klady a zápory technologie: (+) .NET v prohlížeči, .NET na serveru, .NET v databázi = potřebujete znát jen jednu sadu technologií. Toto je obrovská výhoda, kterou nemá žádná jiná RIA platforma. (+) Microsoft do Silverlightu mohutně investuje, vývoj je o dost rychlejší než u jiných technologií. (-) Vývojový model je postaven na zbytečně komplikovaném WPF. (-) Vývojové nástroje jsou nevyzrálé, Microsoft se příliš orientuje na designéry a ignoruje fakt, že s UI pracují i vývojáři.3
3
Bernard Borek, Silverlight 3.0 pohledem Flex vývojáře, [cit 2009-11-07], dostupné z www: http://www.borber.com/blog/silverlight-3-0-pohledem-flex-vyvojare
|14
8. Možnosti platformy Silverlight Grafika a animace – Silverlight je postaven na animačním modelu technologie WPF, jehož základem je práce s časem. Při animaci definujete pouze počáteční a koncový stav a Silverlight se postará o zbytek. Doplní potřebné snímky pro plynulý přechod mezi těmito stavy. Rychlost animace lze ovlivnit zadáním časového údaje (např. Duration=“00:00:02“). Tímto se zásadně liší od jiných animačních programů, které jsou většinou založené na sekvenčním procházení snímků časové osy, tzv. frame-to-frame. Při práci s grafikou lze využít vektorový editor vestavěný do prostředí Blend, nebo pracovat s obrázky typu png a jpg. Díky možnosti využít pro grafiku hardwarovou akceleraci, si lze s grafikou skutečně vyhrát, aniž bychom museli mít obavy z neúměrně se zvyšující zátěže na procesor.
3D efekty - lze aplikovat na jakýkoliv objekt pomocí vlastnosti Projection. Standardně je k dispozici Plane projection, ale lze si samozřejmě vytvořit i efekty vlastní. Pod označení 3D Microsoft schoval pouze možnost rotace a transformace objektů ve třech rovinách. V žádném případě se nejedná o plnohodnotnou práci s 3D grafikou. Tu by měl ve větší míře poskytnout nástroj 3D kit dostupný z http://www.codeplex.com/Kit3D. Podpora tohoto nástroje je však pouze pro plnou verzi Visual Studia a v bezplatné verzi Express toto rozšíření nefunguje.
Pixel shader – Silverlight je další platforma, která podporuje pixel shadery sloužící pro generování grafických efektů. V základu jsou již některé jednoduché efekty předdefinované, jsou jimi například vržení stínu nebo rozmazání. Výhodou je, že se jedná o otevřenou technologii, čili lze napsat a používat efekty vlastní. Takový efekt lze pak aplikovat nejen na bitmapu, ale například i na video, nebo na jakýkoliv prvek.
Témata a skinovaní – Silverlight umožňuje dynamicky měnit vzhled aplikace. Vlastní styly si lze vytvořit zcela samostatně a přímo za běhu je v aplikaci aplikovat. Navíc je u tvorby stylů použito klasické kaskádování, podobné jako známe u CSS.
Práce s daty – Silverlight umožňuje pracovat s daty uloženými přímo v aplikaci, načtenými z různých typů databází, či importu z XML souboru. Základním objektem pro jejich zobrazení
|15
je tzv. DataGrid – což je tabulka s řadou funkcí. Umožňuje automaticky vytvořit řádky a sloupce podle struktury dat, položky lze abecedně řadit, funguje zde zvýraznění aktuálního řádku při najetí myší atd. Předávání dat mezi objekty uživatelského prostředí je zajištěno datovou vazbu (DataBinding).
Podpora SEO – Podpora vyhledávačů není u RIA aplikací zcela běžná, protože tyto aplikace pracují s daty dynamicky. Lze to vysvětlit na příkladu při přechodu na novou stránku. Vše potřebné se děje uvnitř aplikace a statický text v prohlížeči se nijak nezmění. Vyhledávací roboti založeni na principu prohledávání HTML nebo XML dokumentů se tudíž k obsahu stránky nedostanou. V Microsoftu řeší tento problém dvěma způsoby. První z nich je použít u HTML stránky tzv. skrytý DIV obsahující popis aktuálního obsahu stránky v Silverlight aplikaci. Tento popis není pro běžného uživatele vidět, ale roboti ho registrují. Popis pro každou stránku je pak možné načítat například z databáze. Příklad může vypadat následovně:
Druhým způsobem je použít transformaci XSLT. XSLT (eXtensible Stylesheet Language Transformations). Tato transformace je použitelná u všech typů XML dokumentů a jelikož i XAML je vlastně XML soubor, lze ji využít i zde. Na základě XSL stylu dokáže „vytáhnout“ text z aplikace a zobrazit ho ve standardním XML, se kterým si již vyhledávače poradí.
Kód v Silverlight aplikaci pro použití transformace StringBuilder sb = new StringBuilder(); XslCompiledTransform d = new XslCompiledTransform(); d.Load("stylesheet.xsl"); using (StringWriter myWriter = new StringWriter(sb)) { d.Transform("input.xml", null, myWriter); }
V praxi se používá spíše druhá varianta, jelikož podle posledních zpráv vyhledávač Google v rámci větší bezpečnosti omezil čtení skrytých komponent ve stránce.
Deep Zoom – revoluční technologie, jejímž prostřednictvím lze docílit extrémního přiblížení obrázků a to v neuvěřitelně vysokém rozlišení. Deep Zoom při přibližování neboli zoomování obrázků neustále načítá data a progresivně dokresluje obraz. To vše přitom bez extrémní velikosti stahovaných dat.
Audio i video ve vysoké kvalitě – Video je v dnešní době nejrozšířenější multimediální obsah na Internetu. Silverlight byl od počátku vyvíjen jako platforma pro přehrávání videa v co nejvyšší kvalitě. S podporou formátu MPEG4, kodeků H.264 a ACC dokáže přehrávat videa v rozlišení až 1920x1080p, označovaném jako Full HD. Pro vykreslování HD videa a jeho akceleraci je navíc plně podporována grafická karta. Pokud k těmto vlastnostem doplníme ještě funkci Smooth Streaming (plynulého přehrávání), která na základě rychlosti připojení
|17
k Internetu a zatížení procesoru zajišťuje kontinuální přehrávání videa, získáme v současnosti nejlepší platformu pro video streaming.
Out of Browser aplikace – neboli aplikace schopná běhu i mimo webový prohlížeč. Silverlight nabízí možnost instalovat aplikaci lokálně, tedy běžící přímo pod operačním systémem. Na rozdíl od běžných aplikací však běží v tzv. sandboxu, který brání spuštění maligního kódu skrze internet. Silverlight instalovaný lokálně také nemá právo přístupu k vašim datům. Pokud chcete v rámci OOB aplikace data uložit jinam než na webový server, můžete tak učinit do vyhrazené části na disku (Isolated Storage), která je z bezpečnostních důvodů oddělena od zbytku filesystému. Pro koncového uživatele se aplikace chová zcela běžně - je reprezentována zástupcem na ploše nebo v nabídce Start, sama si stáhne dostupné aktualizace a funguje dokonce i bez konektivity k internetu.
Možnosti technologie Silverlight, které jsem uvedl výše, jsou z mého pohledu nejzajímavější, zdaleka však ne jediné. Celá technologie má tak široký rozsah, že popsat všechny možnosti by mohlo být zajímavým námětem například pro diplomovou práci zaměřenou na tuto technologii. Pokud se chcete o možnostech technologie Silverlight dozvědět
více,
můžete
tak
učinit
například
na
internetových
stránkách
http://www.microsoft.com/silverlight/.
|18
9. Silverlight vs. konkurence Technologie Microsoft Silverlight disponuje velikým rozsahem použitelnosti a tím se stává konkurentem pro mnohé platformy. Některé z níže uvedených jsou si s prostředím Silverlightu bližší než jiné, ale všechny mají jedno společné. V určitých oblastech je Silverlight se srovnávanou technologií rovnocenným ekvivalentem a leckde jeho široké spektrum působnosti může být důvodem, proč se rozhodnout právě pro něj.
9.1.
Silverlight vs. Flash Zajisté největším konkurentem v tvorbě multimediálních webových aplikací se Silverlight stal pro platformu Adobe Flash/Flex. Na úvod bych rád vysvětlil rozdíl mezi těmito názvy a tímto spojením. Adobe Flash je multimediální platforma pro vývoj aplikací, ale současně je tento název používán pro označení celého běhového prostředí neboli Flash Runtime, které využívá i technologie Flex. Prakticky nezáleží na tom, zda aplikaci vyvíjíte ve Flashi nebo Flexu. Vývojové prostředí Flexu –Flex Builder je více uzpůsobeno programátorům a způsobem práce podobné MS Visual Studiu. Umožňuje vývojářům pohodlnější práci s GUI komponentami a obsahuje i serverovou část pro napojení na podnikové systémy a databáze. Flash je zaměřen více na designéry a na práci s animacemi. Obě technologie jsou si však tak blízké, že je lze souhrnně označit názvem Flash/Flex.
9.1.1. Co je Adobe Flash/Flex Adobe Flash/Flex je v současnosti přední platformou pro návrh a vývoj takzvaných obsahově bohatých aplikací, obsahu a videa na webu. Flash běží shodně na různých operačních systémech a přístrojích. Dle oficiálních stránek společnosti Adobe, je tento plug-in, nainstalovaný na více než 98 % počítačů s podporou internetu. Toto a fakt, že Adobe Flash je již dlouholetým synonymem pro interaktivní web jsou hlavní překážky, které musí Silverlight překonat. Pokud bychom se měli rozhodnout, které z těchto platforem dáme přednost, shrňme si nejprve hlavní pro a proti.
|19
9.1.2. Hlavní rozdíly mezi MS Silverlight a Adobe Flash/Flex Obě technologie mají plnit podobný účel, každá k tomu však přistupuje jiným způsobem. Flash/Flex jde cestou blízkou klasickému vývoji webových aplikací založených na JavaScriptu, HTML, CSS nebo AJAXu. Pokud jste klasický webový vývojář a tedy v těchto technologiích se bez problémů orientujete, bude pro Vás Flash/Flex rozhodně lepší volbou než Silverlight.
Jaké jsou tedy podobnosti s klasickými webovými technologiemi? 1) Programovací jazyk pro Flash je ActionScript, který stejně jako JavaScript, vychází ze standardu ECMA Scriptu. Ačkoliv ActionScript je typový, má odlišný objektový model, a neobsahuje některé funkce, jsou si oba jazyky velmi podobné. Dokonce natolik, že pokud umíte JavaScript, po chvíli zorientování se, jste schopni rovnou psát v ActionScriptu.
2) Kaskádové styly. Vzhled aplikace je definován kaskádovými styly. Nejedná se sice o klasické CSS, které známe z webových technologií, ale jsou si velmi podobné a většina věcí zde funguje stejně. (Pozn. Vlastní layout Flex aplikace nedefinují styly, ale je definován MXML jazykem).
3) MXML – jazyk založený na technologii XML, definuje aplikační prvky (např. jaká budou tlačítka aplikace, atd.). MXML lze se „zavřenýma očima“ přirovnat k XHTML, ačkoliv rozdíly jsou zde značné. Pocit z práce s nimi je však velmi podobný.
|20
Silverlight přistupuje k problému jinou cestou a to tím způsobem, že vzal technologie pro vývoj desktopových řešení a přizpůsobil je tak, aby bylo možné je zobrazit ve webovém prohlížeči. Pro klasického webového vývojáře to ale není nikterak pozitivní zpráva. Programovací jazyk se mu bude zdát pravděpodobně zcela cizí, stejně jako definování vzhledu pomocí jazyku XAML. Vývojář desktopových aplikací založených na .NET Frameworku, však bude nadšen.
Pozitiva Silverlightu pro desktopové vývojáře 1) Programovací jazyk. Každý vývojář má svůj oblíbený jazyk. V Silverlightu si můžete navíc vybrat hned z několika a dokonce je spolu kombinovat. Pokud znáte .NET nemusíte se učit nic nového, s jednou sadou technologií si vystačíte na klientskou část aplikace, na serverovou a dokonce i na databázi.
2) XAML – (eXtensible Application Markup Language) postavený na technologii XML. Stejný jazyk je používán pro definici vzhledu v desktopových aplikacích pro systémy Windows. Čili opět známá věc.
3) Knihovny – na závěr bych rád zmínil ještě jednu vynikající vlastnost. V technologii Silverlight můžete použít v drtivé většině případů stejné .NET knihovny jako pro vývoj na desktop. V tom se skrývají velice široké možnosti. Takovýchto knihoven je mnohem více než jen pro specializované prostředí prohlížeče, které má k dispozici Flash/Flex.
Mezi výhody Silverlightu lze zařadit celou politiku Microsoftu a provázanost technologií s webovými službami, používání známých technologií vycházejících z WPF, .Net, nativní podpora multi-threading na klientovi (což Flash player neumí), oproti Flashi menší velikost výsledné aplikace, či rychlejší běhové prostředí. Pro Flash hovoří příznivěji zejména větší rozšířenost, lepší podpora klasických webových technologií a PHP nebo lepší podpora práce s filesystémem.
|21
Shrnutí základních rozdílů MS Silverlight
Adobe Flash/Flex
+ Podpora .NET jazyků + Jednotná technologie pro vše. .NET
- Programovací jazyk Action script - Pro programování na serverové
v prohlížeči, .NET na serveru, .NET v databázi = potřebujete znát jen jednu sadu technologií.
+ Technologické novinky (Full HD streaming,DeepZoom, atd..)
+ Velmi rychlý vývoj ze strany Microsoftu
straně musíte použít jinou technologii
- V některých oblastech vývojáři „zaspali“, ačkoliv připravovaná verze již má mít obdobné funkce
- Podstatně pomalejší vývoj a inovace systému
+ Využívá hardwarové akcelerace
- Podporuje pouze softwarovou akceleraci
+ Podporuje SEO + Pokročilá ochrana obsahu (DRM) + Podpora pro HW akcelerované video
- Nepodporuje SEO - Neposkytuje ochranu obsahu - Disponuje pouze softwarovou akceleraci videa
+ Podpora 3D grafiky + Podpora multi-threading na klientovi
- Nepodporuje 3D grafiku - Nepodporuje multi-threading na straně klienta
+ Výsledná velikost souborů
- I u triviálních aplikací je velikost zbytečně veliká
- Menší počet vývojářů a programátorů
+ Široká základna vývojářů a programátorů
- Nová technologie - 30% uživatelů Internetu má nainstalovaný Silverlight plug-in (stav k 1.7.2009)
- Není zatím příliš rozšířený
+ Zaběhnutý a léty ověřený systém + Flash Player používá 98% všech uživatelů
+ Populární služby (např. YouTube, MySpace) využívají technologii Flash
- Menší podpora stávajících webových technologií a jazyků
+ Podpora PHP a dalších klasických technologií
Tabulka 1 - Shrnutí rozdílů Silverlight / Flash
|22
9.1.3. Vývojové nástroje a hardwarové požadavky na systém 9.1.3.1.
Silverlight Hlavním vývojovým nástrojem této technologie je MS Visual Studio (blíže popsané v kapitole 7. - Silverlight pohledem vývojáře). Abychom však mohli využít plný potenciál technologie Silverlight potřebujeme více, než jen MS Visual Studio. Microsoft, spolu s novými verzemi platformy, uvolňuje i nové vývojové nástroje. V současné době máme k dispozici produkty z řady Expression jako jsou Blend, Encoder, Web, Média a Design pro návrh grafického prostředí a pro práci s videem, program DeepZoom Composer pro přípravu obrazového materiálů pro extrémní zvětšení, nebo program SketchFlow, který umožňuje rychle vytvářet prototypy budoucích aplikací, vkládání grafických i textových připomínek a sdílení obsahu v rámci celého vývojového týmu.
Minimální požadavky pro běh aplikací z řady Expression: Operační systém Windows XP(SP2), Windows 7 nebo Windows Vista, 2GHz procesor, 1GB operační paměti RAM, grafická karta s podporou DirectX 9.0 a vlastní pamětí minimálně 256 MB. Místo na pevném disku 20MB. Doporučené rozlišení obrazovky je 1280 x1024p. Minimální požadavky pro běh programu MS Visual Studio 2008: Operační systém Windows XP(SP2), Windows 7, Windows Vista nebo Windows Server 2003, procesor 1.6GHz, operační paměť RAM alespoň 384MB, 2.2GB místa na pevném disku a minimální rozlišení obrazovky 1024x768p.
Pro vývoj Silverlight aplikací v prostředí MS Visual Studio je potřeba nainstalovat doplněk Silverlight™ 3 Tools for Visual Studio 2008 o velikosti 72MB, který je k dispozici na stránkách společnosti Microsoft.
9.1.3.2.
Adobe Flash/Flex Podobně jako Microsoft i společnost Adobe má k dispozici celou škálu softwarového vybavení pro návrh a tvorbu multimediálního obsahu pro platformu Flash. Pro vývoj Flashe a animací se nejčastěji setkáme s produkty Adobe Flash, Flash Builder, Flex Builder nebo Dreamweaver. Pro komplexní grafické návrhy a úpravy obrázků lze využít Adobe Ilustrator, který je vhodný zejména pro vektorovou grafiku. Pro grafiku bitmapovou lze použít Adobe Photoshop. |23
Minimální požadavky pro běh aplikace Adobe Flash CS4 Professional:
1GHz procesor, operační systém Microsoft Windows XP SP3, Windows Vista v 32-bitové verzi nebo Windows 7, operační paměť RAM 1GB, 3,5GB volného místa na disku, doporučené rozlišení obrazovky je 1280x800p. Pro běh programu pod operačním systémem Mac jsou požadavky obdobné, je pouze potřeba o 500MB více místa na harddisku. Minimální požadavky pro běh aplikace Adobe Flex Builder 3: Procesor Intel Pentium 4, operační systém Microsoft Windows XP SP2, Windows Vista ve všech verzích nebo MAC OS. Windows 7 není zatím podporován. 1GB RAM, 500MB volného místa na disku, a nainstalované tyto komponenty: •
Java™ Virtual Machine: Sun™ JRE 1.4.2, Sun JRE 1.5, IBM® JRE 1.5, nebo Sun JRE 1.6
•
Eclipse™ 3.2.2, 3.3 a 3.4.
•
Adobe Flash Player 9 nebo vyšší.
Minimální požadavky pro běh aplikace Adobe Photoshop a Ilustrator CS4 Professional:
1,8GHz procesor, operační systém Microsoft Windows XP SP3, Windows Vista v 32-bitové i 64-bitové verzi nebo Windows 7, operační paměť RAM 1GB, 1GB volného místa na disku, doporučené rozlišení obrazovky je 1280x800p.
9.1.3.3.
Shrnutí Ze srovnání HW nároků je patrné, že produkty společnosti Adobe, zejména pak Photoshop vyžadují nepatrně výkonnější počítač. Tento drobný rozdíl je však v době dnešních výkonných strojů prakticky zanedbatelný. Naopak na rozdíl od produktů z řady Expression získáte mnohem komplexnější software, se širokou škálou uplatnění i mimo vývoj webových aplikací – ovšem nutno říci, že také za podstatně vyšší cenu. Je dobré ještě zmínit fakt, že společnost Microsoft umožňuje studentům technických univerzit, v rámci projektu MSDN, stáhnout a nainstalovat všechny vývojové nástroje zdarma. Pro vývojáře mimo univerzitní program |24
je zdarma k dispozici MS Visual Studio ve verzi Express, všechny další nástroje jsou ve společném balení za 599 USD. Politika Adobe je jiná, zdarma je k dispozici pouze běhové prostředí (Flash Player) a za všechny vývojové nástroje se platí. Například Flex Builder stojí 217 EUR a ostatní nástroje jsou také za nemalé peníze. Toto může být například pro webového vývojáře, zvyklého psát kód klidně v obyčejném textovém editoru, významný důvod proč začít vyvíjet RIA aplikace technologií Silverlight. Z hlediska komfortu při programování v prostředí MS Visual Studia nebo Flex Builderu, mě osobně více vyhovuje MS Visual Studio, a to zejména v lepší schopnosti automatického doplňování kódu. Chybí mi v něm však nějaký grafický editor pro návrh UI, který Flex Builder má. V obou případech se jedná o velmi pokročilé editory. Z mého subjektivního pohledu mi připadá Visual Studio o něco přívětivější, ale v praxi jde především o to, pro jakou platformu vyvíjíte a takové prostředí si zvolíte.
9.1.4. Náročnost implementace Velmi mě zajímalo srovnání obou technologií při implementaci stejného kódu. Jelikož ale nejsem specialista na programování ani pro jednu platformu, nebylo by mé vlastní srovnání zcela relevantní. Proto jsem využil existující studie Terence Tsanga z Hongkongu. Terence Tsang je specialista na vývoj RIA aplikací a zabývá se právě srovnáním technologií Flash a Silverlight. Na jeho internetových stránkách http://www.shinedraw.com je k dispozici přes 60 aplikací, naprogramovaných jak pro platformu Flash, tak pro Silverlight. Zhruba u poloviny z nich uvedl čas, který potřeboval pro vytvoření totožných aplikací v obou technologiích. Tyto hodnoty jsem zanesl do následujících grafů.
|25
Časová náročnost implementace
SlideShowPerspective 3D 3D Spinning/Rotating Globe 3D spiral image rotation iPhone Dragging Effect XML Image Gallery2 Digital Clock Sliding Image Gallery Blur Animation Effect! Splash Screen Double Click Passing Query String JavaScript Sample 2 Loading external libraries Local Storage Loading External Image Snake Snacks Game XML Image Gallery Image Slide Show 3D Controlling UI Object Image Manipulation - Scale Timer Testing Theming Video Player Audio Player Orbiting Tex Matrix Text Effect Spiral Text
120 100 80 60 40 20 0
flash
silverlight
Graf 1- Silverlight vs. Flash, Časová náročnost ná implementace,, zdroj: www.shinedraw.com
V grafu jsou na ose X uvedeny názvy aplikací, na ose Y pak časová náročnost n jejich implementace v minutách. Pokud uvedené hodnoty z tohoto vzorku zprůměruji a vyjádřím v procentech, entech, vychází, že na aplikace psané v technologii Silverlight je zapotřebí o 14% 14 více času, než při stejném výsledku v technologii Flash. Testované ané aplikace se dají zařadit do několika následujících kategorií: textové efekty, 3D efekty, animační efekty, práce s prohlížečem, práce s daty, hry, manipulace s obrázky, přehrávání multimédií. V těchto kategoriích je srovnání následující.
|26
Časová náročnost implementace podle kategorií 400 300 200 100 0
flash silverlight
Graf 2 - Silverlight vs. Flash, Časová náročnost implementace podle kategorií,, zdroj: www.shinedraw.com www.shinedra
Dle tohoto srovnání je patrné, že Silverlight ztrácí především při práci s daty a při tvorbě her, naopak méně času je zapotřebí zap při textových či animačních efektech nebo při práci s multimédii. Musím říci, že mě výsledky tohoto srovnání překvapily. Zejména práce s daty mi připadá v prostředí Silverlight lépe propracovaná a jednodušší. Nabízí se tedy několik otázek. Nepreferuje autor Terence Tsang některou z technologií? Nemá programování v Action scriptu více zažité dlouholetými zkušenostmi, a proto mu zaberou méně času? Ale především, mají tato data opravdovou vypovídající hodnotu?
Na tyto otázky není snadné nalézt
odpovědi,, proto je třeba brát tyto výsledky s jistým nadhledem, je možné, že jiná studie bude hovořit odlišně. Bohužel jsem dosud jiné ekvivalentní srovnání obou technologií z hlediska náročnosti implementace nenalezl. nena 9.1.5. Shrnutí Silverlight disponuje některými výhodami, které jsou způsobené né především tím, že se jedná o novou technologii a na rozdíl od Flashe, byl Silverlight od počátku vyvíjen vyv jako platforma, která bude umožňovat velmi široké multimediální využití, zatímco technologie echnologie Flash byla v počátku určená pouze pro jednoduché animace a postupem času vylepšovaná až do dnešní podoby.
|27
Za největší výhodu Silverlightu považuji podporu programovacích jazyků .NET, oproti Action scriptu. Díky tomu mohou pro Silverlight programátoři .NETu vyvíjet aplikace téměř okamžitě. Zde se nemusí učit nový jazyk. Naopak, největší výhoda Flashe spočívá v neuvěřitelném rozšíření běhového prostředí (Flash Playeru). Fakt, že musíte nejdřív nainstalovat plug-in, aby se Vám obsah stránky zobrazil, může být pro řadu uživatelů odrazující a tento faktor může být rozhodující pro společnost, která zvažuje, jestli se prezentovat prostřednictví Flashe nebo Silverlightu. Každá technologie má své pro i proti a budoucí vývoj bude jistě velmi zajímavý. Jedno je však jisté už nyní, za pouhé 3 roky, co Silverlight existuje, se povedlo Microsoftu nevídané. Vytvořit novou platformu, která se pro Flash stala plnohodnotným a obávaným konkurentem.
|28
9.2.
Silverlight vs. Adobe AIR Microsoft ve své třetí verzi Silverlightu přišel kromě řady dalších vylepšení i s funkcí mimo prohlížeč (Out of Browser), díky čemuž je někdy přirovnáván k prostředí Adobe AIR. Ačkoliv jsou si oba programy leckdy velmi blízké, nejedná se o konkurenci v pravém slova smyslu. Každá z těchto vývojových platforem má trochu jiné určení, a přestože podobnosti zde existují, prozatím převažují spíše rozdíly.
9.2.1. Co je Adobe AIR Adobe AIR je zkratka pro Adobe Integrated Runtime, tedy integrované běhové prostředí Adobe. Jedná se o jednu z prvních multiplatformních RIA aplikací, jejíž první betaverze vznikla v roce 2007. V prostředí AIR lze vytvářet jednoduché doplňky i složité multimediální aplikace pro různé operační systémy. Prostředí AIR zaujímá prostor mezi běžnou desktopovou aplikací a moderní webovou službou, jejíž možnosti značně rozšiřuje tím, že se snaží odpoutat od webového prohlížeče a více ji propojit s desktopem.
9.2.2. Podobnosti Obě platformy umožňují programátorovi vytvářet aplikace, které lze spouštět mimo prohlížeč a to i bez připojení k internetu. U obou platforem máte k dispozici komfortní vývojové prostředí – .NET v případě Silverlightu, technologii Adobe Flex, Flash, nebo DHTML v případě AIRu. Zhruba zde však podobnosti končí a dále se budu věnovat jejich rozdílům.
9.2.3. Bezpečnost Z pohledu bezpečnosti je v obou systémech zásadní rozdíl. Zatímco Silverlight OOB (Out of Browser) používá stejný bezpečnostní sandbox jako běžná Silverlight aplikace – čili taková aplikace nemá právo přístupu k vašim dokumentům ani k žádným jiným lokálním souborům, aplikace napsaná v Adobe AIR má plný přístup k obsahu disku počítače, dle práv uživatele. V praxi to tedy znamená, pracujete-li ve Windows přihlášen jako administrátor, má takováto aplikace přistup prakticky k čemukoliv. Aplikace Adobe AIR se tedy principiálně chovají spíše jako běžný desktopový program a AIR bychom tak nejlépe mohli přirovnat k běhovým prostředím typu Java, WPF a podobně.
|29
I Silverlight OOB samozřejmě potřebuje načítat a ukládat data i přistupovat k harddisku, děje se tak však pouze skrze Isolated Storage, což je bezpečné úložiště izolované od zbytku filesystému. Velikost tohoto filesystému je 25MB, což není příliš mnoho. Navíc pokud si nepřejete, aby aplikace jakkoliv spolupracovala s vaším diskem, lze i toto zakázat. Přistup Silverlightu je tedy od AIRu v tomto ohledu zcela odlišný, neznamená to však, že by byl lepší nebo horší, každá z technologií má své klady i zápory a nelze jednoznačně říci, co převažuje. Z pohledu vývojáře je technologie AIR podstatně mocnější, z pohledu uživatele je velké plus na straně Silverlightu, protože bezpečnost je zaručena samotným systémem a instalací takové aplikace neriskujete prakticky nic. Pozn. V nově představené betaverzi Silverlight 4 je mimo jiné prezentována jako jedna ze změn možnost plné práce s filesystémem u OOB aplikací. Zatím není jasné, jakým způsobem tuto změnu Microsoft realizoval, pravděpodobně opustil řešení pomocí sandboxu, ale není známo, jakým způsobem zajišťuje bezpečnost. Každopádně se vydal cestou dát aplikacím práva pro plnohodnotné využití na desktopu.
9.2.4. Z pohledu vývojáře Pokud mám obě technologie srovnat z pohledu programování, tak pro Microsoft mluví příznivěji fakt, že mám k dispozici WPF a .NET, který vlastnosti AIRu plně vyrovnává a leckde i předčí. V .NETu lze udělat prakticky cokoliv a dostupná API jsou daleko za hranicemi relativně omezených možností Adobe AIR. Bohužel Silverlight je pouze jakousi podmnožinou „plného“ .NETu a použitelná API, zatím nejsou na stejné úrovni. Navíc Adobe přišlo s vynikající věcí - můžete vzít webovou aplikaci a prakticky bez úprav z ní udělat aplikaci desktopovou.
Stačí pouze ve Flexovém kódu změnit root tag vašeho MXML souboru
z <Application> na <WindowedApplication>. (Obdobnou vlastnost by měl mít i Silverlight od verze 4.) Jenže u Airu funguje nejen dokonalá kompatibilita na úrovni zdrojového kódu, ale i kompatibilita binární, což je z vývojářského hlediska velké pozitivum. Programujete – li tedy aplikaci ve Flexu, Flashi nebo AIRu nezáleží prakticky na tom, v kterém běhovém prostředí aplikace nakonec poběží. Pokud pracujete se standardními věcmi, jako jsou zobrazování uživatelského rozhraní, zpracovávání dat od uživatele nebo komunikací se serverem, je vývoj, jak pro desktopovou, tak pro webovou aplikaci naprosto shodný. Konvertovat aplikaci z webové na desktopovou je triviální a totéž platí i v obráceném směru. 4
|30
U Silverlightu/WPF je situace poněkud jiná. Krom toho, že Silverlight neobsahuje všechny knihovny .NETu, tak ještě navíc existují jisté rozdíly mezi Silverlightem a WPF. Ve finále jsou tedy technologie WPF a Silverlight velmi podobné, avšak není zde zajištěna naprostá vzájemná kompatibilita. Samozřejmě v obou případech používáme .NET, takže řada věcí je stejná a také konverze ve směru Silverlight -> WPF je poměrně jednoduchá, ovšem v opačném případě můžeme narazit, protože jdeme z „plného“ .NETu pouze do jeho podmnožiny. Obdobně jednoduchá konverze jako u Adobe zde prozatím chybí. Výčet rozdílů lze ještě doplnit o následující technické odlišnosti: •
SL OOB nepodporuje více oken běžící aplikace, AIR ano.
•
AIR aplikace mohou být „chrome-less“, tedy bez standardního rámečku s tlačítky zavřít, minimalizovat a podobně. SL OOB toto nepodporuje a rámeček operačního systému bude vidět vždy.
•
AIR aplikace mohou data ukládat do vestavěné SQL databáze, SL OOB aplikace k dispozici žádnou lokální databázi nemají. Data mohou uložit pouze do oblasti IsolatedStorage, která ovšem nemá charakter databáze.
•
Mikrofon a webová kamera nejsou v současné verzi Silverlightu podporovány (jejich podpora se však očekává s verzí 4).
•
Instalace SL OOB je velmi jednoduchá, zatímco u AIRu je více komplexní a spíše se podobá instalaci běžné desktopové aplikace.
•
Aktualizace u SL OOB jsou zajištěny automaticky, u AIRu nikoli. 4
9.2.5. Shrnutí I přes výčet rozdílů popsaných výše se najdou aplikace, kde jsou si obě technologie dobrým ekvivalentem, mohou jimi například být aplikace, u kterých chceme uživateli nabídnout určitou možnost instalace aplikace lokálně, ale přitom prakticky nepotřebuji žádné persistentní úložiště. Takto funguje například populární služba Twitter. Jelikož Microsoft již nastínil, jakým směrem se vydá, (umožní aplikacím využít všechna práva potřebné při plnohodnotné práci mimo prohlížeč) bude velmi zajímavé sledovat, nakolik se obě technologie v budoucnu střetnou. Rozhodně to bude více, než je tomu dnes.
4
Informační server zdrojak.root.cz – informace o technologii Adobe AIR [cit 2009-10-25], dostupné z www: http://zdrojak.root.cz/clanky/je-silverlight-3-konkurenci-pro-adobe-air/
|31
9.3.
Silverlight vs. Java FX Třetím a posledním významným hráčem na poli RIA aplikací je technologie Java FX. Jedná se o softwarovou platformu založenou na bázi platformy Java od společnosti Sun Microsystems. Celá tato platforma vznikla jako reakce na rozšíření platforem Adobe Flash a Microsoft Silverlight.
9.3.1. Podobnosti Obě technologie jsou poměrně mladé, Java FX byla poprvé představena v květnu 2007. Za tuto krátkou dobu, si získaly obě technologie své příznivce a vybudovaly si solidní komunitu vývojářů. Stejně tak jako MS Silverlight, i Java FX se instaluje za pomocí plug-inu do webového prohlížeče, staženým při prvním kontaktu s webovou stránkou vytvořenou touto technologií. O chod Javy FX se fakticky stará systém JRE (Java Runtime Environment), který je v instalačním plug-inu obsažen. Obě platformy umožňují stažení aplikace a její instalaci lokálně i bez připojení k Internetu. Obě mají širokou podporu multimédií i animací. V čem jsou tedy obě technologie rozdílné?
9.3.2. Rozdíly V první řadě se technologie liší použitým programovacím jazykem, u Silverlightu je používán .NET, u Javy FX, jak název sám napovídá, se jedná o Javu – konkrétně o Java FX Script. Dále, ačkoliv se Java FX snaží být multi-platformní, v současné době není Java FX k dispozici pro operační systémy založené na Linuxu. Naopak u mobilních zařízení lze spouštět aplikace nejen na systému Windows Mobile, ale i na Androidu, a dalších příslušných OS. Samozřejmě je zde také rozdíl ve vývojových prostředích, pro Silverlight je k dispozici Visual Studio a nástroje z řady Expression, Javu FX lze psát v prostředí NetBeans s nainstalovaným rozšířením pro Java FX. Je zde ovšem velmi citelná absence nástrojů pro snadnou tvorbu uživatelského rozhraní, v prostředí NetBeans jste odkázáni pouze na scriptování.
9.3.3. Čím Java FX zaujme JavaFX je cílena na vývojáře programů toužících po vývoji pro desktopy, internetové prohlížeče, ale i rychle rozvíjející se mobilní oblast.
|32
Zajímavou vlastností je, že programátoři mohou v rámci JavaFX využívat jakoukoliv třídu napsanou v Javě. Výhodou oproti podobně cíleným platformám také může být velmi robustní ochrana zdrojového kódu proti prohlížení ze sítě Internet. Rovněž fakt, že klíčové elementy technologie JavaFX jsou otevřeny jako open source projekty tak, aby umožňovaly zákazníkům a partnerům společnosti Sun Microsystems využívat maximálního užitku a bezpečnosti. Nepochybně zaujme i samotný programovací jazyk JavaFX script. Jak jsem již zmínil, založený na bázi Javy. Jedná se o staticky typovaný deklarativní skriptovací jazyk, jehož kód je údajně až 5 krát úspornější oproti Javě. Jeho syntaxe je velmi podobná hojně rozšířenému JavaScriptu. Jazyk poskytuje výhodu automatického data bindingu i plné podpory 2D grafiky, swingovských komponent a animací. Podporu 3D grafiky, však zatím nenabízí.
9.3.4. Shrnutí Java FX nabízí jistou alternativu pro vývojáře, kteří z nějakých důvodů nechtějí využít technologií MS Silverlight nebo Adobe Flash. Zejména komunita vývojářů pracujících v Javě velmi ocenila vznik této platformy. Její hlavní uplatnění však vidím spíše ve vývoji aplikací především pro mobilní zařízení. V této oblasti je na rozdíl od vývoje klasických RIA aplikací, zatím poměrně široký prostor, byť se zde společnosti Adobe i Microsoft snaží prosadit. Nic méně je pro ně zatím tato oblast spíše okrajová a toho by měla technologie Java FX využít. V budoucnu lze očekávat rozšíření platformy i pro další zařízení, jako jsou herní konzole, televizní set-top boxy nebo Blue-ray mechaniky.
|33
9.4.
Silverlight vs. Mozilla Prism Jak jsem již naznačil v úvodu předchozího srovnání, následující dvě technologie, nejsou pro Silverlight přímým konkurentem. Nejedná se dokonce ani o vývojové platformy a je potřeba hned v úvodu říci, že Silverlight je technologie podstatně mocnější. Důvod proč zde Mozilla Prism a Google Gears uvádím je ten, že díky funkci mimo prohlížeč (OOB) se Silverlight posunul do oblasti, kde mají všechny tyto technologie cosi společné.
9.4.1. Co je Mozilla Prism Mozillu Prism lze označit jako prostředníka mezi světem desktopu a webu. Je to technologie umožňující instalaci webové stránky v počítači. Jedná se vlastně o jednoduchý webový prohlížeč s optimalizovaným uživatelským rozhraním, který spadá pod označení SSB (Specific Site Browser). Takovýto prohlížeč neobsahuje všechny prvky běžného prohlížeče, ale pouze ty nejdůležitější. Oproti tomu se aplikace chová jako běžný desktopový program. Spouští se v samostatném okně, je reprezentován ikonou na ploše nebo v nabídce programů, vytvoří samostatný proces, lze jej minimalizovat do oznamovací oblasti, lze nastavit jeho spuštění při startu počítače, atp.. I díky fonetické podobnosti slov Prism [prizəm] a prison [prizən](anglicky vězení), lze Mozillu Prism označit za vězení jedné webové stránky. Z tohoto vězení nelze uniknout, a pokud kliknete na externí odkaz, otevře se již v „normálním“ webovém prohlížeči.
Obrázek 4 - Mozilla Prism, Instalace webové stránky
5
5
Informační portál Lupa.cz – Informace o technologii Mozilla Prism, [cit 2009-11-28], dostupné z www: http://www.lupa.cz/clanky/mozilla-prism-pojitko-mezi-webem-a-desktopem/
|34
9.4.2. Podobnosti s MS Silverlight Obě technologie se snaží přiblížit webový obsah možnostem běžné desktopové aplikace. Shodně pracují v tzv. sandboxu, který nepředstavuje praktický žádné bezpečnostní riziko pro uživatele. Obě platformy jsou dostupné pro všechny operační systémy, čili mohou být spuštěny na Windows, Mac OS i Linuxu. Tím však podobnosti končí.
9.4.3. Rozdíly Předně, Mozilla Prism není platforma pro vývoj RIA aplikací ani ničeho jiného. Mozilla pouze umožňuje uživatelům zkrátit si cestu k již hotovým webovým aplikacím a prohlížet jejich obsah nezávisle na běžném webovém prohlížeči. V tom je však i výhoda, není zde potřeba vyvíjet speciální aplikace, Prism dokáže zobrazit každou webovou stránku, která běžně funguje pod prohlížečem Mozilla Firefox, zatímco pro spuštění Silverlight aplikace mimo prohlížeč na to musí být taková aplikace přímo napsaná. Na druhou stranu možnosti Silverlightu v režimu OOB jsou nesčetněkrát větší, umožňují využít všechny vymoženosti technologie jako je Drag&Drop a mnohé další. U Mozilly Prism jste omezeni pouze na DHMTL a Javascript obsažené ve stránce.
Obrázek 5 - Příklad využití Mozilly Prism jako webmailové aplikace
|35
9.4.4. Využití Mozilly Prism Dovedu si představit použití systému Prism například pro různé online kancelářské balíky, nebo právě webmaily, kde díky tomuto řešení není uživatel zatížen další funkcionalitou prohlížeče, která by ho zbytečně rušila. Ale především jde o urychlení práce, není potřeba otevírat nová okna, případně hledat mezi záložkami tu správnou. Není zde ani riziko, že při zavření prohlížeče nevědomky zavřete vaši záložku s rozdělanou prací. Nemusíte stránku obnovovat, abyste zjistili, zda Vám nepřišel nový email, o této skutečnosti jste informováni bublinou v oznamovací oblasti.
9.4.5. Shrnutí V porovnání s technologií Silverlight OOB je zde mnohem více rozdílů než stejných řešení, proto i snaha porovnávat tyto projekty může působit rozporuplně, stejně tak vnímání projektu SSB lze rozdělit na dva tábory. Jedni ho vnímají jako úžasnou věc, jiní jako zbytečnost. Nic méně tento projekt je určitě zajímavý minimálně z toho pohledu, že opět více rozmazává ostrou hranici mezi klasickým desktopovým a webovým světem.
|36
9.5.
Silverlight vs. Google Gears Poslední technologií, kterou zde uvedu, je systém od společnosti Google –Google Gears. Tento systém má se Silverlightem však tak málo společného, že nelze ani hovořit o vzájemném porovnávání. Důvod, proč zde systém od Googlu uvádím, je ten, abyste si dokázali udělat představu o tom, jakým způsobem přistupuje jedna z nejvýznamnějších internetových společností k snaze propojit svět desktopu a webu.
9.5.1. Co je Google Gears Společnost Google přistupuje k problému zpřístupnění online aplikací i bez připojení k Internetu po svém. Nesnaží se odpoutat od webového prohlížeče jako všechny předchozí technologie, ale naopak ho využívá. Google Gears existuje jako rozšíření ve formě plug-inu pro prohlížeče Internet Explorer, Mozilla Firefox a samozřejmě Google Chrome. Safari, Opera ani další prohlížeče v současné době podporovány nejsou. Technologie Google Gears umožňuje přistupovat webovým prohlížečům k online aplikacím i bez připojení k internetu. Dodá jim jednoduše pocit, že toto připojení je funkční, ale namísto dat, které by prohlížeč musel stáhnout ze sítě, jim je dodá z disku počítače. Toto řešení Vám tak umožňuje například ve spojení se službou Gmail, procházet doručené emaily či si připravit k odeslání nové, bez nutnosti připojení na Internet. Tímto chce služba Gmail více konkurovat aplikaci MS Outlook. Samozřejmě, že odeslat či přijmou nové zprávy lze až po opětovném připojení k síti. Součástí technologie je i část, která zajišťuje synchronizaci dat, jak v počítači, tak na serveru, aby byla Vaše data pokud možno vždy aktuální.
9.5.2. Využití technologie Tato technologie se neomezuje pouze na Gmail, ale lze ji využít i u jiných služeb. Mohou jimi být například online kancelářský balík Google Doc, kalendář nebo Google Reader, případně i služby třetích stran. S tím se dostávám k hlavní nevýhodě.
9.5.3. Nevýhody technologie Google Gears neumožňuje zpřístupnit jakoukoliv online aplikaci ve formě offline. Abyste mohli využít aplikaci i bez připojení na Internet, je nutné, aby to tato aplikace umožňovala. Jinými slovy, musí pro to být napsaná. To prakticky omezuje použití pouze na aplikace |37
vyvíjené Googlem. Ačkoliv je celý projekt přístupný jako open source, nevím zatím o žádné další společnosti, která by pro Google Gears vyvíjela.
9.5.4. Shrnutí Google Gears představuje další možnost jak využít online aplikace i mimo dosah Internetu. A ačkoliv nepředstavuje pro platformu Silverlight přímou konkurenci, obě technologie se shodně snaží více propojit klasické desktopové i webové technologie.
|38
10.
Vytvoření aplikace pro demonstraci inovativních prvků technologie Silverlight Pro lepší pochopení možností celé platformy a získání praktických zkušeností, jsem v technologii Silverlight vytvořil webovou prezentaci, která demonstruje řadu inovativních prvků. Tato zkušenost mi lépe umožnila zhodnotit tuto technologii z pohledu programování, tvorby obsahu a zároveň mi poskytla lepší možnost srovnání s konkurenčními technologiemi. Výslednou prezentaci jsem umístil na své internetové stránky, kde je dostupná pod tímto odkazem: http://hejdukpetr.wz.cz/bp/. V příloze této práce jsou k dispozici zdrojové kódy vytvořených aplikací na disku CD-ROM.
10.1. Jaké prvky vytvořená aplikace demonstruje a jak jsem postupoval při jejím vývoji Při vývoji aplikace jsem se soustředil především na demonstraci hlavních předností technologie. Vytvořil jsem aplikaci, která celkem na devíti příkladech ukazuje možné použití platformy Silverlight. Samozřejmě, že v těchto ukázkách nemohou chybět revoluční novinky jako je Deep Zoom nebo streaming videa ve Full HD kvalitě. Kromě nich naleznete v aplikaci také následující ukázky:
•
transformace objektů pomocí funkcí drag&drop, rotation, a dalších
•
možnost ovládání aplikace klávesnicí
•
zobrazení mimo prohlížeč
•
práci s daty prostřednictvím prvků DataForm a DataGrid
•
zobrazení dat pomocí grafů
•
zobrazení jednoduchého objektu ve 3D
•
panoramatický pohled vytvořený technologií Silverlight
|39
10.2. Problémy při vývoji Zásadní problém byl už při výběru vhodného programovacího jazyka. Jelikož jsem v .NET Frameworku dosud nikdy nevyvíjel, byla pro mě celá tato platforma neznámá a cizí. Nakonec jsem se rozhodl zvolit jazyk C#, a to především z toho důvodu, že v tomto jazyce jsou realizována výuková videa na stránkách www.silverlight.net/learn/. Tyto výukové video tutoriály se mi staly velmi dobrým pomocníkem. Dalším zdrojem, odkud jsem čerpal je server http://silverlike.net/, kde jsou k dispozici hotové ukázky různých aplikací, včetně zdrojových kódů. Jejich procházením a studováním jsem zjišťoval, jakým způsobem s jazykem pracovat. V první řadě jsem však trávil hodiny času studováním technické dokumentace na serveru MSDN. Druhý závažný problém jsem musel řešit při tvorbě ukázky aplikace zobrazující data prostřednictvím grafů. Ne, že by snad práce s grafy byla nějak obzvlášť obtížná, ale získat potřebná
data
ano.
Tato
aplikace
je
totiž
založena
na
existujícím
webu
http://deniktrenera.cz/. Spoluprácí s tímto portálem jsem chtěl ukázat možnost využití technologie Silverlight i pro stávající weby. Problém při získání dat byl v tom, že tento server využívá technologie PHP a MYSQL, které Silverlight přímo nepodporuje. Přesto, že v klasické .NET aplikaci se mi podařilo prostřednictvím knihovny MySql.Data.dll do databáze připojit, v technologii Silverlight to již možné nebylo. Knihovna MySql.Data.dll, zde bohužel není podporována a nepodařilo se mi objevit ani žádnou její alternativu. Z tohoto důvodu se mi zatím data nepodařilo získat a ukázku jsem se rozhodl realizovat na základě fiktivních dat. Ostatní problémy, se kterými jsem při vývoji aplikace potýkal, nebyly příliš významné a řešení se dalo nalézt v dokumentaci k technologii.
|40
11.
Testování Podstatnou částí při zkoumání platformy Silverlight, bylo také ověření její multiplatformovosti. Tuto schopnost jsem testoval na vytvořené webové prezentaci a s výsledky testování Vás nyní seznámím.
11.1. Kritéria pro hodnocení Testování jsem provedl na různých operačních systémech pro osobní počítače, ale také na několika typech mobilních zařízení. Na všech platformách jsem testoval minimálně jeden, většinou však více různých webových prohlížečů. Stanovil jsem si následující kritéria, podle kterých jsem hodnotil.
•
Funkčnost OOB aplikace v testovaném operačním systému
•
Bezproblémové zobrazení aplikace v prohlížeči
•
Ovládání pomocí myši
•
Ovládání pomocí klávesnice
•
Přehrávání videa
•
Přehrávání zvuku
•
Podpora Full screen režimu
•
Funkčnost všech vytvořených ukázek
Pro přehledné znázornění výsledků u jednotlivých hodnocených kritérií, jsem zavedl symboly, jejichž význam je následující:
- funkčnost v pořádku
- částečná funkčnost
- žádná funkčnost
Pod každým testováním je uvedeno stručné shrnutí problémů.
|41
11.2. Výsledky testování Operační systém Rozlišení obrazovky Funkčnost OOB aplikace Testovaný prohlížeč
Windows XP Professional, SP3, 32bit 1280x800
Internet Explorer Mozilla Firefox Opera verze 7.2 verze 3.5.5 verze 10.1
Mozilla verze 1.7.13
Zobrazení v prohlížeči Ovládání myší Ovládání klávesnicí Přehrávání videa Přehrávání zvuku Full Screen režim Funkčnost všech ukázek Tabulka 2 - Testování multi-platformovosti OS Win XP
Shodně na všech prohlížečích nefungoval zvuk u přehrávání videa. U jiných aplikací, kde je přehráván zvuk, vše pracovalo normálně. Problém si vysvětluji tak, že video zřejmě využívá nějaký zvukový kodek, který není v počítači instalován nebo ho hardware počítače nepodporuje. Jelikož by ale měli být všechny kodeky součásti Silverlight plug-inu, tak se přikláním spíše k druhé variantě. Na jiném počítači s operačním Windows XP vše fungovalo bez potíží. Testovaný prohlížeč Prohlížeč Mozilla verze 1.7.13: Často padá při přechodu mezi jednotlivými aplikacemi.
Operační systém Rozlišení obrazovky Funkčnost OOB aplikace Testovaný prohlížeč
Windows Vista Home Premium, SP2, 32 bit 1280x1024
Internet Explorer Mozilla Firefox Opera verze 8.0.6001 verze 3.5.5 verze 9.52
Safari verze 4.0.4
Zobrazení v prohlížeči Ovládání myší Ovládání klávesnicí Přehrávání videa Přehrávání zvuku Full Screen režim Funkčnost všech ukázek Tabulka 3 - Testování multi-platformovosti OS Win Vista
|42
Opera verze 9.52: Při přehrávání videa prohlížeč padá, po několika neúspěšných pokusech sice video přehrál, ale bez zvuku. U ostatních aplikací fungoval zvuk normálně. U DeepZoom aplikace nebylo funkční přibližování/oddalování na touchpadu notebooku ani scrolovacím kolečkem po připojení externí myši. U ostatních ukázek fungovalo ovládání myší normálně. Ovládání pomocí klávesnice u aplikace Silverlight Drums nefungovalo. Ostatní prohlížeče fungovaly bez problémů.
Operační systém Rozlišení obrazovky Funkčnost OOB aplikace Testovaný prohlížeč
Windows 7 Home Premium, 64 bit 1280x1024
Internet Explorer Mozilla Firefox Opera verze 8.0.7600 verze 3.5.5 verze 10.10
Zobrazení v prohlížeči Ovládání myší Ovládání klávesnicí Přehrávání videa Přehrávání zvuku Full Screen režim Funkčnost všech ukázek Tabulka 4 - Testování multi-platformovosti OS Win 7
Všechny testované prohlížeče fungovaly bez problémů.
Operační systém Rozlišení obrazovky Funkčnost OOB aplikace Testovaný prohlížeč
Mac OS X Snow Leopard 1920x1200
Safari verze 4
Zobrazení v prohlížeči Ovládání myší Ovládání klávesnicí Přehrávání videa Přehrávání zvuku Full Screen režim Funkčnost všech ukázek Tabulka 5 - Testování multi-platformovosti OS Mac
|43
Všechny části aplikace fungovaly bez problémů, pouze při přechodech mezi obrázky v hlavním menu nebyl pohyb zcela plynulý a docházelo k mírnému trhání. Tato skutečnost je trochu překvapivá, jelikož hardwarově byl tento počítač nejvýkonnější, ze všech testovaných. (Jednalo se o MacBook Pro osazený procesorem 2,8Ghz, 4GB RAM a dvěma výkonnými grafickými kartami.)
Obrázek 6 - Instalace plug-inu Silverlight na Mac OS
U instalace Silverlight plug-inu na Mac OS bych se rád zmínil o jednom rozdílu oproti instalaci na Windows. Instalace je zde více komplexní. Skládá se celkem ze šesti částí, kde každou musíte zvlášť potvrdit, zatímco u systému Windows celá instalace proběhne jedním kliknutím.
Operační systém Rozlišení obrazovky Testovaný prohlížeč
Linux Debian 1280x1024 Iceweasel verze 3.0.6 (Odnož Mozilly Firefox)
Galeon Verze 2.0.6
Zobrazení v prohlížeči Tabulka 6 - Testování multi-platformovosti OS Linux Debian
Operační systému Linux Debian není technologií Silverlight oficiálně podporován. Zkusil jsem pro zajímavost přesto nainstalovat obecný plug-in pro Linuxový systém, ale bez úspěchu.
|44
Operační systém Rozlišení obrazovky Testovaný prohlížeč
Linux Ubuntu 9.04 CZ 1280x1024 Mozilla Firefox Verze 3.0.14 pro Ubuntu
Chromium (Google Chrome) Verze 4.0.224.2
Zobrazení v prohlížeči Tabulka 7 - Testování multi-platformovosti platformovosti OS Linux Ubuntu
Jako další Linuxový inuxový systém jsem testoval Ubuntu ve verzi 9. Operační systém Ubuntu je od verze 8 na seznamu oficiálně podporovaných OS pro rozšíření Silverlight. Silverli Instalace pluginu v prohlížeči Mozilla Firefox proběhla v pořádku, jak dokládá obrázek níže. I přes úspěšnou instalaci se mi však stránky nepodařilo v prohlížeči zobrazit. it. I po opakované instalaci se prohlížeč tvářil, že žádný plug-in plug pro zobrazení nemá emá a vyžadoval instalaci novou. Prohlížeč Chromium si s instalací rozšíření Silverlight nevěděl rady a instalační soubor vůbec neidentifikoval.
Obrázek 7 - Instalace plug-inu inu Silverlight na systému Linux Ubuntu v prohlížeči Mozilla Mozilla Firefox
|45
Operační systém Rozlišení obrazovky Funkčnost OOB aplikace Testovaný prohlížeč
Linux Ubuntu 9.10 „Karmic Koala“ 1024x800 Nepodařilo se otestovat Mozilla Firefox verze 3.5.5 pro Ubuntu
Zobrazení v prohlížeči Ovládání myší Ovládání klávesnicí Přehrávání videa Přehrávání zvuku Full Screen režim Funkčnost všech ukázek
Nepodařilo se otestovat Nepodařilo se otestovat
Tabulka 8 - Testování multi-platformovosti OS Linux Ubuntu "Karmic Koala"
Do třetice jsem testoval opět operační systém Ubuntu, tentokrát verzi 9.10 „Karmic Koala“. Ze stránek projektu Moonlight jsem nainstaloval plug-in ve verzi 1.0.1., který se sice bez problémů nainstaloval, ale stránky se přesto nezobrazily, stejně jako v minulém případě. Poté jsem objevil betaverzi Moonlight 2.0, kterou jsem rovněž vyzkoušel. S touto verzí jsem se dostal dále. Po spuštění testované stránky se uprostřed obrazovky zobrazilo upozornění, že stránky jsou ve verzi Silverlight 3 a že některé funkce nemusí runtime umět. To se prokázalo hned na úvodní stránce, která se zobrazila jen částečně.
Obrázek 8 - Chybné zobrazení hlavní stránky v Mozilla Firefox 3.5.5, OS Linux Ubuntu 9.10
|46
Žádný panel s obrázky pro navigaci se nezobrazil, a tak jsem zkoušel alespoň „naslepo“ klikat. Podařilo se mi trefit jednu z ukázek. Po kliknutí se objevil bílý naklánějící se obdélník a došlo ke změně textu, zobrazil se také odkaz pro spuštění ukázky.
Obrázek 9 - Chybné zobrazení hlavní stránky v Mozilla Firefox 3.5.5, OS Linux Ubuntu 9.10 č.2
Takto jsem postupoval i nadále, avšak jediné ukázky, které se mi podařilo spustit, byly „Object Transform“ a „Silverlight Drums“. Video streaming, OOB aplikaci ani další se mi nepodařilo zobrazit, naskočila pouze bílá stránka. V aplikaci „Object Transform“ jsem se pokoušel manipulovat s objekty, ale runtime není zřejmě dostatečně optimalizovaný, a tak byl pohyb s objekty velmi pomalý. Vodící hrany objektů, pomocí kterých by mělo jít s objekty rotovat, či měnit jejich velikost neměnily pozici spolu s objektem. Změnili ji až poté, co se kliklo na jiný objekt a znovu zpět. S tímto úskalím jsem se pokoušel umístit jednotlivé objekty podle vzoru.
|47
Obrázek 10 - Zobrazení aplikace "Object Transform" v Mozilla Firefox 3.5.5, OS Linux Ubuntu 9.10
Nakonec se mi ještě podařilo spustit aplikaci „Silverlight Drums“, kde po stisknutí klávesy vyskočil dialog pro instalaci kodeku, ten jsem nainstaloval a aplikace fungovala.
Dále jsem testoval mobilní zařízení. Konkrétně se jednalo o přístroje Nokia N95, iPhone 3G a HTC Touch Diamond s operačními systémy Symbian 9.1, iPhone OS a Windows Mobile 6.1.. Bohužel na žádný z těchto přístrojů se rozšíření Silverlight nepodařilo nainstalovat.
11.3. Obecné postřehy z testování
1) Pokud jsem při aktualizaci obsahu Silverlight aplikace a na webový server nepřepsal celý projekt (přepsal jsem pouze změněné soubory), prohlížeč Mozilla Firefox tuto změnu obsahu neregistroval a i při obnovení stránky stále načítal obsah z cache paměti. Nepomohlo dokonce ani restartovaní celého prohlížeče. Aby se zobrazil aktualizovaný obsah, bylo nutné nejprve odstranit dočasné soubory a poté stránku načíst znovu. |48
2) Funkce Smooth streaming (plynulé přehrávání) v mé ukázce Full HD streamingu na žádné z testovaných platforem ani prohlížečích nefungovala a video bylo několikrát přerušováno načítáním. Jelikož jsem však tuto funkcionalitu viděl bez problémů pracovat na videích vytvořených vývojáři společnosti Microsoft, byl problém v mé ukázce pravděpodobně způsoben mou nedokonalou znalostí prostředí Expression Encoder při tvorbě videa. V tomto programu jsem ovšem žádné povolení či nastavení funkce Smooth streaming neobjevil, a tudíž jsem předpokládal její standardní zapnutí.
3) V průběhu testování mě překvapila poměrně vysoká zátěž na procesor počítače, ačkoliv si myslím, že vytvořená aplikace nebyla graficky nijak zvlášť náročná. I v případě povolení hardwarové akcelerace, kdy by se měla zátěž rozložit mezi procesor a grafickou kartu, jsem nespatřil žádné zlepšení. Přikládám graf z testování, kde je jasně vidět spuštění Silverlight aplikace zvýšenou zátěží procesoru. Poté následuje pokles, který odpovídá neaktivnímu chování uživatele (v mém případě čtení textu) a poté opětovnou aktivní činnost.
Obrázek 11 - Využití CPU
11.4. Shrnutí Pokud mám shrnout hodnocení multi-platformovosti technologie Silverlight dle výsledků mého testovaní, nemohu ji označit za platformě nezávislou. Přesto, že by měla fungovat pod doporučenými operačními systémy založené na Linuxu, mně se toto ověřit nepodařilo. Stejně tak, funkčnost zobrazení na mobilních zařízeních se neprokázala. Ta sice není oficiálně deklarovaná, ale myslím si, že moderní multimediální platforma by měla mít možnost zobrazení i na těchto typech zařízení. Bezproblémovou funkčnost se tedy podařilo prokázat pouze u systémů Windows a Mac, za použití posledních verzí webových prohlížečů.
|49
12.
Závěr V úvodu práce jsem si stanovil za cíl zhodnotit platformu Silverlight z pohledu programování, tvorby obsahu a multi-platformovosti. Dále jsem tuto technologii porovnával s hlavními konkurenty působícími na poli RIA aplikací, ale také s technologiemi, které zdánlivě do této oblasti příliš nezapadají. Srovnávané technologie jsem vybíral na základě informací, které jsem o platformě Silverlight průběžně získával. Jelikož Microsoft vyvinul platformu s velmi širokým potenciálem možného využití, vybrat vhodné technologie k porovnání nebylo jednoduché. Lze říci, že čím více informací jsem o Silverlightu získal, tím více se objevovalo případných konkurentů. Zejména s přechodem aplikací Silverlight i mimo webový prohlížeč, se řada možných konkurentů velmi rozrostla. Důvod je následující. V blízké budoucnosti, lze očekávat, že se online a offline, lokální a vzdálený, webový a desktopový svět jednoduše prolnou. Z uživatelského pohledu nebude rozdíl mezi webem a desktopem, obojí bude schopno nabídnout stejnou funkcionalitu, obojí bude schopno pracovat i bez připojení, obojí bude umět brát si data ze sítě nebo lokálního disku. Tímto směrem se již dnes snaží jít celá řada technologií a postupně budou přibývat další. Důležitým faktem je, že Silverlight patří v této oblasti mezi přední technologie. Další podstatnou částí práce byla také vlastní implementace webové prezentace. Díky tomu, jsem získal praktické zkušenosti, které mi pomohly při hodnocení z pohledu tvorby obsahu a programování, ale především jsem si velmi rozšířil znalosti této technologie. Vytvořit funkční ukázku pro mě nebyl snadný úkol, jelikož bylo nutno naučit se nový programovací jazyk, nová vývojová prostředí i nový způsob práce. Z tohoto hlediska mohu potvrdit hlavní motto této platformy: „Silverlight umožňuje rychlý a efektivní vývoj obsahově bohatých aplikací“ pouze přidám dovětek „nejen pro zkušeného .NET programátora“. Poslední část práce se zabývá ověřením multi-platformovosti. Výslednou webovou aplikaci jsem testoval na různých operačních systémech typu Windows, Mac i Linux a také na řadě webových prohlížečů. Každá technologie má své příznivce i odpůrce. I v případě, že zrovna nepatříte mezi příznivce platformy Silverlight, její vliv zajisté pocítíte. Důležité totiž je, že nutí konkurenci k vývoji a inovacím!
|50
Slovník pojmů Adaptivní streaming s ohledem na kvalitu připojení k Internetu a vytížení procesoru sám vybere z dostupných kvalit videí tu nejvhodnější, tak aby bylo zajištěno kontinuální přehrávání, bez nutnosti zásahu uživatele.
API (Application Programming Interface) označuje rozhraní pro programování aplikací. Jde o sbírku procedur, funkcí, tříd či knihoven, které může programátor využívat. API určuje, jakým způsobem se funkce knihovny mají volat ze zdrojového kódu.
CSS (Cascading Style Sheets) jazyk pro formátování internetových stránek
Deklarativní jazyk – popisuje, čeho se má dosáhnout, ne však jakým způsobem. Příkladem může být JavaFX Script vhodný pro tvorbu komplexních GUI aplikací. Jehož syntaxe je díky deklarativnímu způsobu zápisu jednodušší než například u Javy.
Data binding – Jedná se o obecnou techniku spojující logiku a uživatelské rozhraní. Pokud jsou správně nastaveny vazby, změní-li data hodnotu, tak elementy vázané k těmto datům se automaticky změní, platí i opačná závislost. Například změna stavu jedné GUI komponenty synchronně změní jinou komponentu či datový model.
DRM (Digital Rights Management) neboli ‘Správa digitálních práv', je zastřešujícím pojmem pro technické metody, jejichž účelem je kontrolovat či omezovat používání obsahu digitálních médií. Nejčastěji je technikami DRM chráněna hudba, obrazové umění, počítačové hry, videohry a filmy. Cílem takové ochrany je především zajistit užívání obsahu v souladu s autorskými právy, respektive v souladu s licenčními podmínkami, vztahujícími se k obsahu (např. zakoupené hudby v podobě hudebních souborů, jež jsou za tím účelem ošetřeny DRM technologií).
DHTML - dynamické HTML je kombinace technologií používaných k tvorbě dynamických a interaktivních webových stránek.
GUI - Grafické uživatelské rozhraní (anglicky Graphical User Interface) je uživatelské rozhraní, které umožňuje ovládat počítač pomocí interaktivních grafických ovládacích prvků. Javascript - je multiplatformní, objektově orientovaný skriptovací jazyk, jehož autorem je Brendan Eich z tehdejší společnosti Netscape. Zpravidla se používá jako interpretovaný programovací jazyk pro |51
WWW stránky, často vkládaný přímo do HTML kódu stránky. Jsou jím obvykle ovládány různé interaktivní prvky GUI (tlačítka, textová políčka) nebo tvořeny animace a efekty obrázků. Java Swing je knihovna uživatelských prvků na platformě Java pro ovládání počítače pomocí grafického rozhraní. Knihovna Swing poskytuje aplikační rozhraní pro tvorbu a obsluhu klasického grafického uživatelského rozhraní. Pomocí Swingu je možno vytvářet okna, dialogy, tlačítka, rámečky, rozbalovací seznamy, atd…
.NET („dotnet“) je zastřešující název pro soubor technologií v softwarových produktech, které tvoří celou platformu, která je dostupná nejen pro Web, Windows i Pocket PC. Common Language Infrastructure je standardizovaná specifikace jádra .NET. Základní komponentou je Microsoft .NET Framework, prostředí potřebné pro běh aplikací a nabízející jak spouštěcí rozhraní, tak potřebné knihovny. Pro vývoj .NET aplikací vydal Microsoft Visual Studio .NET. Sandbox je bezpečnostní mechanismus pro separaci běžících aplikací. Jedná se o virtuální kontejner, který neumožňuje aplikacím přímý přístup k disku počítače. Zabraňuje například spuštění maligního kódu skrze Internet.
Staticky typovaný – znamená, že datový typ každé proměnné, parametru i návratové hodnoty musí být znám již při překladu.
Plug-in (zásuvný modul) je software, který nepracuje samostatně, ale jako doplňkový modul jiné aplikace a rozšiřuje tak její funkčnost. Typicky použití je pro webové prohlížeče.
XAML (Extensible Application Markup Language) výslovnost [zaml], je deklarativní jazyk vyvíjený společností Microsoft a založený na XML. Slouží pro definici vzhledu uživatelského prostředí v aplikacích založených na technologii WPF.
XML (Extensible Markup Language) neboli rozšiřitelný značkovací jazyk je obecný značkovací jazyk, který byl vyvinut a standardizován konsorciem W3C. Umožňuje snadné vytváření konkrétních značkovacích jazyků (tzv. aplikací) pro různé účely a různé typy dat.
XSLT (eXtensible Stylesheet Language Transformations) Tato transformace slouží k převodům zdrojových dat ve formátu XML do libovolného jiného požadovaného formátu, nejčastěji HTML, jiného XML nebo libovolných jiných datových struktur.
|52
Literatura a ostatní zdroje [1] John Papa. Silverlight, datové služby. ZONER Software, a.s. 2009, ISBN 978-80-7413-041-0 [2] Oficiální stránky technologie Silverlight – technické zdroje, dostupné z www: http://www.microsoft.com/silverlight/resources/technical-resources/default.aspx , stav z 1.9.2009 [3] Microsoft – centrum stahování, dostupné z www: http://go.microsoft.com/fwlink/?LinkID=157102 , stav 1.9.2009 [4] Oficiální stránky technologie Silverlight, dostupné z www: http://silverlight.net/ , stav z 1.9.2009 [5] Portál Visual Basic.net – informace o technologii Silverlight, dostupné z www: http://www.vbnet.cz/clanek--121-silverlight_2_uvod.aspx , stav z 20.9.2009 [6] Wikipedia – informace o technologii Silverlight, dostupné z www: http://cs.wikipedia.org/wiki/Microsoft_Silverlight ,stav z 22.9.2009 [7] Informační portál Internaval – informace o technologii Silverlight, dostupné z www: http://interval.cz/clanky/silverlight-co-je-silverlight/, stav z 22.9.2009 [8] Informační portál .netstudent – informace o technologii Silverlight, dostupné z www: http://www.netstudent.cz/%C4%8Cl%C3%A1nky/tabid/56/articleType/ArticleView/articleId/235/ Silverlight--Zanme.aspx , stav z 5.9.2009 [9] Oficiální stránky společnosti Microsoft - Tiskové zprávy, dostupné z www: http://www.microsoft.com/cze/presspass/msg/20081014_news1.mspx , stav z 5.9.2009 [10] Oficiální stránky společnosti Adobe – informace o platformě Flash, dostupné z www: http://www.adobe.com/flashplatform/ , stav z 7.10.2009 [11] Silverligt vs. Flash – implementační srovnání, dostupné z www: http://www.shinedraw.com/ , stav z 20.11.2009 [12]Silverliike.net – příklady Silverlight aplikací, dostupné z www: http://silverlike.net/ ,stav z 17.11.2009 [13] Informační server zdrojak.root.cz – informace o technologii Adobe AIR, dostupné z www: http://zdrojak.root.cz/clanky/je-silverlight-3-konkurenci-pro-adobe-air/ , stav z 25.10.2009 [14] Informační server zive.cz – Informace o technilogii Adobe AIR, dostupné z www: http://www.zive.cz/Titulni-strana/Adobe-AIR-Beta-3-WEB-20-prichazi-na-desktop/sc-21-sr-1-a139665/default.aspx , stav z 12.10.2009 [15] Informační portál abclinuxu.cz – Informace o technologii Mozilla Prism, dostupné z www: http://www.abclinuxu.cz/clanky/recenze/mozilla-prism-mezi-desktopem-a-webem , stav z 12.11.2009 [16] Wikipedia – informace o platformě Java FX, dostupné z www: http://cs.wikipedia.org/wiki/JavaFX , stav z 20.11.2009 |53
[17] Informační portál Lupa.cz – Informace o technologii Mozilla Prism, dostupné z www: http://www.lupa.cz/clanky/mozilla-prism-pojitko-mezi-webem-a-desktopem/, stav z 28.11.2009 [18] Michal Kočí – Srovnání technologií Flex a Silverlight, dostupné z www: http://blog.michalkoci.com/Article.aspx?ArticleId=227 , stav z 29.11.2009 [19] MSDN – Microsoft online dokumentace, dostupné z www: http://msdn.microsoft.com/en-us/library/ee656762(VS.95).aspx , stav z 1.9.2009 [20] Czech MSDN blog –informace o novinkách v Silverlight 3, dostupné z www: http://blogs.msdn.com/vyvojari/archive/2009/07/14/novinky-v-silverlight-3-0-fin-ln-verze-jevenku.aspx , stav z 11.11.2009 [21] Martin Hassman – Silverlight kontra Flex, dostupné z www: http://zdrojak.root.cz/clanky/flex-kontra-silverlight-aneb-kdyz-dva-delaji-totez/ , stav z 1.12.2009 [22] Informační portál Lupa CZ - Google Gears - online aplikace offline, dostupné z www: http://jilm.blog.lupa.cz/2007/05/31/google-gears-online-aplikace-offline/ , stav z 1.12.2009 [23] Informační portál Extra Windows - Google Gears: online aplikace v offline režimu, dostupné z www: http://www.extrawindows.cz/google-gears-online-aplikace-v-offline-rezimu , stav z 5.12.2009 [24]Bernard Borek, Silverlight 3.0 pohledem Flex vývojáře, dostupné z www: http://www.borber.com/blog/silverlight-3-0-pohledem-flex-vyvojare , stav z 7.11.2009
|54
Příloha A – ukázky z vytvořené aplikace
Úvodní obrazovka vytvořené aplikace. Zde jsou pomocí obrázků vyobrazeny všechny vytvořené aplikace, mezi kterými lze vybírat pohybem myši.
|55
Ukázka demonstrující technologii Deep Zoom.
|56
Ukázka demonstrující video streaming ve vysokém rozlišení, označovaného jako Full HD.
|57
Ukázka demonstrující manipulaci s objekty pomocí funkce Drag&Drop a dalších. Úkolem v této aplikaci je přemístit a upravit objekty ve stránce podle vzoru.
|58
Ukázka demonstrující možnost ovládat aplikaci prostřednictvím klávesnice.
|59
Ukázka demonstrující možnost instalovat a spouštět aplikaci i mimo webový prohlížeč.
|60
Ukázka demonstrující práci s daty.
|61
Ukázka demonstrující možnost zobrazení dat ve formě grafů.
|62
Ukázka demonstrující 3D transformaci objektů.
|63
Ukázka demonstrující další možné využití na různé multimediální účely, v tomto případě je technologií Silverlight realizováno 360° panorama.