Silverlight – co je Silverlight?

3. listopadu 2008

Web je sice přirozeně nejpopulárnějším prostředím pro firemní software, existují však jisté věci, které webové aplikace prostě dělat neumějí, nebo je neumějí dost dobře. I když vybavíte své webové stránky v ASP.NET nejnovějšími výkřiky JavaScriptu, přesto nebudete schopni duplikovat mnohé ze schopností, které se u desktopových aplikací považují za samozřejmé, jako animace, přehrávání zvuku a videa, nebo trojrozměrné grafiky. I když můžete pomocí JavaScriptu odpovídat u klienta na jisté akce, jako upozornit na změny, reagovat na pohyby myší a na jiné události „v reálném čase“, ani tak nemůžete budovat složitá rozhraní, která by byla byť jen vzdáleně tak vnímavá a vstřícná, jako nějaké okno v bohatě vybavené klientské aplikaci.

S potěšením lze ale konstatovat, že vývojáři neustále boří limity Webu. V současné době není vůbec neobvyklé, když můžete přímo ve svém prohlížeči sledovat animovanou reklamu, nebo hrát jednoduchou, ale bohatě vybavenou hru. Taková výbava evidentně není částí obyčejných standardů HTML, CSS a JavaScriptu. Zpřístupňuje se pomocí nějakého plug-inu prohlížeče, někdy je to aplet Javy, většinou je to ale obsah Flashe.

Nový Silverlight společnosti Microsoft je přímý konkurent Flashe. Podobně jako Flash umožňuje i Silverlight vytvářet interaktivní obsah, který běží u klienta, a podporuje dynamické grafiky, média a animace, které daleko přesahují možnosti obyčejného HTML. Stejně jako Flash se i Silverlight rozmisťuje pomocí odlehčeného zásuvného modulu (lightweight plug-in) prohlížeče a podporuje širokou paletu různých prohlížečů a operačních systémů. Momentálně má Flash před Silverlightem náskok, protože byl už v širokém měřítku akceptován a je vyzrálý. Silverlight se však může pochlubit několika architektonickými funkcemi, které Flash nemá – nejvýznamnější je skutečnost, že je založený na zredukované verzi společného runtimu jazyků (common language runtime, CLR) .NET, a umožňuje proto vývojářům psát kód u klienta v čistém C#.

Co je Silverlight

Aby Silverlight dokázal překročit meze standardních webových stránek, používá k tomu dobře známou techniku – odlehčený zásuvný modul (lightweight plug-in) prohlížeče.

Předností modelu plug-inu je to, že uživateli stačí nainstalovat jen jedinou komponentu, a už vidí obsah vytvořený celou řadou různých lidí a firem. Instalace plug-inu znamená jen něco málo stáhnout a donutit uživatele, aby potvrdil tuto operaci přinejmenším v jednom bezpečnostním dialogu (ale obvykle jich je víc). Netrvá sice dlouho, ale rozhodně nějaký čas zabere, a přispívá k nepohodlí. Jakmile je však plug-in nainstalovaný, bude prohlížeč moci zpracovávat nepřerušovaně jakýkoli obsah, který tento plug-in používá, žádné další výzvy se už zobrazovat nebudou.

Silverlight je navržený tak, aby dokázal překonat limity HTML a umožnil vývojářům vytvářet graficky lepší a interaktivní aplikace. Silverlight ovšem není pro vývojáře vhodná cesta, jak překonat bezpečnostní „sandbox“ prohlížeče. Pro aplikace Silverlightu platí obvykle obdobné restrikce jako pro obyčejné webové stránky. Například, aplikaci Silverlightu je dovoleno vytvářet soubory a přistupovat k souborům, platí to ale jen pro takové soubory, které jsou uložené ve speciálně vyhrazené oblasti, které se říká izolované úložiště (isolated storage). Pojmově funguje izolované úložiště podobně jako cookies v obyčejné webové stránce. Sobory jsou oddělené podle webů a aktuálního uživatele, jejich velikost je značně omezena.

Silverlight versus Flash

Nejúspěšnějším plug-inem prohlížeče je Adobe Flash, který je nainstalovaný na více než devadesáti procentech prohlížečů na celém světě. Flash má dlouhou historii, která se táhne už přes deset let. Začal jako přímočarý nástroj pro přidávání animovaných grafik, ale postupnou evolucí dospěl až do platformy pro vývoj interaktivního obsahu.

