Windows Presentation Foundation Přehled Přednášek Úvod a přehled WPF Layout Prvky Ovládací prvky Data Binding Styly, šablony Resources 2D grafika 3D grafika Animace
Použité piktogramy Důležitá informace Úkol k zamyšlení Ukázka příkladu Shrnutí Další zdroje
Windows Presentation Foundation Úvod a přehled WPF
Proč WPF? Grafika! WPF je zaměřeno na uživatelsky bohaté aplikace. Až do teď většina aplikací měla vzhled formulářů, ve WPF můžete ale upustit uzdu fantazie a využívat plně možností vektorové grafiky - umožňuje graficky bezestrátovou změnu velikosti prvků, barevné gradienty, používání geometrických tvarů animace - časová nebo za použití framů, rotace, přechod barev, 3D animace a mnoho dalších multimédia - práce s audiem a videem (avi, mpeg, wmv) efekty - stíny, záře, rozostření, průhlednost nebo zrcadlení interaktivní 3D aplikace - poskytuje podmnožinu funkcní z Direct3D zaměřenou na multimédia, dokumenty a uživatelské rozhraní DataBinding - provázání dat v aplikaci http://www.netstudent.cz/%C4%8Cl%C3%A1nky/tabid/56/ArticleType/ArticleView/ArticleID/52/PageID/52/Default.aspx
WinForms VS. WPF Aplikace může vypadat například takto: WinForms WPF
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>
Xaml Programování vzhledu aplikace doznalo ve WPF velkého kroku vpřed díky XAMLu Xaml je značkovací jazyk pro vytváření uživatelského rozhraní ve WPF aplikacích. Výhody jsou čistota, jednoduchost a rychlost psaní kódu a zároveň oddělení logiky aplikace od vzhledu. Tzn. že v jednom souboru budu mít XAML kód definující vzhled mé aplikace a v druhém logika aplikace v některém z .NET jazyků jako například C# nebo VB .NET http://www.netstudent.cz/%C4%8Cl%C3%A1nky/tabid/56/ArticleType/ArticleView/ArticleID/52/PageID/52/Default.aspx
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 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 Zkuste jsi sami vytvořit nějakou ClickOnce aplikaci
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
Shrnutí WPF nabízí nový model popisu uživatelského rozhraní Odráží potřeby profesionálního přístupu Možnost běhu aplikací v prohlížeči zvyšuje bezpečnost a údržbu Nová generace nasazení aplikací – ClickOnce
Odkazy Prezentace David Krčmář, Acad. Developer Evangelist Video David Krčmář MSDN Windows Vista Developer Center http://msdn.microsoft.com/windowsvista Microsoft .NET Framework 3.0 http://msdn.microsoft.com/winfx/ Download platformy a ovládacích prvků http://msdn.microsoft.com/winfx/downloads/presentation/default.aspx Doporučení pro Windows Vista UX http://msdn.microsoft.com/windowsvista/experience Další odkazy http://www.netstudent.cz/%C4%8Cl%C3%A1nky/tabid/56/ArticleType/ArticleView/ArticleID/52/PageID/52/Default.aspx
© 2009 Microsoft Corporation