Windows Presentation Foundation

Post on 03-Jan-2016

45 views 0 download

description

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) - PowerPoint PPT Presentation

transcript

Windows Presentation Windows Presentation FoundationFoundation

1.1. Úvod a přehled WPFÚvod a přehled WPF2.2. Layout PrvkyLayout Prvky3.3. Ovládací prvkyOvládací prvky

Windows Presentation Windows Presentation FoundationFoundation

ÚvodÚvod

Potřeba lépe organizovat informacePotřeba lépe organizovat informace

VýzvyVýzvyHardwarová inovace přestihuje softwareHardwarová inovace přestihuje software

Displeje s vysokým Displeje s vysokým DPIDPI

Široké obrazovky s možností rotaceŠiroké obrazovky s možností rotace (TabletPC) (TabletPC)

GPU GPU roste roste 33xx rychleji než rychleji než MoorMoorův zákonův zákon

Přetížení informacemiPřetížení informacemiDokumenty, hudba, video, fotografie, Dokumenty, hudba, video, fotografie, atd.atd.

Potřeba lépe a chytřeji visualizovat informacePotřeba lépe a chytřeji visualizovat informace

Jednotný přístup k UI, dokumentům Jednotný přístup k UI, dokumentům a médiíma médiím

Aplikační modelAplikační modelDeklarativní programování - XAMLDeklarativní programování - XAML

Jednoduchá integrace médiíJednoduchá integrace médií

DData bindingata binding

Bohaté možnosti stylů a tématBohaté možnosti stylů a témat

Hostování uvnitř prohlížečeHostování uvnitř prohlížeče

Grafický modelGrafický model2D & 3D 2D & 3D grafika, rastrová grafikagrafika, rastrová grafika

TextText

Video Video aa audio audio

AnimaceAnimace

Model dokumentůModel dokumentůPevné, plovoucí a adaptivní rozloženíPevné, plovoucí a adaptivní rozložení

Pokročilá typografiePokročilá typografie

Řízení právŘízení práv

Media IntegrationLayer

Media IntegrationLayer

Element ServicesElement Services

Ap

lika

ční

mo

de

lA

plik

ačn

í m

od

el

Mo

de

l d

oku

me

ntů

Mo

de

l d

oku

me

ntů

Gra

fický

m

od

el

Gra

fický

m

od

el

Composition and Rendering

Composition and Rendering

.NET Framewor

k

.NET Framewor

kDirectXDirectX

WPF

stro

je a

jazy

kyN

ást

roje

a ja

zyky

WPF komponentyWPF komponenty

2D

3D

AudioImaging

TextVideoEffects

Composition Engine

Animation

XAML

Accessibility

Property System

Input & Eventing

Document Services

Packaging Services

Application Services

Deployment Services

Controls

Layout

Databinding

User Interface Services

Media Integration Layer Base Services

XPS Documents

Deklarativní tvorba aplikacíDeklarativní tvorba aplikací

WPF přináší model postavený na oddělení WPF přináší model postavený na oddělení grafického návrhu aplikace a aplikační logikygrafického návrhu aplikace a aplikační logiky

Model známý z ASP.NETModel známý z ASP.NET

Návrh vzhledu pomocí jazyka XAML (eXtensible Application Návrh vzhledu pomocí jazyka XAML (eXtensible Application Markup Language)Markup Language)

XAML je převeden do zdrojového kódu a přeložen do XAML je převeden do zdrojového kódu a přeložen do binární formybinární formy

Je postaven na existenci neúplných tříd (partial class)Je postaven na existenci neúplných tříd (partial class)

XAML nemusí sloužit pouze k definici grafického XAML nemusí sloužit pouze k definici grafického vzhledu, ale k definicivzhledu, ale k definici

Aplikace jako celkuAplikace jako celku

Systémových zdrojů atd.Systémových zdrojů atd.

Deklarativní programováníDeklarativní programování

Návrh uživatelského rozhraníNávrh uživatelského rozhraníStandardním způsobemStandardním způsobemButton btn = new Button();Button btn = new Button();

btn.Background = Colors.Red;btn.Background = Colors.Red;

btn.Content = "btn.Content = "TlačítkoTlačítko!";!";

this.Children.Add( btn );this.Children.Add( btn );

Deklarativně v jazyce XAML (eXtensible Deklarativně v jazyce XAML (eXtensible Application Markup Language)Application Markup Language)

<Button Background="Red"><Button Background="Red">TlačítkoTlačítko!</Button>!</Button>

Kombinace XAML a kóduKombinace XAML a kódu

Typicky je v XAML definován vzhled, animace, vazba na Typicky je v XAML definován vzhled, animace, vazba na datové zdroje, zachycení a zpracování některých událostídatové zdroje, zachycení a zpracování některých událostí

V „kódu v pozadí“ je realizována aplikační logikaV „kódu v pozadí“ je realizována aplikační logika

<Button x:Name="tlacitko" Background="Red" Click="btn_click"> Tlačítko! </Button>

