Proč jsem 14 dní nechal blog spát? Studoval jsem Silverligt 5.0 !

Na konferenci Firestarter byl poprvé odkryt seznam nových funkcí v Silverlight 5.0. Seznam, který se od Microsoftu očekával na konferenci PDC 2010 o několi týdnů dříve. Protože se tak nestalo, vzedmula se vlna spekulací, o kterých jsem psal dříve. Než se podívám na technickou stránku SL 5.0, ještě uvedu, že veřejná beta verze produktu by se měla objevit v prvním kvartálu roku 2011. Finální verze pak na sebe typicku nenechá čekat déle než další čtvrtrok.

Ohlášené novinky jsou směrovány do dvou oblastí, jak jsem již psal ve výše zmíněném postu. První oblastí jsou multimédia, druhou pak vývoj (business) aplikací. V obou oblastech se nedá absolutně předpokládát, že by se HTML 5 v horizontu 10 let dotáhlo. Jsem velkým příznivcem HTML 5, ale manicky nepřeceňuji jeho možnosti a reálně vnímám rychlost přijímání tohoto standardu. Pokud v následujícím seznamu najdete funkčnosti, které vám do projektů padnou jako ušité, neváhejte je příští rok použít. Nebude to chybná investice.

Novinky v oblasti multimédií

Vylepšené dekódování a playback H.264 videa přímo na GPU počítačů. Z této možnosti lze zejména benefitovat na těch nejmenších počítačích, kde výkon CPU by zcela znemožnil nebo omezil kvalitu videa. Navíc se totou formou práce s náročnými médii ušetří více energie.

Pro přehrávání videa vyšší rychlostí je typické zvýšení frekvence zvukové stopy. Nová funkce pod názvem TrickPlay zajistí, že při zrychleném přehrávání zůstane zvuk frekvenčně nezměněn.

Vylepšený Power management zajistí, že během přehrávání videa nedojde k usnutí počítače nebo spuštění chrániče obrazovky. Jakmile video ale doběhne, může k usnutí počítače dojít.

Přehrávání ondemand i live videa v Silverlightu se dnes stalo běžnou součástí celé řady televizních stanic. Pokud si dnes připojíme PC k televizoru, určitě se bude hodit novinka, která umožní ovládat SL player pomocí dálkového ovladače.

DRM je jednou z předních deviz Silverlightu, pokud jej v této oblasti srovnáme s jeho největším konkurentem – Adobe Flash. I v této oblasti lze očekávat vylepšení, zejména při přepínání mezi různými DRM média zdroji.

Novinky v oblasti aplikací

Jedna z vlastností SL, kterou mám rád nejvíce, je data binding. V současné verzi nám však neumožňuje debugování a tak někdy hledání chyb je poněkud obtížné. Ve verzi 5 však toto omezení zcela padá. Prakticky bude možné umístit breakpoint do data binding výrazu a kód běžně krokovat.

Do předchozích verzí Silverlightu byl přidán MVVM model, který umožňuje velice efektivně realizovat business aplikace. Podpora MVVM ve verzi 5 získává novinku ve formě Markup Extensions, které umožňují spouštět kód během parsování XAML kódu. Jde o možnost, která je známá z WPF a nyní bude dostupná i v SL. Pokud se již nyní chcete podívat jako se WPF XAML Markup Extension používá, zde je návod.

V oblasti data bindingu je objevuje ještě několik dalších menších novinek, mezi které patří:

  • Podpora implicitních DataTemplates – template je následně implicitně použit u zvoleného typu objektů.
  • Možnosti použít biding výraz v setteru stylu tak, aby se styl odkazoval na jiné vlastnosti. Současné možnosti Setterů jsou popsány zde.
  • Ve WPF máme již dávno možnost se odkazovat ze šablony (template) na objekty, které jsou ve vizuální hierarchii ovládacích první výše. SL5 proto přidává možnost specifikovat tzv. Ancestor RelativeSource, který lze např. použít v DataTemplate ListBoxu pro propojení s vlastností prvku, který jej vlastní. Ukázku z WPF lze vidět třeba zde.
  • Nově bude také k dispozici událost DataContextChanged.

WCF a RIA services jsou velmi často využívanými funkčnostmi. Nyní je rozšířena podpora bezpečnosti o WS-Trust, který byl často žádán. Zcela nově se zde objevuje tzv. Low-latency Networking. Úkolem této novinky je co nejvíce zrychlit komunikaci uvnitř celé síťové architektury s cílem umožnit vytváření aplikací, které budou spolu po síti komunikovat co nejblíže reálnému času. Hodit se to může jak pro business aplikace (ScottGu uváděl příklad aplikací pro obchodování akcií), ale stejně dobře ji mohou využít i multiplayer hry.

Mezi novinky v oblasti RIA služeb patří RIA services pro Windows Azure. Na Azure compute roli se nasadí backed, který bude umožňovat např. jednoduchý přístup k Azure Table Storage.

