S vydáním silverlightu verze 1.0 a jeho verzí následujících, vznikla mezi designéry a vývojáři diskuze, co si vybrat. Silverlight čelí potížím s prosazení na trhu kvůli vyzrálosti technologie Flash. Nicméně, Silverlight disponuje jistými možnostmi, které vývojáři vždy chtěli v Adobe Flash. V tomto příspěvku jsou uvedeny některé technické rozdíly mezi oběma technologiemi.
Animace
Flashová animace je založená na sekvenčním procházení snímků časové osy. V první řadě se jedná o animaci frame-to-frame. Tato animace je absolutním základem a realizuje pohyb objektu přes specifikovaný počet snímků. Jedná se o po sobě jdoucí sekvenci snímků. Rozšiřující animací je motion-tween, jejíž sekvence spočívá v pohybu daného objektu z bodu (polohy) A do bodu B. Rychlost animace lze ovlivnit počtem snímků za sekundu (frame rate). Jsou to poměrně jednoduché způsoby realizace animace.
Základem animace v Silverlightu je WPF animační model, jehož základem je čas na rozdíl od snímků. Definují se počáteční a koncové podmínky a Silverlight řeší jak jich dosáhnout. Není třeba pracovat s maticemi a ani není nutné počítat pozice objektů v různých snímcích.
Velikost souborů
Flash využívá kompresního formátu. Text a obrázky jsou vloženy do animace a výsledná velikost souboru je relativně malá.
Silverlight využívá jazyk XAML, založený na standardu XML, který není komprimovaný. Velikost komponent Sliverlightu je obvykle větší.
Scriptování
Flash pro programování objektů využívá ActionScript. Tento objektově orientovaný jazyk umožňuje plné řízení pro navržené uživatelské rozhraní. Může být integrovaný do back-end technologií, které využívají ostatní jazyky a frameworky, jakými jsou PHP, ASP nebo Ruby on Rail. Disponuje obrovskou a silnou knihovnou tříd pro vývoj jednak online aplikací, ale i aplikací ryze desktopových.
Pro Silverlight lze využít některý z jazyků technologie . NET, jako např. C# nebo VB.Net, včetně skriptování v javascriptu. C# nebo VB.Net mohou být používány pro psaní kódu, který využívá všech rozšířených vlastností a možností Frameworku .NET.
Video a audio
Flash podporuje více videoformátů. Poslední kodek je vysoce kvalitní a využívá velký rozsah pásma. Zde je ovšem jeden problém. Jestliže je vytvořen nástroj, který produkuje obsah ve formátu Flash, nelze jeho formát použít někým jiným. Originální video kodek, Sorensův H.263 je zmutovanou verzí H.263. Přestože komprese spočívá ve vynechání některých rysů, není nikde uvedena specifikace, jak budovat vlastní encoder.
Silverlight používá pro přehrávání videa obvykle objekt třídy Media, který je založen na jádře programu Windows Media Player. V Silverlight lze tedy přehrávat všechny formáty podporované systémem. Primárně je učen pro záznamy ve formátech WMV a WMA.
Práce se zvukem
Zvuková třída Action Scriptu umožňuje plnou kontrolu zvuku v animaci. Zvuk lze vkládat do animace z knihovny, ovládat jeho hlasitost, vyvážení a provázání na ostatní objekty animace.
Silverlight používá pro práci se zvukem opět objekt MediaElement.
Přístupnost
Flash disponuje bohatými možnostmi přístupnosti pro uživatele z řad sluchově postižených, až po ty co vyžadují ovládání pomocí klávesových zkratek. Poskytuje titulkování videa pro sluchové postižené, nástroje pro tělesně postižené, umožňuje spolupracovat s asistenčními technologiemi, jakou jsou čtečky obrazovky, zvětšovací lupy obrazovky apod. Uživatelé spoléhající se na klávesové ovládání, mohou pro animace využít důvěrně známých zkratek, např. pro tlačítka Přehrávání/Pauza, Zastavení, Přetočení a jejich aktivace mezerníkem. Pro ovládání polohy lze vyžívat šipkových kláves, ovládání hlasitosti je přístupné přes kurzorové klávesy, podobně jako klávesy HOME, a END pro prohyb na začátek a konce obsahu. Hlasitost lze ovládat přes numerické klávesy.
Silverlight 3 je první zásuvný modul pro prohlížeče, který poskytuje přístup ke všem systémovým barvám, umožňující lidem s částečnou poruchou zraku, používat známé nástroje operačního systému pro realizaci změn, jakými je přepínání kontrastu nebo barevnosti pro pohodlnější čtení.I technologie Silverlight pochopitelně umožňuje zachytávat události z klávesnice a myši. Obsah přehrávaný pomocí Silverlight lze bez problému zvětšovat pomocí lupy a dalších nástrojů pro usnadnění přístupu.
Systémová kompatibilita
Flash podporuje Windows Vista/XP/2000, Windows Server 2003/2008, Mac OS 10.1/10.5 (PowerPC), Mac OS 10.1/10.5 (Intel), Linux 5, openSUSE 11, Ubuntu 7.10 nebo vyšší a Solaris 10.
Silverlight podporuje pouze Windows Vista/XP/2000, Windows Server 2003/2008, Windows Mobile 6, Mac OS 10.1/10.5 (PowerPC) and Mac OS 10.1/10.5 (Intel). Protože pro Linux a Solaris podpora chybí, uživatelé těchto operačních systémů nemohou Silverlight využívat.
Reprezentace textu/SEO
Flash ukládá fonty jako definici tvaru a přehrávač tak nerozumí TTF, z toho důvodu nemůže oddělit textovou vrstvu z animace. Typicky text psaný na komponentě Flash nebyl nikdy přátelský k SEO, nicméně ADOBE provedl inovaci Flashe tak, že je indexovaný a vyhledávače jej začali zapisovat do svých indexů.
Google je aktuálně jediný vyhledávač, který čte soubory Flash. Google spolupracoval s ADOBE a došlo k vývoji sady nástrojů pro roboty Google, které čtení animací Flash umožňují. Vzhledem k tomu, že Yahoo začalo pracovat na podobných nástrojích a MSN pracuje s vlastním formátem pro Silverlight lze se domnívat, že nebudou vyvíjet obdobné nástroje pro Flash.
V aplikacích Sillverlight jsou uživatelská rozhraní deklarována v XAML a programy využívají .NET Framework. XAML může být používán pro značkování vektorové grafiky a animací. Text je umístěný na webovém serveru jako oddělená entita a může být čten a zpřístupněn odděleně. Textový obsah vytvořený v Silverlightu je snadno vyhledávatelný a tím i zaindexovatelný, protože není zkompilovanou součástí, ale je reprezentovaný jako text (XAML).
Podporované obrazové formáty
Flash podporuje téměř všechny formáty obrázků.
Silverlight podporuje pouze formáty PNG a JPEG. Některé další formáty jsou sice Silverlightem podporované, ale v omezené formě.
Socket programování
Objekt XMLSocket implementuje klientské požadavky tak, že počítače s Flash playerem mohou komunikovat se serverem identifikovaným IP adresou nebo doménovým jménem.
Pro používání XMLSocket, musí na serveru běžet program, který rozumí protokolu využívající objekt XMLSocked. Protokol je následující:
- XML zprávy jsou posílány nad duplexem TCP/IP.
- Každá XML zpráva je kompletní XML dokumentů, který skončil nulovým bajtem
- Neomezené množství XML zpráv lze posílat a přijímat přes jednotlivé spojení XMLSocked.
Silverlight nepodporuje přímé Socked programování, ale využívá jmenný prostor System.Net.Sockets. Silverlight podporuje asynchronní odesílání dat tam a zpět přes socket v rozsahu 4502 a 4534. Silverlight podporuje přes domény socket komunikaci mezi aplikací Silverlightu a severem.
Podpora webkamery
Flash podporuje webkameru, mikrofon pro živé vysílání a audio přenos s možností jednoduché implementace. Stačí několik řádek ActionScriptu, aby kamera byla použitelná.
- Camera.get- Vrátí výchozí nebe specifikovaný objekt, nebo nulu pokud kamera není dostupná.
- Camera.setMode- Nastavuje vlastnosti záznamového módu kamery. Požadovaná výška, šířka, počet snímků za sekundu.
- Camera.setMotionLevel - Specifikuje množství pohybu požadovaného pro nastavení módu kamery Camera.onActivity(true) a kolik času má uplynout bez registrace pohybu před kamerou pro nastavení Camera.onActivity(false).
Silverlight nepodporuje webkameru nebo mikrofon.
Rozmístění
Výsledná aplikace nebo animace Flash obsahuje pouze jeden Schockwave (SWF) souboru, a všechny obrázky, texty a animace jsou začleněny v tomto souboru. Vzhledem ke kompresní povaze Flash komponent nejsou jeho obrázky a texty indexovány vyhledávacími roboty a nemusí být prohledávány.
V tomto ohledu je Silverlight více komplexnější. Všechny jednotlivé součásti musí být rozmístěny odděleně. Následující součásti jsou typicky předávány Silverlight aplikaci od klienta na webový požadavek:
- XML soubory
- DLL soubory (pokud je to nezbytné)
- Silverlight.js
- Jiný JavaScript soubor
- Zdroje (obrázky, audio, video).
Windows aplikace
Animace Flash mohou být kompilovány do spustitelného formátu pro operační systém Windows.
Silverlight nepodporuje přehrávání animace jako aplikaci Windows.
Media Streaming
Flash přímo neposkytuje služby pro hostování obsahu a aplikací. Vytváření video internetových stránek s Flashem není příliš ekonomické oproti využití technologie Silverlight.
Microsoft Silverlight Streaming využívá služby Widnows Live, která vývojářům a návrhářům usnadňuje doručovat rich media jako součást Silverlight aplikace. Služba vývojářům a návrhářům umožňuje hostovat a streamovat media a interaktivní aplikace pro Widnows a Mac. Tato služba v kombinaci s Microsoft Expression Studiem a ostatními nástroji třetích stran tvoří a vyvíjí interaktivní obsah.
Závěr
Zvolení správné technologie pro rich internetové aplikace je často kritické a volba mezi Flash a Silverlight závisí zcela na individuálních požadavcích. Jestliže lze očekávat, že některý z potencionálních uživatelů aplikace bude mít operační systém Linux nebo Solaris, pak by měla být použita technologie Flash. Jestliže by měli být stránky indexovány v plné šíři je lepší použít Silverlight.
Důležitým faktorem je i rozšíření přehrávačů pro obě technologie. V současné době má většina uživatelů nainstalovaný modul pro přehrávání Flashe. Flash 9 a vyšší, podporuje streaming s kodekem H.264, což znamená, že jakýkoliv video program s výstupem v MP4 může být streamovaný prostřednictvím Flashe. K tomu jsou k dispozici doslova stovky volných aplikací pro různé operační systémy. Také je potřeba se zmínit, že poslední verze Flash přehrávače podporuje 3D rendering, zatímco Silverlight ne. Formáty SWF, FLA, FLV a AS jsou otevřenými, kdežto Silverlight je 100% vlastnický.
Následující tabulka sumarizuje jednotlivé aspekty. Nejedná se o jednoznačné závěry, které by prosazovali jednu z technologií, ale je to spíš poukázání na to, kdy a v jaké oblasti danou technologii nasadit.
Vlastnost |
Flash |
Silverlight |
Animace |
|
Lepší |
Velikost souboru |
Lepší |
|
Skriptování |
|
Lepší |
Video/Audio |
|
Lepší |
Práce se zvukem |
Lepší |
|
Přístupnost |
Lepší |
|
Kompatibilita s OS |
Lepší |
|
Reprezentace textu/SEO |
|
Lepší |
Podpora obrázků |
Lepší |
|
Socket programování |
Lepší |
|
Podpora webkamery |
Lepší |
|
Rozmístění |
Lepší |
|
Aplikace Windows |
Lepší |
|
Media Streaming |
|
Lepší |
Použitá literatura
JESSE, Ezell. Silverlight vs. Flash: The Developer Story [online]. 2007 , 3.5.2007 [cit. 2009-05-31]. Dostupný z WWW: < http://weblogs.asp.net/jezell/archive/2007/05/03/silverlight-vs-flash-the-developer-story.aspx >.
MUHAMMAD, Usama Alam. Flash vs. Silverlight: What Suits Your Needs Best? [online]. 2009 , 9.5.2009 [cit. 2009-05-31]. Dostupný z WWW: < http://www.smashingmagazine.com/2009/05/09/flash-vs-silverlight-what-suits-your-needs-best/ >.