XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media...

39
XAML, WPF och Silverlight Robert Folkesson Microsoft Sverige http://blogs.msdn.com/robf

Transcript of XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media...

Page 1: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

XAML, WPF och Silverlight

Robert Folkesson

Microsoft Sverige

http://blogs.msdn.com/robf

Page 2: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Design is Inevitable

2

“Questions about whether design is

necessary or affordable are quite beside

the point: design is inevitable.

The alternative to good design is bad

design, not no design at all.”

Douglas Martin-- designer

Page 4: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

DesignernUtseende, uppträdande,

varumärken, känslor

UtvecklarenFunktioner, utrullning, data,

säkerhet, administration

Det är något som har saknats...

Page 5: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

C++

C#

VB.NET

Papper

JPG / TIFF

PSD

PPT

MOV / WMV

Inga standarder

“fulkod”

“Mockups”

Integration av design/utvecklingsprocessen

Designer Utvecklare

Page 6: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

XHTML

CSS / XSLT

XML

ASP.NET

Javascript

AJAX

XAML

Designer Utvecklare

Integration av design/utvecklingsprocessen

Page 7: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Demo: XAML

Page 8: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

<Button Name="btnOk">

<Button.Background>

RadialGradient White Blue

</Button.Background>

OK

</Button>

Button btnOk = new Button();

btnOk.Background = newRadialGradientBrush(

Colors.White,Colors.Blue);

btnOk.Content = "Ok";

Dim btnOk As New Button

btnOk.Background = NewRadialGradientBrush(

Colors.White,Colors.Blue)

btnOk.Content = "Ok"

XAML C# VB

XAML

• Extensible Application Markup Language

• Ett-till-ett förhållande till objektmodellen

• Kan innehålla kod och kompileras

• Enkelt för verktyg att konsumera och generera

• Konsekvent programmeringsmodell

• Separering av presentation och logik

• Gränssnitt, media och dokument

Page 9: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Deklarativt vs Imperativt

XAML

<Button Background="LightBlue“

Height="30" Width="65">

<Image Source="c:\Color_Font.png" />

</Button>

C#

Button btn = new Button();

btn.Background = new

SolidColorBrush(Colors.LightBlue);

btn.Height = 30;

btn.Width = 65;

BitmapImage bmpImage = new BitmapImage();

bmpImage.UriSource = new

Uri(@"c:\Color_Font.png");

Image img = new Image();

img.Source = bmpImage;

img.Stretch = Stretch.Uniform;

btn.Content = img;

Page 10: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Expression Studio / Visual Studio

10

Page 11: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Demo: Expression Studio

Page 12: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Windows Presentation Foundation

Rik 2D-grafik

Text

3D-grafik

Rik media Affärsapplikationer

Page 13: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Demo: WPF

Page 14: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Menyer

Menu

ContextMenu

ToolBar

Knappar

Button

RepeatButton

RadioButton

CheckBox

Hyperlink

Listor

ListBox

ComboBox

ListView

TreeView

Containrar

Frame

ScrollViewer

TabControl

GroupBox

Expander

Frekvenskontroller

Slider

ScrollBar

ProgressBar

Text

TextBox

RichTextBox

PasswordBox

TextBlock

Label

ToolTip

Kontroller i WPF

Page 15: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Flexibel layout med Paneler

Grid

StackPanel

WrapPanel

DockPanel

Canvas

Page 16: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Demo: Paneler

Page 17: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Kontroller har en ‘Content Model’

Page 18: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Kontroll-mallar

• Kontroller har även beteenden och utseende som kan styrasav en kontroll-mall (Control Template)

Kontroll

Button

Template

Click

event

Command

Focus

Automation

Content

Model

Page 19: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Demo: Control Templates

Page 20: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Modifiera kontroller med "Styles"

• Tillåter extern definition av en kontrollsutseende och beteende• Koncept som liknar Stylesheets för HTML

• Medger inkapsling av stil-egenskaper ochmallar för kontroller (control templates)• Mycket kraftfullt och enkelt sätt att förändra kontroller

• Definieras antingen i XAML-filer för gränssnitt (t.ex. Window.xaml) eller i App.xaml• App.xaml ger möjliggör applikationsvid användning

Page 21: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Brushes

Solid color brush Linear gradient brush Radial gradient brush

Image brush

Drawing brush Visual brush

Page 22: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

22

Demo: Visual Brush

Page 23: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Databindning

• Ger separering av view/model• Ändra gränssnittet utan att göra förändringar i code-behind

• Bindning går att göra direkt mellan egenskaper på kontroller, mot valfritt CLR-objekt eller XML-data

• Bindningsuttryck kan vara envägs eller tvåvägs

