neumann_technologyshootout

74
Sponsoren: Veranstalter: Jörg Neumann [email protected] Technology Shoot-Out WPF vs. Silverlight vs. Windows Forms

Upload: api-3821171

Post on 14-Jun-2015

188 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Neumann_TechnologyShootOut

Sponsoren: Veranstalter:

Jörg [email protected]

Technology Shoot-OutWPF vs. Silverlight vs. Windows Forms

Page 2: Neumann_TechnologyShootOut

Jörg Neumann

• Principal Consultant bei Acando

• Associate bei Thinktecture

• MVP im Bereich „Client App Dev“

• Beratung, Schulung, Coaching

• Buchautor, Speaker

• Mail– [email protected]

[email protected]

• Blog– www.HeadWriteLine.BlogSpot.com

Page 3: Neumann_TechnologyShootOut

Agenda

• Vorstellung der Frameworks

– WPF / XBAP

– Windows Forms

– Silverlight

• Faktoren bei der Technologieauswahl

• Empfehlungen

Page 4: Neumann_TechnologyShootOut

In-depth support and consulting for

software architects and developers{ }

Windows Presentation

Foundation

Page 5: Neumann_TechnologyShootOut

Warum WPF?

• Steigende Komplexität von User

Interfaces

– Viele Farben

– Animationen

– Videos

• Display-Größen: Von Handy bis Leinwand

– Hohe DPI-Anzahl

• Trennung von Code und Design

Page 6: Neumann_TechnologyShootOut

WPF

• Basiert auf DirectX

– Unterstützung der Grafik-Hardware

– Bessere Qualität & Performance

– Geringerer Ressourcenverbrauch (RAM/CPU)

• Vereinigt die verschiedene UI-Subsysteme

– Windows Forms/MFC/Win32

– DirectX, Media Player SDK, Speech SDK

Page 7: Neumann_TechnologyShootOut

Weitere Merkmale

• Integriert UI, Dokumente und Media

• Läuft auf dem Desktop und im Browser

• Deklarative Erstellung von Oberflächen

– Trennung von Design und Code

Page 8: Neumann_TechnologyShootOut

PresentationCore MilCore Grafikkarte

.net Native DirectX

Die Architektur von WPF

Visual Tree Composition Tree

Page 9: Neumann_TechnologyShootOut

Weitere Features – UI

• Flexible Komponentenarchitektur– Alles kann kombiniert und angepasst werden

• Layout Services– Automatisches Layout aller Elemente möglich

• Trigger– Automatische Veränderung von Content

• Animation– Alle Elemente können animiert werden

• Vector-basiertes Text-Rendering– Bessere Lesbarkeit von Texten

Page 10: Neumann_TechnologyShootOut

Weitere Features – Binding

• Data Binding

– Universelle Bindung an Datenquellen

• Ressource Binding

– Dynamische & statische Bindung an

Ressourcen

• Template Binding

– Content kann mit Vorlagen verknüpft werden

Page 11: Neumann_TechnologyShootOut

Dokumente

• Einheitliches Dokumentenmodell

– Festes, fließendes und adaptives Layout

• Bildschirminhalte können verlustfrei

gedruckt werden

• Stufenloses vergrößern und verkleinern

• Eigenes Dokumentenformat (XPS)

– Rights Management

Page 12: Neumann_TechnologyShootOut

Open Type Support

Page 13: Neumann_TechnologyShootOut

Eingabe

• Tastatur

• Maus & Mausgesten

• Stift

• Sprache

Page 14: Neumann_TechnologyShootOut

Multimedia

• Audio/Video

• Animation

• 3D-System

• Imaging

Page 15: Neumann_TechnologyShootOut

In-depth support and consulting for

software architects and developers{ }

XAML

Browser Applications

(XBAP)

Page 16: Neumann_TechnologyShootOut

XAML Browser Applications

• Ähnliches Konzept wie ClickOnce

• App wird im Browser gehosted

• Browser-füllend oder in IFrame

Page 17: Neumann_TechnologyShootOut

Das Deployment-Verfahren

Deployment Manifest

(.xbap)

Application Manifest

(.manifest)

Application Binaries

(.deploy)

Page 18: Neumann_TechnologyShootOut

Architektur

Browser

Presentation Host

WPF Content

WPF

Runtime

Page 19: Neumann_TechnologyShootOut

Navigationsanwendungen

• Navigation wie im Browser

• Desktop- oder Browser-App (XBAP)

• Page statt Window

• Navigationsleiste

– Historie wird autom.

aktualisiert

• Hyperlinks

– Zur Navigation

Page 20: Neumann_TechnologyShootOut

Security

• Ähnliches Konzept wie bei ClickOnce

– Allerdings keine Benutzer-Prompts

– ..und damit auch keine Elevation

• Anwendungen läuft entweder in

– Partial Trust (Internet Zone)

– Full Trust

•Wenn Manifest mit Trusted Publisher Zertifikat

signiert

Page 21: Neumann_TechnologyShootOut

Vor- und Nachteile

• Vorteile

– Leichte Integration in Intranet-Sites

•SharePoint, MS CRM, Custom

• Nachteile

– Setzt installiertes .NET-Framework voraus

– Läuft nur auf Windows-Rechnern (ab XP)

– Sehr restriktives Security-Modell

Page 22: Neumann_TechnologyShootOut

In-depth support and consulting for

software architects and developers{ }

Windows Forms

Page 23: Neumann_TechnologyShootOut

Windows Forms

• Pixel-basiertes UI-Framework

• Basiert auf der Win32-API / GDI

– Messages/Handles

– Geringe Hardware-Unterstützung

• Hohe Verbreitung

• Großer 3rd Party-Markt

• Gute Performance

• Leichte und schnelle Entwicklung

Page 24: Neumann_TechnologyShootOut

Nachteile von Windows Forms

• Fehlende Features

– Multimedia

– Animation

– 3D

– Dokumentenmodell

– Adaption auf andere Plattformen

– Keine klare Trennung von Code und Design

Page 25: Neumann_TechnologyShootOut

Nachteile von Windows Forms

• Skalierung

• Transparenz

• Transformation

Page 26: Neumann_TechnologyShootOut

WPF vs. WinForms - Skalierung

• Windows Forms

– Alles wird Pixel-basiert gezeichnet

• WPF

– Alles wird Vector-basiert gezeichnet

Windows Forms

WPF

Page 27: Neumann_TechnologyShootOut

WPF vs. WinForms – Transparenz

• Windows Forms

– Jedes Control zeichnet sich selbst

• WPF:

– Alles wird mit einer Rendering Engine

gezeichnet

Page 28: Neumann_TechnologyShootOut

Transformation

• Window Forms

– Transformation ist ein Feature des Controls

• WPF

– Alles kann transformiert werden

Page 29: Neumann_TechnologyShootOut

In-depth support and consulting for

software architects and developers{ }

Silverlight

Page 30: Neumann_TechnologyShootOut

Silverlight

• UI-Framework für die Cross-OS/Cross

Browser-fähige Anwendungen

– Multimedia-Anwendungen

– Business-Anwendungen

• Einsatzgebiete

– Internet, Intranet

– Browser, Desktop

30

Page 31: Neumann_TechnologyShootOut

Unterstützte Plattformen

• Windows 7 / Vista / XP, SP2

• MAC OS X (ab 10.4.8) [Intel only]

• Linux (Moonlight)*

• Mobile-Version in Arbeit

31

* Moonlight: http://www.mono-project.com/Moonlight

Page 32: Neumann_TechnologyShootOut

Unterstützte Plattformen (SL3)

32

OS / Browser Internet

Explorer 8

Internet

Explorer 7

Internet

Explorer 6

Firefox

2 & 3

Safari

3 & 4

Windows 7

Windows Vista

Windows XP, SP3

Windows 2000, SP4

Windows Server

2003 (excl. IA-64)

Windows Server

2008

Mac OS 10.4.8+

(PowerPC)

Mac OS 10.4.8+

(Intel-based)

Page 33: Neumann_TechnologyShootOut

Funktionsweise

33

Browser

Silverlight Browser Plug-In

XAP-Archiv

.NET Code

XAML

Resources

HTML Page

Silverlight Object

Page 34: Neumann_TechnologyShootOut

What‘s in the box?

• Silverlight Core Services

– Rendering Engine, Media Player

• Common Language Runtime

– .NET CLR + Dynamic Language Runtime

• Base Class Library

– Subset von .NET BCL, Silverlight Libs

• Silverlight Controls

34

Page 35: Neumann_TechnologyShootOut

.NET-Support

• C#, VB

• Silverlight BCL

– Subset der .NET BCL

– Kompatibel zu .NET BCL

• Dynamic Language Runtime

– JavaScript

– IronPython

– IronRuby

35

Page 36: Neumann_TechnologyShootOut

Datenzugriff

• Nur indirekt möglich

– Web Services

•Windows Communication Foundation

– REST

•ADO.NET Data Services

– RIA Services

Page 37: Neumann_TechnologyShootOut

Abgrenzung zu WPF

• Eingeschränkte 2D & 3D Features

• Eingeschränktes Data Binding

– Keine Template Selectors, Data Trigger, …

• Eingeschränktes Templating

– Keine Control Templates,

• Kein Dokumentmodell / Printing API

37

Page 38: Neumann_TechnologyShootOut

In-depth support and consulting for

software architects and developers{ }

Vergleich der Frameworks

Page 39: Neumann_TechnologyShootOut

Vergleichsfaktoren

• Hardware Acceleration

• Security

• Unterstützte Plattformen

• Produktivität

• Zukunftsfähigkeit

• Deployment

Page 40: Neumann_TechnologyShootOut

Hardware Acceleration

• WPF

– GPU, RAM der Grafikkarte

• Windows Forms

– GPU (einfache 2D-Acceleration)

• Silverlight

– Eingeschränkt: GPU, RAM der Grafikkarte

Page 41: Neumann_TechnologyShootOut

Hardware-Faktoren in WPF

• Video RAM

– Entscheidet über die Größe und Anzahl der internen Buffers

• Pixel Shader

– Effekte auf Pixel-Ebene

• Vertex Shader

– Effekte auf Vertex-Ebene

• Multitexture Support

– Zwei oder mehr Texturen bei Blending-Operationen; Anzahl Units entscheidend

Page 42: Neumann_TechnologyShootOut

Rendering Tiers

• Tier 0– DirectX < 7

– Keine Hardware-Unterstützung

– Software Rendering

• Tier 1– DirectX 7 / <9

– Layered windows, Radial Gradients

• Tier 2– DirectX 9

– Opacity, Bitmap Effects

Page 43: Neumann_TechnologyShootOut

Hardware-Anforderungen

Tier 0 Tier 1 Tier 2

DX < 7 >= DX 7 & < DX 9 >= DX 9

Video RAM >= 30 MB Video RAM >= 108

Pixel Shader >= 1.0 Pixel Shader >= 2.0

Vertex Shader >= 1.0 Vertex Shader >= 2.0

Multitexture units >= 2 Multitexture units >= 4

Page 44: Neumann_TechnologyShootOut

Grafikkarten Tier 1

Hersteller Modell

ATIRadeon 256, 7000, 7500, 8500, 9000, 9100, 9200

und 9250

Intel

Intel Extreme Graphics 845G, 845GE, 845GL und

845GV

Intel Extreme Graphics II 852GME, 855GM, 855GME,

865G und 865GV

NVidia

GeForce 256

GeForce2 GTS, MX, MX100, MX200, MX400, Pro, Ti

und Ultra

GeForce3 Ti200 und Ti500

GeForce4 MX420, MX440, MX460, MX4000, Ti4200,

Ti4400, Ti4600 und Ti4800

Page 45: Neumann_TechnologyShootOut

Tier 1: Software Rendering

• BitmapEffects

• Printed content

• RenderTargetBitmap

• TileBrush

• Überschreitung der

max. Texture Size

(2048x2048 bzw.

4096x4096 Pixel)

• Überschreitung der

max Video-RAM-Größe

• Radial Gradients

• 3D Lighting

• Text Rendering

(optimierte

Textdarstellung)

• 3D Anti-Aliasing

Page 46: Neumann_TechnologyShootOut

Grafikkarten Tier 2

Hersteller Modell

ATI Radeon 9550, 9600, 9800 und X-series

IntelIntel GMA900-Modelle: 915G

