Upload
jiri-danihelka
View
559
Download
0
Embed Size (px)
Citation preview
Úvod do XAMLJiří Danihelka
Co se dnes dozvíte• Co je to jazyk XAML
• Kde se s ním setkáte
• Jak se v XAML programuje
• Proč je dobré XAML používat
Co je to XAML• eXtensible Application Markup Language
• pokud vynecháme písmeno A dostanemeXML - eXtensible Markup Language
• XAML je značkovací jazyk založený na XML, který se používá pro popis grafického rozhraní aplikací
• první verze vyšla v červnu 2008
Jak XAML využít• Vhodné rozhraní mezi UI designérem a
programátorem
• Důsledné oddělení designu a aplikace
• Dá se automaticky zpracovávat ve vizuálních nástrojích
Kde se s XAML setkáme?
Kde se XAML používá• WPF (desktop aplikace)• Silverlight - např. http://photosynth.net/• Windows Phone 7• Windows Store aplikace• Windows Phone 8
• Další okrajové oblastiWorkflow, Zune player, Pixelsense• V budoucnu snad i Xbox
Ukázka XAML kódu
Srovnání délky zápisu
// Create the StackPanel StackPanel stackPanel = new StackPanel(); this.Content = stackPanel; // Create the TextBlock TextBlock textBlock = new TextBlock(); textBlock.Margin = new Thickness(20); textBlock.Text = "Hello world!"; stackPanel.Children.Add(textBlock);
// Create the Button Button button = new Button(); button.Margin = new Thickness(10); button.Content = "OK"; stackPanel.Children.Add(button);
<StackPanel> <TextBlock Margin="20">Hello world!</TextBlock> <Button Margin="10" HorizontalAlignment="Right">OK</Button> </StackPanel>
• XAML
• C#
Je vůbec nutný další jazyk?• dříve vizuální nástroje ukládaly práci přímo
v programovacím jazyce• např. WinForms v jazyce C#• strojově generovaný kód s varováním
• Problémy• nelze zajistit kompatibilitu mezi nástroji• ruční editace je problematická
• Je možné automaticky zpracovávat libovolný zdrojový kód?• odpověď nám dá teoretická informatika –> halting problem
Problém zastavení Turingova stroje• Zadání
Na vstupu je zdrojový kód nějakého programu v programovacím jazyce, vašim úkolem je vytvořit program-analyzátor, který rozhodne, zda se kód na vstupu někdy skončí či ne• Částečná řešení
Kód spustím (interpret jazyka)Kód krokuji a srovnávám stavyNěkdy ani jedno nepomůže (v cyklu přičítám 1)• Nelze vytvořit algoritmus, který funguje vždy.
Závěry plynoucí z halting probému• Kód zapsaný v programovací jazyce nelze
v obecném případě automaticky analyzovat.
• DůsledekProgramovací jazyky nejsou vhodné pro zápis věcí, které se mají automatizovaně analyzovat a zpracovávat.Pokud chceme vytváření aplikací částečně zautomatizovat, není používání programovacího jazyka vhodné.
Možná řešení• Kód zapsaný v programovací jazyce nelze
v obecném případě automaticky analyzovat.
• Budeme používat pouze nějaké speciální případy
• Nebudeme používat programovací jazyk, ale nějaký zjednodušený (XAML)
Jak zjednodušit programovací jazyk• Některé operace zakážeme• Cykly• Volání funkcí• Měnit hodnotu proměnných
• Co nám tedy zbude• Volání bezparametrických konstruktorů• Inicializace parametrů v konstruktoru• Napojení na kód v C#
XAML vs C# pro aplikační rozhraníVýhody jazyka XAML• Oddělení designu a
aplikační logiky• Jednodušší testování• Kratší a srozumitelnější
zápis• Mohu použít vizuální
návrh GUI
Výhody jazyka C#• Celá aplikace v jednom
jazyce (nemusí být výhoda)• Mohu používat cykly a
jiné pokročilejší konstrukce• Prvky mohu přidávat
dynamicky
XAML vs HTML pro design aplikacíVýhody jazyka XAML• Snazší portování mezi
Silverlight, WPF, WP7, Windows 8
• Velmi snadné portování mezi Windows 8 a Windows Phone 8
• Dobře spolupracuje s C#• Moderní; Navrženo pro GUI• Větší komunita; lépe seženete
učebnice a jiné materiály
Výhody jazyka HTML• Snazší portování na
webovou aplikaci• Snadněji najdete
vývojáře, kteří technologii ovládají
Děkuji za pozornost
Dotazy?
Jiří Danihelkadanihelka(zavináč)live.com