• Notifieringar av förändringar via INotifyPropertyChange stöds

• Mallar för bindningar via Data Templates

Page 24: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Demo: Databindning

Page 25: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Hostingmodeller för WPF

• Desktop• Lokalt installerad via XCOPY, MSI eller ClickOnce

• Körs med ”full trust”

• XBAP (XAML Browser Application)• Publicerad till webbserver – startas med ClickOnce

• Körs ”sandboxad”

Page 26: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Demo: XBAP

Page 27: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Vad är Silverlight?

• Client-side runtime

• Cross-browser & cross-platform• MSIE, Firefox, Safari & Opera på Win & OS X

• Nästa generation ”Rich Internet Applications” (RIA) för webben

Page 28: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Vad karakteriserar en RIA?

• Utrullning via webben• Når brett

• Säker, ”sandboxad” körmiljö

• Rik användarupplevelse – mer än servergenererad HTML• Kapabel modell för användargränssnitt

(vektorgrafik/media)

• Applikationslogik på klienten• Högproduktiv utvecklingsmiljö

Page 29: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Silverlight 1.0

2D Graphics

Animations

Input (mouse, keyboard, ink)

Media (WMV, WMA, MP3)

Imaging (JPEG, PNG)

Text

HTTP Downloader

XAML Parser

JavaScript DOM

Page 30: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

.NET + Silverlight

• .NET X-plattform & X-webbläsare• Safari, Firefox och IE på Mac & Windows

• FireFox, Konquerer och Opera på Linux

• 4.3 MB - snabb och enkel installation

• Högproduktiv utveckling• Stöd för VB, C#, JavaScript, Python, Ruby

• Klassbibliotek med rik funktionalitet

• Verktygsstöd i Visual Studio & Expression Studio

Page 31: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Silverlight Security Sandbox

• Silverlight-applikationer körs i en säker ”sandboxad”-miljö

• Aktiveras i HTML-sida• Ingen elevering av rättigheter eller dialog för användaren

• Applikationer hindras från att göra farliga operationer

• Silverlight möjliggör utökade scenarion:• Säker lokal lagring: Isolated storage

• Klientbaserade filuppladdningskontroller

• Stöd för anrop över nätverket ”cross domain”

Page 32: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

.NET för Silverlight jämfört med desktop

• .NET för Silverlight är ett subset av .NET-ramverket• Speciellt anpassat för RIA- och Media-scenarios

• Gemensam "core" .NET-utvecklingsmodell• Gemensamma API:er för browser- & desktop-scenarios

• Gemensam modell med WPF för gränssnittsprogrammering

• Gemensamma utvecklings- och designverktyg

• Kompatibelt subset av WPF UI-ramverk

Page 33: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Silverlight 2

XAML

Browser Host

Integrated

Networking

Stack

DOM

IntegrationInstaller

JavaScript

Engine

Presentation Core

.NET for Silverlight

Inputs

Keyboard

Mouse

Ink

Media

WMV / VC1

WMA

MP3

Controls

Layout

Editing

UI Core

2D Vectors

Animation

Text

Images

Transforms

DRM

Media

Dynamic Languages

Ruby Python

BCL

Generics Collections

Web Services

REST

RSS

SOAP

POX

JSON

Data

LINQ LINQ-to-XML

WPF for Silverlight

Extensible Controls

Common Language Runtime

ASP.NET

AJAX Libs

<asp:xaml>

<asp:media>

Server Silverlight 1.0

Silverlight 2.0

Legend

Deep Zoom

Page 34: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Inbyggda Beta1-kontroller

• Formulär:

• TextBox

• Button

• Toggle/Repeat

• CheckBox

• RadioButton

• ListBox

• Layout:

• StackPanel

• Grid / GridSplitter

• Canvas

• ”Core” :

• Border

• Image

• MediaElement

• MultiScaleImage

• Tooltip

• Scrollviewer

• Navigering:

• HyperlinkButton

• Popup

• Hög-nivå:

• Calendar

• DataGrid

• Slider

• DateTimePicker

• Former:

• Ellipse

• Line

• TextBlock

• Path

Page 35: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Silverlight

Page 36: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Deep Zoom

- Preprocessing-verktyg

delar bilder i block om

256 x 256

- Sedan genereras

“pyramider” av block

i lägre upplösning

- Ger möjlighet att

zooma mycket snabbt

i stora mängder bilddata

Page 37: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Deep Zoom

Page 38: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton

Frågor?

Page 39: XAML, WPF och Silverlight...Windows Presentation Foundation Rik 2D-grafik Text 3D-grafik Rik media Affärsapplikationer Demo: WPF Menyer Menu ContextMenu ToolBar Knappar Button RepeatButton