Intel GMA950-Modelle: 945G

NVidia Geforce FX-series, 6xxx-series und 7xxx-series

Page 47: Neumann_TechnologyShootOut

Tier 2: Software Rendering

• BitmapEffects

• Printed Content

• RenderTargetBitmap

• TileBrush

• Überschreitung der

max. Texture Size

(2048x2048 bzw.

4096x4096 Pixel)

• Überschreitung der

max Video-RAM-Größe

• Radial Gradients

Page 48: Neumann_TechnologyShootOut

Rendering Tier ermitteln

• System.Windows.Media.RenderCapability

– Tier-Eigenschaft

– High Word muss extrahiert werden

int tier = (System.Windows.Media.RenderCapability.Tier >> 16);

Rückgabe Rendering Tier Beschreibung

0x00000000 0 Keine Hardware-Beschleunigung.

0x00010000 1 Partielle Hardware-Beschleunigung.

0x00020000 2 Sehr hohe Hardware-Beschleunigung.

Page 49: Neumann_TechnologyShootOut

Software Rendering

• Kann testweise erzwungen werden

• Registry-Key anlegen

– Avalon.Graphics

– DWord: DisableHWAcceleration

•0 = Hardware Acceleration

•1 = Software Rendering

[HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics]"DisableHWAcceleration"=dword:00000001

Page 50: Neumann_TechnologyShootOut

Hardware Acceleration in SL

• Ab Silverlight 3

• Plug-In-Settings

– EnableGPUAcceleration

– EnableCacheVisualization

• UIElement.CacheMode-Eigenschaft

<param name="EnableGPUAcceleration" value="true" /><param name="EnableCacheVisualization" value="true" />

<Canvas CacheMode="BitmapCache" />

Page 51: Neumann_TechnologyShootOut

Hardware Acceleration in SL

• Nur auf der Windows-Plattform

• DirectX 9.0c erforderlich

• Was wird beschleunigt?

– RenderTransform

– Rectangular Clipping

– Opacity

– Visibility

Page 52: Neumann_TechnologyShootOut

Remote Desktop/Citrix

• WPF/Silverlight

– Schlechte Performance

– Hoher Ressourcenverbrauch auf dem Server

•Software Rendering!

• Windows Forms

– Gute Performance

– Geringer Ressourcenverbrauch auf Server

Page 53: Neumann_TechnologyShootOut

Security

• Windows Forms / WPF

– Läuft unter Partial und Full Trust

– Abhängig vom Deployment-Verfahren

• Silverlight

– Partial Trust

– Erweiterte Möglichkeiten im „Desktop-

Modus“

Page 54: Neumann_TechnologyShootOut

Security

• Auslesen des aktuellen Benutzers

• Zugriff auf externe Hardware

– Lokale Drucker, Kassensysteme, …

• Zugriff auf Netzwerkinfrastruktur

– Datenbanken, Active Directory, Drucker

Page 55: Neumann_TechnologyShootOut

Zugriff auf System-Ressourcen

• Dateisystem

• Registry

• Windows Services

• MSMQ

• Direkter Datenbankzugriff

• Windows Shell

Page 56: Neumann_TechnologyShootOut

Silverlight Desktop Applications

• Ab Silverlight 3

• Rechte Maustaste „Install on Desktop“

• Auch programmatisch möglich

• Auto-Update-fähig

• Kann in den Projekteigenschaften

aktiviert werden

Page 57: Neumann_TechnologyShootOut

Kommunikation

• Silverlight

– SOAP: Eingeschränkte WCF-Funktionalität

– REST: ADO.NET Data Services, RIA Services

– Eingeschränkte Cross Server-Kommunikation

– Eingeschränkte Socket-Kommunikation

• WPF/Windows Forms

– SOAP: Volle WCF-Funktionalität

– REST: ADO.NET Data Services, RIA Services

– Direkter Datenbankzugriff

Page 58: Neumann_TechnologyShootOut

Offline-fähigkeit

• WPF/Windows Forms

– SQL Server Compact Edition

– Sync Framework

• Silverlight

– Desktop Mode

– Astoria Offline (z.Zt. noch in Arbeit)

Page 59: Neumann_TechnologyShootOut

Produktivität

• WPF/Silverlight

– z.Zt. relative schlechte Editoren

(in VS2010 wird einiges besser)

– Dedizierte Designer-Rolle im Projekt

• Windows Forms

– Gute Editoren

– Geringere Möglichkeiten

produktiveres Arbeiten

Page 60: Neumann_TechnologyShootOut

IDE-Features

Feature WPF Silverlight Windows Forms

Designer

Datenbindung

Ressourcen

Settings

Lokalisierung

Performance

Page 61: Neumann_TechnologyShootOut

Feature Matrix

Feature WPF Silverlight Windows Forms

3D

Security

Printing

Hardware Acceleration

Media-Support

Data Binding

Styling

Remote Desktop

Dokumente

Browser-fähig

OS-Support

Performance

Offline

Page 62: Neumann_TechnologyShootOut

Plattformen

Plattformen WPF Silverlight Windows Forms

Windows 2000

Windows XP/Vista/7

MAC OS (Intel)

Browser WPF Silverlight Windows Forms

IE 6/7/8

Firefox

Safari

Page 63: Neumann_TechnologyShootOut

Zukunftssicherheit

• Windows Forms

– Wird weiterhin supported

– Keine neuen Innovationen

• WPF

– Zukunftstechnologie für den Desktop

– Innovationen momentan weniger

• Silverlight

– Das UI-Framework für die Cloud

– Zur Zeit die meisten Innovationen

Page 64: Neumann_TechnologyShootOut

Shared Source Development

• Anwendung soll auf nahezu gleichen

Sourcen in untersch. Umgebungen laufen

– Desktop: WPF

– Web: Silverlight

• Kleinster gemeinsamer Nenner

– XAML

– REST/SOAP

– Core BCL

Page 65: Neumann_TechnologyShootOut

Empfehlungen

• Desktop

– WPF / Windows Forms

• Intranet

– Silverlight / XBAP

• Internet

– Silverlight / ASP.NET

Page 66: Neumann_TechnologyShootOut

Empfehlungen: Desktop

• Windows Forms

– Business Anwendung / Office-Integration

– Nutzung: In-House / Abteilungsebene

– Geringe WPF-Skills vorhanden

– Kleines Budget / Zeit

• WPF

– Große Anwendung

– Nutzung: Endanwender oder Enterprise Level

– Größeres Budget / Zeit

– Multimedialastig / Dokumentenlastig

Page 67: Neumann_TechnologyShootOut

Hybrid Applications

• Windows Forms in WPF hosten

– WindowsFormsHost Control

• WPF in Windows Forms hosten

– ElementHost Control

• WPF in ASP.NET hosten

– XBAP

Page 68: Neumann_TechnologyShootOut

Empfehlung: Intranet

• XBAP

– Read-Only-Inhalte

– App benötigt keine größeren Berechtigungen

– Wenn 3D oder Dokumente eine Rolle spielen

• Silverlight

– Business Anwendungen

– Im Zusammenspiel mit ASP.NET

Page 69: Neumann_TechnologyShootOut

Fragestellungen

• Welchen Scope hat die Anwendung?

– Department Level

– Enterprise Level

• Für welche Umgebungen wird entwickelt?

– Desktop, Intranet, Internet

– Office- oder SharePoint-Integration?

• Welche Features werden benötigt?

– Dokumente, 3D, …

Page 70: Neumann_TechnologyShootOut

FRAGEN?

Page 71: Neumann_TechnologyShootOut

71

http://www.thinktecture.com/

[email protected]

In-depth support and consulting for

software architects and developers{ }

Page 72: Neumann_TechnologyShootOut

Hat Ihnen mein Vortrag gefallen?

Ich freue mich auf Ihr Feedback!

Page 73: Neumann_TechnologyShootOut

Wir sehen uns wieder:

In 5 Tagen zum SharePoint Profi!

02.-06. November 2009 in Frankfurt

www.SharePointCamp.de

Schneller zum .NET 3.5 Developer

09.-13. November 2009 in Wien

www.DevTrain.de/Camp

24.-25. Februar 2010 in München

www.VSone.de

Page 74: Neumann_TechnologyShootOut

!VIELEN DANKDein Name