Přeskočme na chvíli na jiný konec novinek, na vizuální vylepšení. Vedle běžného způsobu animování jednotlivých elementů pomocí storyboardů přibývá metoda Inter-Layout Transition. Zde přímo pomocí prosté deklarace v XAMLu animovaného elementu může provádět jeho animaci. Pro tyto scénáře není nutné vytvářet storyboardy tak, jak je známe. Určitě si prohlédněte první demo Johna Pappy na videu dole. Mnohokrát diskutovaným tématem na Silverlight fórech byla čitelnost písma. Ve verzi 5 se zlepšila díky technologii Pixel Snapping. Když už jsem u textu, určitě stojí za zmínku podpora více-sloupcového rozložení textu a možnosti provázat různé text kontejnery tak, aby text mohl mezi nimi protékat. Mezi novinky také patří možnost obtékání textu kolem libovolných elementů. Počet dostupných fontů lze rozšířit díky podpoře OpenType. U typů fontů lze nově také přesně nastavovat tracking a leading.

Pokud potřebujeme tisknout dokumenty, s výhodou lze v Silverlightu 5 využít podpory Postscriptu, včetně virtuálního print pohledu, který je odlišný od obsahu obrazovky. Tiskou tak lze cokoli, co si představíte a co není na obrazovce. Tato funkce může být velmi dobře použitelná pro různé reporty nebo business dokumenty.

Pokud sledujete dění kolem Silverlightu, asi vám neuniknul úžasný projekt PivotViewer. Ten umožňuje velice intuitivně vizualizovat kolekce dat. Tým tohoto projektu se připojil k SL týmu a PivotViewer se stane ve verzi 5 jeho nedílnou součástí. Vylepšení, která lze očekávat jsou z oblasti větší customizace komponenty a dále pak integrace se zdrojem dat. Ukázka, která proběhla na konferenci (viz video dole), demonstruje, jak bude možné např. integrovat do zobrazení zboží z eBay.com nákupní košík.

Sestupme ještě o úroveň níže a podívejme se na novinky z oblasti grafiky. Pomocí Immediate mode graphics API bude možné přímo kreslit do GPU počítače. Prostřednictvím GPU akcelerace vytvářet aplikace s 3D rozhraním a lépe vizualizovat data. Opět si dovolím upozornit na živé demo čase 1:26:00. Jak dobře říká Steve, toto demo si budete dlouho pamatovat.

Out-of-browser je funkce podporovaná již v dřívějších verzí Silverlightu. Přesto je ještě celá řada oblastí, kde lze přitlačit na pilu. První je podpora více oken v Silverlight aplikaci. Aplikace může nyní otevřít více oken, obdobně jak běžná desktopová aplikace. Příklady uváděné na konferenci Firestarter dokonce ilustrovaly možnost „vytržení“ části UI aplikace, ze které se stane samostatné okno. Princip lehce podobný možnosti oddělené jednoho tabu prohlížeče a jeho umístění do samostatného okna.

Pokud provozujeme Silverlight aplikace mimo prohlížeč, rozšiřuje se možnost volat knihovny mimo sandbox. Současná verze umožňující volat COM rozhraní se rozšiřuje na možnost volat unmanaged kód a Win 32 API přes p/Invoke. Pokud je navíc tato aplikace provozována v spravovaném prostředí, lze na aplikace aplikovat nové Group Policy. S jejich pomocí leze některé možnosti SL zakázat nebo naopak přísná pravidla sandboxu do jisté míry rozvolnit.

Samotnou kapitolou jsou nové funkce ve vývojových nástrojích. Pro Visual Studio 2010 budou existovat nová rozšíření, jenž umožní automatizované testování uživatelského rozhraní a dále budu schopen lépe profilovat aplikace (paměť, CPU a řešení problému s vlákny). Osobně bych se asi na chvíli zastavil u otázky automatizované testování UI. Pomocí funkce Coded UI lze generovat testy UI na základě záznamu akcí uživatele, vygenerovaný test případně upravit a následně automatizovaně spouštět za různých podmínek a v různých verzích aplikace.

Pro vlastníky 64-bitových počítačů s 64-bitovými internetovými prohlížeči mám také dobrou zprávu – SL 5 bude konečně existovat i v 64-bitové verzi!

Na závěr bych rád zmínil jedno použití Silverlight 5 pro vytváření LOB aplikací. Nový SQL server sebou ponese nový systém vizualizace reportů, dnes pod kódovým jménem Crescent. Pomocí něj bude možné generovat 5-ti dimenzionální reporty (osy X a Y, velikost, barva a animace v čase). Prakticky se můžete podívat jak na záznam z konference Firestarter (1:49), ale také doporučuje shlédnout naprosto úžasné video na YouTube. To mne opravdu dostalo!

Těšme se na jaro!

Kdo konferenci Firestarter nesledoval živě, přidávám videozáznam: