Souhrnné informace o nových technologiích WPF a Silverlight, které jsou od spuštění platformy .NET největšími vývojářskými projekty společnosti Microsoft. V závěru najdete srovnání technologií.
Ani v nejmenším nepochybuji, že jste se už s pojmy WPF a Silverlight setkali a víte přibližně, co znamenají, přesto bych vám rád nabídl jejich stručný popis a porovnání s konkurenčními produkty.
WPF
WPF je podsystém .NET Frameworku, který s sebou přináší jednotný přístup k UI, dokumentům a médiím. Využití najde především v aplikacích s bohatým grafickým rozhraním. Více o skladbě komponent a možnostech vám napoví obrázky.
Další informace o WPF hledejte v seriálu na serveru Vyvojar.cz. Pro nějaké ukázky se podívejte na seznam exitujících aplikací.
Grafika
WPF je zaměřené na graficky bohaté aplikace a můžete tedy plně využívat možností vektorové grafiky (graficky bezztrátová změna velikosti prvků založená na DPI, barevné gradienty, používání geometrických tvarů), animací (časové nebo založené na framech), multimédií (wma, mp3, avi, mpeg, wmv), efektů (stíny, záře, rozostření, průhlednost nebo zrcadlení) a samozřejmě možností 3D grafiky.
Rendering
Na první pohled se může zdát, že taková aplikace musí strašně zatěžovat procesor, ale většinou tomu tak nebude. WPF beží na DirectX, veškerá grafika je tak renderována na grafické kartě – to platí v případě, že grafická karta hardwarově podporuje vše od DirectX 7 po DirectX 9. Vertex a Pixel shadery musí být ve verzi 2.0, jinak může nastat situace, kdy je aplikace častečně renderována na GPU a částečně na CPU. V nejhorším případě bude aplikace celá renderovaná na CPU, tehdy dojde ke značnému zpomalení aplikace a PC (v závislosti na síle procesoru). Více informací najdete na stránkách MSDN.
XAML
WPF do světa desktopových aplikací přináší něco „zcela“ nového, jde o deklarativní programování, které přináší možnost oddělit aplikační logiku od designu (v jednom souboru máte XAML kód a v druhém logiku napsanou v některém z .NET jazyků). Vše se děje prostřednictvím značkovacího jazyku XAML. Mezi jeho hlavní výhody patří čistota, jednoduchost a rychlost psaní kódu.
<Border Background="SkyBlue" BorderBrush="Black" BorderThickness="1" DockPanel.Dock="Top">
<Menu Background="SkyBlue">
<MenuItem Header="Language">
<MenuItem Header="English" Name="english" />
<MenuItem Header="German" Name="german" />
<MenuItem Header="Italian" Name="italian" />
</MenuItem>
</Menu>
</Border>
Ve výsledku je XAML převeden do zdrojového kódu a přeložen do binární formy. Nemusí sloužit jen k definici designu, ale také k definici systémových zdrojů nebo celé aplikace. Dobrým místem k vyzkoušení XAMLu je online editor Silverlight Pad.
Vývojové nástroje
Pro vývoj pod operačním systémem Windows XP a Windwos Server 2003 budete potřebovat .NET Framework 3.0, Windows SDK a jakoukoliv edici Visual Studia 2005 s rozšířením pro WPF nebo Visual Studia "Orcas". Pod Windows Vista si vystačíte s instalací Visual Studia, ale rozhodně neuděláte chybu, když zkusíte také Expression Studio.
Silverlight
S touto technologií jste se donedávna mohli setkat pod kódovým označením WPF/E. K jejímu přejmenování na Silverlight došlo 16. dubna 2007. Jedná se o podmnožinu WPF, která nepochybně zaujme tím, že je nezávislá na .NET Frameworku a je k dispozici pro více platforem. Je totiž šířena ve formě pluginu, který je nutné, podobně jako Flash, doinstalovat do prohlížeče. Další informace vám mohou poskytnout přednášky z cyklu Build The Game.
V současné době jsou k dispozici dva pluginy, první nese označení Silverlight 1.0 Beta a druhý, zajímavější, Silverlight 1.1 Alpha. Proč je zajímavější? Jeho velikost o moc nepřesahuje 4 MB, a přesto v sobě obsahuje upravený CLR 2.0 s novou vrstvou DLR, která usnadňuje portaci dynamických jazyků (Python, Ruby) na platformu .NET. Podporované vlastnosti jistě nejlépe prozradí tento plakát.
Podporované platformy
V současné době jsou podporovány operační systémy Windows Vista, Windows XP SP2 a Apple Mac OS X, prohlížeče IE 6, IE 7, FF 1.5.0.8, FF 2.0.x a Safari 2.0.4. Připravuje se oficiální podpora operačního systému Windows 2000 a prohlížeče Opera.
Velký otazník visí nad operačním systémem Linux. Není vůbec jasné, zda se oficiální podpory dočkáme, ale vzhledem k tomu, že jsou základní části technologie uvolněny pod opensource licencí, nebude to velký problém. Vývojaři MONO Frameworku už mají připravený koncept vlastního pluginu s názvem Moonlight, který potenciál technologie Silverlight zpřístupní také na dalších operačních systémech.
Využitelnost
Vzhledem k možnostem a základům technologie je její využití velmi široké. Můžete ji použít k tvorbě animovaných her, inteligentních reklam, elektronických knih, přehrávačů multimedií, ale taky k tvorbě rozsáhlých aplikací pro střih videa a grafických editorů. Samozřejmostí jsou menu začleněná do klasických webů. Prostě můžete vytvořit téměř vše, co zvládnete s „velkým“ WPF. Na komunitních stránkách Silverlight.net najdete galerii příkladů k oběma verzím pluginu.
Nátroje pro vývoj
K profesionálnímu vývoji budete potřebovat stejné nástroje jako u „plné verze“ WPF. K Visual Studiu "Orcas" musíte doinstalovat Microsoft Silverlight Tools. Další informace o vývojařských nástrojích získáte na oficiálních stránkách.
Srovnání technologií
V současné době jsou dostupné dvě verze, Silverlight 1.0 Beta a Silverlight 1.1 Alpha. Jaké jsou mezi nimi rozdíli a jakou verzi vyzkoušet, na to vám snad odpoví následující tabulka.
Vlastnost | Silverlight 1.0 Beta | Silverlight 1.1 Alpha |
Go-live licence | ano | ne |
Programovací jazyky | Javascript | Javascript, JScript, C#, VB.NET, IronPython 2 |
Značkovací jazyk | XAML | XAML |
Host | (X)HTML stránka | (X)HTML stránka |
Uložení aplikační logiky | JS soubory/JS | Managed assemblies (DLL)/JS soubory/JS |
Podporované/dostupné knihovny | AJAX | .NET (IO, Threading, Networking, Collections, Generics, LINQ), AJAX |
Managed HTML DOM API | ne | ano |
Pokročilé prvky | ne | Sample Control Kit (Button, Listbox, …) |
Podpora dynamických jazyků | ne | ano |
Interakce Javascriptu a .NETu | ne | ano |
Zařazení .NET typů do JSON | ne | ano |
Způsob spouštění kódu | Interpetovaný | Nativní (JIT kompilace, Managed kód) → rychlejší |
Velikost pluginu | ~ 2 MB | ~ 4 MB |
Doba instalace | ~ 15 sekund | ~ 20 sekund |
Další tabulka má za úkol souhrnně srovnat technologie Silverlight, WPF a konkurenční Flash/Flex.
Vlastnost | Silverlight | WPF | Flash/Flex |
2D grafika/animace s podporou multimedií | ano | ano | ano |
Standardní video kodek | ano | ano | ne |
Video formáty od HD až po mobilní formáty | ano | ano | ne |
Hardwarová akcelerace | ano | ano | ne |
XAML vrstva zaměřená na SEO 1 | ano | ne | ne |
Výběr z mnoha jazyků 2 | ano | ano | ne |
Přímá serverová a aplikační platforma | ano | ano | ne |
Ochrana obsahu (DRM) | ano | ano | ne |
Klientské playlisty pro ad-inserting | ano | ano | ano |
Robustní nástroje pro zobrazení videa | ano | ano | ne |
Podpora výkonných vícejádrových klientů | ano | ano | ne |
Fullscreen HD video | ano | ano | ne |
Podpora pro HW akcelerované video | ano | ano | ne |
Podpora offline dokumentů | ne | ano | ne |
Výměna dat s webovým serverem (AJAX, WebService) | ano | ano | ano |
Šifrovaný obsah | ne | ano | ne |
Binární nebo textová forma | textová 3 | binární | binární |
Nástroje | ano | ano | ano |
Podpora 3D grafiky | ne | ano | ne |
Prvky třetích stran | ano 4 | ano | ano |
Velikost klienta | ~ 2 MB / 4 MB | ~ 50 MB | ~ 2 MB |
Podporované platformy | Windows, Mac 5 | Windows 6 | Windows, Mac, Linux, Mobile (light) 7 |
1 prezentační vrstva založená na XML, která usnadňuje indexaci vyhledávači
2 ve verzi 1.1 Alpha jsou podporovány jazyky Javascript, JScript, C#, VB.NET, IronPython a brzy se dočkáte podpory jazyků IronRuby a VBx (VB script)
3 později možná dojde ke změně; v současné době můžete využít GZIP komprese pro redukci XAML kódu
4 použijte wpfeControl.createFromXaml(xamlstring);
5 Windows Vista a Windows XP SP2, IE 6, IE 7, FF 1.5.0.8 a 2.0.x; Apple Mac OS X, FF 1.5.0.8 a 2.0.x, Safari 2.0.4; pravděpodobně bude podporován také OS Windows 2000 i Linux a webový prohlížeč Opera
6 .NET 3.0: Windows Vista a Windows XP SP2; IE 6, IE 7
7 Flash Player 8: Windows Vista a Windows XP; IE 6 a IE 7; Windows 2000 s IE 5.x; FF 1.x, Mozilla 1.x, Netscape 7.x a vyšší, AOL 9, Opera 7.11 a vyšší; Mac OS X, IE 5.2, Mozilla 1.x, FF 1.x, Safari 1.x a vyšší.
Závěr
Doufám, že jsem poskytl dostatek informací pro to, abyste si dokázali objektivně vytvořit vlastní názor na tyto nové nepochybně inovativní technologie. Možnost napsat celý web v jednom jazyku mi přijde velmi lákavá.