Windows Presentation Foundation Úvod a přehled WPF Layout Prvky Ovládací prvky
Windows Presentation Foundation Úvod
Potřeba lépe organizovat informace Výzvy Hardwarová inovace přestihuje software Displeje s vysokým DPI Široké obrazovky s možností rotace (TabletPC) GPU roste 3x rychleji než Moorův zákon Přetížení informacemi Dokumenty, hudba, video, fotografie, atd. Potřeba lépe a chytřeji visualizovat informace
Jednotný přístup k UI, dokumentům a médiím Aplikační model Deklarativní programování - XAML Jednoduchá integrace médií Data binding Bohaté možnosti stylů a témat Hostování uvnitř prohlížeče Grafický model 2D & 3D grafika, rastrová grafika Text Video a audio Animace Model dokumentů Pevné, plovoucí a adaptivní rozložení Pokročilá typografie Řízení práv Media Integration Layer Element Services Aplikační model Model dokumentů Grafický model Composition and Rendering .NET Framework DirectX WPF Nástroje a jazyky Context: First pillar of Avalon UI, docs and media are all just one single platform now. Avalon is based on managed code, as well as DirectX (specifically Direct3D is the rendering engine). You can mix and match graphics, controls, media on a single surface, using layout, animation, styling and data binding to connect them together.
WPF komponenty Document Services User Interface Services XPS Documents Application Services Controls Databinding Packaging Services Deployment Services Layout Media Integration Layer Base Services Imaging 2D Text Audio XAML Effects 3D Video Accessibility Animation Input & Eventing Composition Engine Property System
Deklarativní tvorba aplikací WPF přináší model postavený na oddělení grafického návrhu aplikace a aplikační logiky Model známý z ASP.NET Návrh vzhledu pomocí jazyka XAML (eXtensible Application Markup Language) XAML je převeden do zdrojového kódu a přeložen do binární formy Je postaven na existenci neúplných tříd (partial class) XAML nemusí sloužit pouze k definici grafického vzhledu, ale k definici Aplikace jako celku Systémových zdrojů atd.
Deklarativní programování Návrh uživatelského rozhraní Standardním způsobem Button btn = new Button(); btn.Background = Colors.Red; btn.Content = "Tlačítko!"; this.Children.Add( btn ); Deklarativně v jazyce XAML (eXtensible Application Markup Language) <Button Background="Red">Tlačítko!</Button>
Kombinace XAML a kódu Typicky je v XAML definován vzhled, animace, vazba na datové zdroje, zachycení a zpracování některých událostí V „kódu v pozadí“ je realizována aplikační logika XAML <Button x:Name="tlacitko" Background="Red" Click="btn_click"> Tlačítko! </Button> partial class Window1 : Window { public Window1() { InitializeComponent(); } public btn_click(object sender, RoutedEventArg e) { … } }; + Kód v pozadí partial class Window1 : Window { Button tlacitko; void InitializeComponent() { tlacitko = new Button(); tlacitko.Background = “Red"; tlacitko.Click += btn_click; this.AddChild(tlacitko); } };
Jmenné prostory v XAML kódu Kořenový element každého XAML dokumentu musí deklarovat používané jmenné prostory <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:MojePrvniWPFAplikace.Window1"> <Button … /> </Window> Jmenný prostor Windows Presentation Foundation Jmenný prostor XAML C#/VB.NET jmenný prostor, v němž je založen kód v pozadí
Navigace v aplikaci WPF aplikace nabízí nový typ „explorer“ navigace Automaticky jsou generována tlačítka Zpět a Vpřed Logika a programová podpora zabudována do objektu aplikace (Application) <TextBlock> Koukni také na stránku <Hyperlink NavigateUri="Window2.xaml">Page 2</Hyperlink>. </TextBlock> <Button Click="nextPage_clicked"> Další stránka </Button> void nextPage_clicked(object sender, RoutedEventArgs e) { NavigationService.Navigate(new Uri("Window2.xaml", UriKind.Relative)); }
Typy aplikací Plné lokální aplikace Web Browser aplikace Instalovány na lokální počítač Přístup k systémovým zdrojům definován právy uživatele (Full Trust) Web Browser aplikace Běží v prostředí prohlížeče Využívá typické Forward-Back stránkování Omezení práv aplikace (Partial Trust) Aplikace nemůže požádat o dodatečná práva (běží nebo ne) Potřebná práva pro běh aplikace jsou definována v projektu aplikace (záložka Security – Zone & Permissions)
Srovnání typů aplikací Vlastnost Lokání aplikace Browser aplikace Běhové prostředí Lokální OS IE 7 Důvěra Plná Omezená Dostupnost Online/Offline Online Nasazení Nejlépe ClickOnce nebo MSI Nejlépe ClickOnce
Instalace ClickOnce Přirozený vývoj „bezdotykové instalace“ z .NET 1.x Založeno na HTTP protokolu pro .NET aplikace exe stažen, uložen, spuštěn ClickOnce Podporuje instalaci obou typů aplikací (plné i browser) 2 scénáře nasazení Online/offline Pouze online Odstraňuje problémy předchozí verze; nyní umí Podpora v nástrojích (VS 2005, SDK) Sledování postupu instalace Distribuce jiných souborů než assembly (data, COM, nápověda) Možnost požádat o vyšší povolení Je vyžadován digitální podpis instalace
Instalace \demo demo_1_0_0_0.application demo.application Manifest nasazení publish.htm setup.exe \demo\demo_1_0_0_0 demo. exe.manifest Aplikační manifest demo. exe.deploy *.*.deploy \demo\demo_1_0_0_0 Aplikační soubory *.application - manifest nasazení, XML popis nasazení a update aplikace publish.htm – web stránka ClickOnce nasazení setup.exe - .NET FX 2.0 bootstrap + další potřebné aplikaci potřebné pro běh aplikace (např. SQL Server Express), konfigurovatelné ve VS 2005
Srovnání nasazení aplikací Vlastnost Online/ offline Online ClickOnce nasazení Opravena novou verzí Zástupce ve Start menu Položka v Add/Remove programs Výzva k instalaci nové verze Roll-back na předchozí verzi
Video ukázka Vytvoření aplikace Návrh uživatelského rozhraní v XAML XAML Pad Nasazení aplikace