Toto vnímání bylo zcela oprávněné díky silnému zaměření platformy na video, grafiku a animace. Necelý rok po uvedení první verze se však objevily první náznaky strategie, kterou Microsoft komunikoval od počátku: Silverlight je RIA platformou pro vytváření všech typů aplikací včetně firemních. Ve verzi 2.0 proto již bylo možné najít podporu jazyků, jako jsou C# nebo Visual Basic, ovládací prvky, přístup k datům, podpora sítí nebo kompilovaný kód. Předposlední verze s číslem 3.0 v nastoleném trendu pokračovala a pro vytváření firemních aplikací přinesla technologie, jakými jsou například možnost běhu aplikace mimo prohlížeč nebo pokročilá navigace. Vznikl také Silverlight toolkit (http://silverlight.codeplex.com/) neboli knihovna ovládacích prvků významně zrychlující vývoj aplikací.
Před měsícem byla uvolněna Silverlight 4, a jak se dalo očekávat, přinesl novinky, které vedou na obě strany – k použití v podnikové oblasti i v multimédiích.
Novinky v Silverlightu 4
Zůstaňme ale nyní u hlavního tématu firemních aplikací. Mezi jejich nejčastější funkce patří zpracování dat umístěných v relačních databázích. Pokud uživatel potřebuje zpřístupnit webové aplikaci taková data, jež jsou často umístěna na databázovém serveru, musí k tomu použít webové služby. Se Silverlightem 4 přichází i vylepšená verze WCF RIA Services, která slouží pro vytváření vícevrstvých aplikací. Cílem tohoto frameworku je zjednodušení úkolů, které se bez jejich použití musely dělat ručně. Vytvořená řešení pak nesou typické znaky firemních aplikací, jakými jsou podpora transakcí, stránkování a validace dat nebo autentizace a autorizace uživatelů. Veškerá komunikace mezi Silverlight aplikací a webovou službou se může odehrávat jak v optimalizovaném binárním formátu, tak v otevřeném OData (otevřená extenze formátu ATOM).
Na serverové straně (obr. 1) projektu se pomocí Visual Studia vygeneruje model databáze (Entity), datová vrstva a zejména tzv. doménová služba.
Jejím úkolem je zpřístupnit datovou vrstvu prostřednictvím webových služeb. Podle doménové služby je automaticky generován na straně Silverlight aplikace protějšek – doménový kontext. Jeho úkolem je asynchronně komunikovat s doménovou službou.
Ve chvíli, kdy se začal Silverlight využívat pro firemní aplikace, se ukázalo, že model oddělení vizuálního návrhu ve formě jazyka XAML a aplikační logiky ve formě libovolného .NET jazyka přispívá k větší čistotě kódu a lepší spolupráci mezi designérem uživatelského rozhraní a aplikačním programátorem. Vedlejší efekt této dělby práce však příliš často způsobuje, že velká část aplikační logiky je umísťována do kódu asociovaného s vizuálními prvky. Jde o špatný návrh, zejména pokud logika s vizuálním elementem přímo nesouvisí. Taková aplikace se navíc velice obtížně testuje. Pro odstranění tohoto nešvaru lze s výhodou využít návrhový vzor s názvem Model-View-ViewModel. Jak je vidět na obrázku 2, vizualizace informací reprezentovaná pohledem (View) si nese pouze grafickou definici (XAML) a případný kód přímo s ní spojený (např. animace). Další logika, která je navázána na data, je oddělena do samotné vrstvy (ViewModel), jež spojuje jednotlivé prvky uživatelského rozhraní s datovou vrstvou (Model nebo Doménový kontext, v případě WCF RIA Services). Tento návrhový vzor je přímo podporován ve vývojářských nástrojích Expression Blend, jak je vidět na obrázku 3.
Porovnáme-li současné aplikace běžící na desktopu a v internetu, lze jednoznačně říci, že co do komplexnosti a velikosti jednoznačně vedou desktopové. Jak na takovou situaci budou reagovat aplikace, které z lokální verze převedeme na internet? Silverlight 4 oslovuje tuto oblast dvěma technologiemi – možností instalovat Silverlight aplikaci lokálně, mimo prohlížeč (OOB), a schopností rozdělit Silverlight aplikaci do menších částí a ty podle potřeby stahovat nebo modifikovat (MEF).
Záměrem instalace Silverlight aplikace na lokální počítač neboli Out-Of-Browser (OOB) je zpřístupnit její funkci i v době, kdy uživatel nemá k dispozici připojení k síti nebo pokud aplikace vyžaduje užší integraci s operačním systémem a lokálně instalovanými aplikacemi. Čtvrtá verze Silverlightu rozšiřuje možnosti běhu v tomto scénáři o následujících novinky:
• Možnost zvýšení důvěry lokálně běžících aplikací. Silverlight aplikace jakožto internetové aplikace nemohou přistupovat k funkcím lokálního operačního systému nebo aplikacím z důvodu zajištění bezpečnosti. Silverlight 4 aplikace však může programátor pro OOB běh napsat tak, že si od uživatele mohou vyžádat povolení přístupu k lokálním zdrojům. Na tuto skutečnost je navázána celá řada vylepšení – přístup do specifických adresářů, jako jsou dokumenty, obrázky apod., integrace s lokálně instalovanými aplikacemi (např. Microsoft Office), možnost digitálního podpisu aplikace nebo síťová komunikace s aplikacemi na různých doménách.
• Rozšíření stávajících možností. Do této skupiny lze řadit např. možnost vykreslení HTML obsahu uvnitř Silverlight aplikace. Jinými slovy řečeno, můžeme otočit běžný scénář, kdy je Silverlight aplikace hostována na webové stránce, do stavu, ve kterém Silverlight aplikace pomocí WebBrowser komponentů zobrazuje obsah webové stránky v sobě samé.
Podívejme se ještě krátce na technologii Managered Extensibility Framwork (MEF). Pomocí tohoto frameworku lze Silverlight aplikace modularizovat a zajistit, že start aplikace bude výrazně kratší, protože není nutné hned na počátku celou aplikaci stáhnout a nahrát do paměti. Druhým důvodem k použití MEF je zavedení modularity vedoucí ke snadnějšímu vývoji, údržbě, podpoře týmové práce a opakovatelné použitelnosti kódu.
Konkurujeme si sami?
Po přečtení prvních odstavců se na mysl určitě dere otázka, zda Microsoft Silverlight nekonkuruje dalším technologiím z dílny Microsoftu, jako je Windows Presentation Foundation (WPF). Odpověď je jednoduchá a krátká – „Ne.“ A to hned z několika důvodů:
• Silverlight je technologií nezávislou na operačním systému (funguje na Windows, OS X a Linuxu) i na prohlížeči. WPF vedle toho striktně vyžaduje operační systém Windows, na který je úzce vázán za účelem získat z něj maximum možností a výkonu. WPF je dále pouze prezentační vrstvou standardních desktopových aplikací napsaných nad .NET frameworkem. Silverlight je nejen prezentační vrstva, ale celým běhovým prostředím pro Silverlight aplikace.
• Silverlight je vhodný v těch aplikacích, které nevyžadují úzkou vazbu na operační systém a zejména specifický hardware.
• Silverlight je primárně určen pro webové aplikace (RIA) s možností běhu v offline módu.
• V Silverlightu není přímý přístup k databázím, nýbrž se k tomu používají webové služby. Nejde o nedostatek, ale o jediný způsob, jak s daty v RIA aplikacích pracovat rozumně.
Další informace týkající se srovnání technologií je možné získat na mém blogu (http://blogs.msdn.com/kaci/archive/2009/07/10/silverlight-3-0-pot-ebujeme-je-t-wpf.aspx).
Kam pro další informace
Prvním zdrojem novinek pro zájemce o tvorbu firemních aplikací s použitím Silverlightu je určitě nejnovější videotutoriál doprovázený praktickými příklady na oficiálním portálu Silverlight platformy (http://www.silverlight.net/learn/handsonlabs/). Nástroje potřebné pro vývoj je možné získat na portálu Microsoft Expression (http://www.microsoft.com/expression/). Třetím zdrojem informací jsou semináře a konference pořádané českou pobočkou Microsoftu, jejichž seznam lze najít na adrese http://msdn.microsoft.cz/.
http://www.microsoft.com/cze/web/silverlight/
Autorem článku je Dalibor Kačmář, manažer pro platformní strategii, Microsoft