partial class Window1 : Window { Button tlacitko;

void InitializeComponent() { tlacitko = new Button(); tlacitko.Background = “Red"; tlacitko.Click += btn_click; this.AddChild(tlacitko); }};

XAML

partial class Window1 : Window { public Window1() { InitializeComponent(); }

public btn_click(object sender, RoutedEventArg e) { … }};

+

Kód v pozadí

C#/VB.NET jmenný prostor, v němž je založen kód v pozadíJmenný prostor XAMLJmenný prostor Windows Presentation Foundation

Jmenné prostory v XAML kóduJmenné prostory v XAML kódu

Kořenový element každého XAML Kořenový element každého XAML dokumentu musí deklarovat používané dokumentu musí deklarovat používané jmenné prostoryjmenné prostory

<Window <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xamlxmlns:x="http://schemas.microsoft.com/winfx/2006/xaml""

xmlns:local="clr-namespace:MojePrvniWPFAplikace.Window1"xmlns:local="clr-namespace:MojePrvniWPFAplikace.Window1">>

<Button … /><Button … />

</Window></Window>

<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));}

Navigace v aplikaciNavigace v aplikaci

WPF aplikace nabízí nový typ „explorer“ WPF aplikace nabízí nový typ „explorer“ navigacenavigace

Automaticky jsou generovánaAutomaticky jsou generovánatlačítka Zpět a Vpředtlačítka Zpět a Vpřed

Logika a programová podporaLogika a programová podporazabudována do objektu zabudována do objektu aplikace (Application)aplikace (Application)

Typy aplikacíTypy aplikací

Plné lokální aplikacePlné lokální aplikaceInstalovány na lokální počítač Instalovány na lokální počítač

Přístup k systémovým zdrojům definován právy uživatele Přístup k systémovým zdrojům definován právy uživatele (Full Trust)(Full Trust)

Web Browser aplikaceWeb Browser aplikaceBěží v prostředí prohlížeče Běží v prostředí prohlížeče

Využívá typické Forward-Back stránkováníVyužívá typické Forward-Back stránkování

Omezení práv aplikace (Partial Trust)Omezení práv aplikace (Partial Trust)Aplikace nemůže požádat o dodatečná práva (běží nebo ne)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 Potřebná práva pro běh aplikace jsou definována v projektu aplikace (záložka Security – Zone & Permiaplikace (záložka Security – Zone & Permissssions)ions)

Srovnání typů aplikacíSrovnání typů aplikací

VlastnostVlastnost Lokání aplikaceLokání aplikace Browser aplikaceBrowser aplikace

Běhové prostředíBěhové prostředí Lokální OSLokální OS IE 7IE 7

DůvěraDůvěra PlnáPlná OmezenáOmezená

DostupnostDostupnost Online/OfflineOnline/Offline OnlineOnline

NasazeníNasazení Nejlépe ClickOnce Nejlépe ClickOnce nebo MSInebo MSI

Nejlépe ClickOnceNejlépe ClickOnce

Instalace ClickOnceInstalace ClickOncePřirozený vývoj „bezdotykové instalace“ z .NET 1.xPřirozený vývoj „bezdotykové instalace“ z .NET 1.x

Založeno na HTTP protokolu pro .NET aplikaceZaloženo na HTTP protokolu pro .NET aplikaceexe stažen, uložen, spuštěnexe stažen, uložen, spuštěn

ClickOnceClickOncePodporuje instalaci obou typů aplikací (plné i browser)Podporuje instalaci obou typů aplikací (plné i browser)2 scénáře nasazení 2 scénáře nasazení

Online/offlineOnline/offlinePouze onlinePouze online

Odstraňuje problémy předchozí verze; nyní umíOdstraňuje problémy předchozí verze; nyní umíPodpora v nástrojích (VS 2005, SDK)Podpora v nástrojích (VS 2005, SDK)Sledování postupu instalaceSledování postupu instalaceDistribuce jiných souborů než assembly (data, COM, Distribuce jiných souborů než assembly (data, COM, nápověda)nápověda)Možnost požádat o vyšší povoleníMožnost požádat o vyšší povolení

Je vyžadován digitální podpis instalaceJe vyžadován digitální podpis instalace

InstalaceInstalace\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

\demo

demo_1_0_0_0.application

demo.application

Manifest nasazení

publish.htm

setup.exe

*.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íSrovnání nasazení aplikací

VlastnostVlastnost Online/Online/offlineoffline OnlineOnline

ClickClickOnceOnce nasazení nasazení

Opravena novou verzíOpravena novou verzí

Zástupce ve Start menuZástupce ve Start menu

Položka v Add/Remove programsPoložka v Add/Remove programs

Výzva k instalaci nové verzeVýzva k instalaci nové verze

Roll-back na předchozí verziRoll-back na předchozí verzi

Video ukázkaVideo ukázka

Vytvoření aplikaceVytvoření aplikace

Návrh uživatelského rozhraní v XAMLNávrh uživatelského rozhraní v XAML

XAML PadXAML Pad

Nasazení aplikaceNasazení aplikace