Od vývojářů ASP.NET je naprosto rozumné, že obohacují své weby pomocí obsahu Flashe. To ovšem vyžaduje zcela separátní designérský nástroj, a zcela jiný programovací jazyk (ActionScript) i programovací prostředí (Flex). Navíc, není k dispozici žádný přímočarý způsob, jak generovat obsah Flashe používající kód .NET na straně serveru, což znamená, že je obtížné integrovat obsah ASP.NET a obsah Flashe – existují jako dva izolované ostrovy.

Silverlight se usiluje dát vývojářům .NET lepší volbu pro vytváření bohatě vybaveného webového obsahu. Silverlight poskytuje plug-in prohlížeče s mnoha obdobnými funkcemi jako Flash, ale s jednou navíc, která byla navrhovaná úplně od počátku pro .NET. Mateřským jazykem Silverlightu je C# a Silverlight také používá celou řadu pojmů z .NET. Důsledkem je, že vývojáři mohou psát kód pro Silverlight na straně klienta ve stejném jazyku, v jakém píší kód na straně serveru (jako jsou C# a VB), a mohou využívat mnohých stejných abstrakcí (jako jsou proudy, ovládací prvky, kolekce, generika a LINQ).

Plug-in Silverlightu má působivý seznam funkcí, některé jsou stejné jako ve Flashi, některé jsou zcela nové, nebo dokonce revoluční. Do nich patří:

  • Velmi široká podpora prohlížečů. Je příliš brzy na to, abychom mohli říct, jak dobře Silverlight pracuje na různých platformách. V současné době pracují beta sestavení Silverlight 1.1 na Windows Vista a na Windows XP (ve vesmíru PC) a na OS X 10.4.8 nebo novějších (ve světě Mac). Minimální verze prohlížečů, které podporuje Silverlight 1.1, jsou Internet Explorer 6, Firefox 1.5.0.8 a Safari 2.0.4. Přestože Silverlight 1.1 v současném době nefunguje na Linuxu, tým Mono vytváří pro Linux open-source implementaci Silverlightu 1.0 a Silverlightu 1.1. Tento projekt je známý pod názvem Moonlight a vyvíjí se s klíčovou podporou od společnosti Microsoft.
  • Je odlehčený. Aby lidé přijali Silverlight za svůj, dodává jim k tomu odvahu tím, že se instaluje s instalačním programem o malé velikosti (asi 4 MB), takže se snadno a rychle stáhne. Umožňuje to poskytnout veledůležité „bezzádrhelové“ zážitky z instalace, velmi podobně jako je tomu u Flashe (u Javy je to dost jinak).
  • Dvourozměrné kreslení. Silverlight poskytuje bohatý model pro dvourozměrné kreslení. Nejlepší na něm je, že veškerý obsah, který kreslíte, je definovaný ve formě tvarů a cest, takže s obsahem můžete manipulovat u klienta. Můžete dokonce odpovídat na události (jako jsou kliknutí myší na části grafiky), takže se snadno dodává interaktivita čemukoli, co nakreslíte.
  • Animace. Silverlight má animační model založený na čase, který umožňuje definovat, co se má dít, a jak dlouho to má trvat. Plug-in Silverlightu zvládá i otravné detaily, jako jsou interpolace mezilehlých hodnot nebo výpočet rychlosti přehrávání snímků (frame-rate).
  • Média. Silverlight přehrává Windows Media Audio (WMA), Windows Media Video (WMV7–9), MP3 audio a VC-1 (podporuje high-definition). Nejste svázáni s  ovládacím prvkem ActiveX Windows Media Player nebo s plug-inem prohlížeče – můžete vytvořit jakékoli průčelí (front-end), dokonce můžete přehrávat video v celoobrazovkovém režimu. Microsoft také poskytuje zdarma doprovodnou hostitelskou službu (na adrese http://silverlight.live.com), která poskytuje 4 GB prostoru pro ukládání mediálních souborů.
  • CLR. Nejpůsobivější ale je, že Silverlight zahrnuje zredukovanou verzi CLR, prakticky kompletní, s vyčerpávající sadou tříd jádra, svozem odpadků (garbage collector), s kompilátorem JIT (just-in-time), s podporou generiky atd. V mnoha případech mohou vývojáři vzít kód původně napsaný pro úplný CLR .NET a po mírných změnách ho použít v aplikaci Silverlightu.
  • Interakce s webovými službami. Aplikace Silverlight mohou volat webové služby ASP.NET staromódního stylu (.asmx), nebo webové služby WCF (Windows Communication Foundation). Mohou také přes HTTP odesílat ručně vytvořené požadavky XML.

Samozřejmě je třeba také poznamenat, co Silverlight neobsahuje. Silverlight je nová technologie, která se rychle vyvíjí, a je, co se týče firemních vývojářů, plná škobrtajících bloků, protože ti se musí při své práci spoléhat na bohatě vybavenou knihovnu předem vybudované funkcionality. Nejenže Silverlight postrádá jakýkoli druh funkcí pro vázání dat, zahrnuje také poměrně málo hotových, rovnou použitelných ovládacích prvků. Některé základní věci, jako tlačítka, si samozřejmě snadno vybudujete sami. Jiné, jako třeba textová pole, se budují svépomocí obtížně. V současné době se proto o Silverlight zajímají převážně ti vývojáři, kteří mají v plánu vytvářet hodně vysoce grafické, kompletně přizpůsobené uživatelské rozhraní, a kterým nevadí, že na něm budou muset docela dost zapracovat.

Přijetí Silverlightu

Silverlight je velmi nový – tak nový, že v době, kdy jsem psal tyto řádky, existoval jen ve dvou verzích (1.0 a 1.1), a obě ještě dostupné jen ve fázi beta. Z tohoto důvodu je velmi těžké předvídat, jak dobře na tom bude Silverlight tam, kde je Flash tak silný – je přijímán drtivou většinou.

V současné době je Silverlight jen na zlomku počítačů. U Microsoftu jsou však přesvědčeni, že bude-li pro Silverlight existovat neodolatelný obsah, uživatelé si plug-in stáhnou. Existuje řada faktorů, které hovoří pro tento argument. Flash rostl dramaticky po poměrně krátkou dobu, a Microsoft má evidentně zkušenosti s jinými webově založenými aplikacemi, které začaly nenápadně, v malém měřítku, ale nakonec se prosadily, a jsou přijímány všeobecně. (Namátkou jmenujme Windows Messenger, četné plug-iny ActiveX pro úlohy sahající od koordinace více uživatelů na MSN Games až k verifikaci Windows na MSDN.)

Klíčovou věcí, kterou je třeba mít na paměti, uvažujete-li o vývoji s modelem Silverlightu, je to, že ve většině případů budete Silverlight používat tehdy, budete-li chtít rozmnožit či posílit existující obsah vašeho webu (který bude pořád založený na HTML, CSS a JavaScriptu). Například, možná přidáte takový obsah Silverlightu, který zobrazí reklamu, nebo poskytnete v části webu pestřejší zážitky uživatelům (budou moci hrát nějakou hru, udělat znalecký průzkum, komunikovat s nějakým produktem, podniknout virtuální projížďku městem, atd.). Vaše stránky Silverlight mohou prezentovat obsah, který už je dostupný ve vašem webu, ale atraktivnějším způsobem, nebo ho s pomocí přidané funkce reprezentovat na kvalitativně vyšší úrovni těm uživatelům, kteří mají plug-in Silverlightu.

Je sice možné vytvořit web, který je založený jen na Silverlightu, ale není pravděpodobné, že byste se dali touto cestou. Skutečnost, že je Silverlight pořád ještě poměrně nový, a také skutečnost, že nepodporuje poděděné klienty (asi nejmarkantnější je, že nepodporuje uživatele Windows ME, Windows 2000 a Windows 98), obojí dohromady znamená, že s ním nemáte stejně široký dosah jako s obyčejným HTML. Mnohé firmy, které Silverlight přijaly, ho používají především k tomu, aby samy sebe vyzdvihly a odlišily se od ostatních online konkurentů, s nimiž soutěží na trhu.

Pozn. red.: Toto je ukázková část kapitoly o technologii Silverlight z knihy ASP.NET 3.5 a C# 2008 vydané nakladatelstvím Zoner Press. (Redakčně upraveno a kráceno.)

Původní diskuse ke článku

Původní diskuse k tomuto článku naleznete zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *