Download pptx - Úvod do XAML

Transcript
Page 1: Úvod do XAML

Úvod do XAMLJiří Danihelka

Page 2: Úvod do XAML

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

Page 3: Úvod do XAML

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

Page 4: Úvod do XAML

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

Page 5: Úvod do XAML

Kde se s XAML setkáme?

Page 6: Úvod do XAML
Page 7: Úvod do XAML
Page 8: Úvod do XAML
Page 9: Úvod do XAML
Page 10: Úvod do XAML
Page 11: Úvod do XAML
Page 12: Úvod do XAML
Page 13: Úvod do XAML

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

Page 14: Úvod do XAML

Ukázka XAML kódu

Page 15: Úvod do XAML

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#

Page 16: Úvod do XAML

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

Page 17: Úvod do XAML

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.

Page 18: Úvod do XAML

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é.

Page 19: Úvod do XAML

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)

Page 20: Úvod do 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#

Page 21: Úvod do XAML

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

Page 22: Úvod do XAML

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í

Page 23: Úvod do XAML

Děkuji za pozornost

Dotazy?

Jiří Danihelkadanihelka(zavináč)live.com