Sponsoren: Veranstalter:
Jörg Neumann
• Principal Consultant bei Acando
• Associate bei Thinktecture
• MVP im Bereich „Client App Dev“
• Beratung, Schulung, Coaching
• Buchautor, Speaker
• Mail
– Joerg.Neumann@Acando.de
– Joerg.Neumann@thinktecture.com
• Blog
– www.HeadWriteLine.BlogSpot.com
Agenda
• Vorstellung der Frameworks
– WPF / XBAP
– Windows Forms
– Silverlight
• Faktoren bei der Technologieauswahl
• Empfehlungen
{ In-depth support and consulting for
software architects and developers }
Windows Presentation
Foundation
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
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
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
Die Architektur von WPF
XAML
Browser Applications
(XBAP)
XAML Browser Applications
• Ähnliches Konzept wie ClickOnce
• App wird im Browser gehosted
• Browser-füllend oder in IFrame
Das Deployment-Verfahren
Application Binaries
(.deploy)
Architektur
Browser
Presentation Host
WPF
Runtime
WPF Content
Navigationsanwendungen
• Navigation wie im Browser
• Desktop- oder Browser-App (XBAP)
• Page statt Window
• Navigationsleiste
– Historie wird autom.
aktualisiert
• Hyperlinks
– Zur Navigation
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
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
{ In-depth support and consulting for
software architects and developers }
Windows Forms
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
Nachteile von Windows Forms
• Fehlende Features
– Multimedia
– Animation
– 3D
– Dokumentenmodell
– Adaption auf andere Plattformen
– Keine klare Trennung von Code und Design
Nachteile von Windows Forms
• Skalierung
• Transparenz
• Transformation
WPF vs. WinForms - Skalierung
• Windows Forms
– Alles wird Pixel-basiert gezeichnet
• WPF
– Alles wird Vector-basiert gezeichnet
WPF
Windows Forms
WPF vs. WinForms – Transparenz
• Windows Forms
– Jedes Control zeichnet sich selbst
• WPF:
– Alles wird mit einer Rendering Engine
gezeichnet
Transformation
• Window Forms
– Transformation ist ein Feature des Controls
• WPF
– Alles kann transformiert werden
{ In-depth support and consulting for
software architects and developers }
Silverlight
Silverlight
• UI-Framework für die Cross-OS/Cross
Browser-fähige Anwendungen
– Multimedia-Anwendungen
– Business-Anwendungen
• Einsatzgebiete
– Internet, Intranet
– Browser, Desktop
30
Unterstützte Plattformen
• Windows 7 / Vista / XP, SP2
• MAC OS X (ab 10.4.8) [Intel only]
• Linux (Moonlight)*
• Mobile-Version in Arbeit
* Moonlight: http://www.mono-project.com/Moonlight
31
Unterstützte Plattformen (SL3)
OS / Browser Internet Internet Internet Firefox Safari
Explorer 8 Explorer 7 Explorer 6 2&3 3&4
Windows 7
Windows Vista
Windows Server
2003 (excl. IA-64)
Windows Server
2008
Mac OS 10.4.8+
(PowerPC)
Mac OS 10.4.8+
(Intel-based)
32
Funktionsweise
Browser
HTML Page
XAP-Archiv
.NET Code
XAML
Silverlight Browser Plug-In
33
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
.NET-Support
• C#, VB
• Silverlight BCL
– Subset der .NET BCL
– Kompatibel zu .NET BCL
• Dynamic Language Runtime
– JavaScript
– IronPython
– IronRuby
35
Datenzugriff
• Nur indirekt möglich
– Web Services
•Windows Communication Foundation
– REST
•ADO.NET Data Services
– RIA Services
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
{ In-depth support and consulting for
software architects and developers }
• UIElement.CacheMode-Eigenschaft
<Canvas CacheMode="BitmapCache" />
Hardware Acceleration in SL
• Nur auf der Windows-Plattform
• DirectX 9.0c erforderlich
• Was wird beschleunigt?
– RenderTransform
– Rectangular Clipping
– Opacity
– Visibility
Remote Desktop/Citrix
• WPF/Silverlight
– Schlechte Performance
– Hoher Ressourcenverbrauch auf dem Server
•Software Rendering!
• Windows Forms
– Gute Performance
– Geringer Ressourcenverbrauch auf Server
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“
Security
• Auslesen des aktuellen Benutzers
• Zugriff auf externe Hardware
– Lokale Drucker, Kassensysteme, …
• Zugriff auf Netzwerkinfrastruktur
– Datenbanken, Active Directory, Drucker
Zugriff auf System-Ressourcen
• Dateisystem
• Registry
• Windows Services
• MSMQ
• Direkter Datenbankzugriff
• Windows Shell
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
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
Offline-fähigkeit
• WPF/Windows Forms
– SQL Server Compact Edition
– Sync Framework
• Silverlight
– Desktop Mode
– Astoria Offline (z.Zt. noch in Arbeit)
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
IDE-Features
Feature WPF Silverlight Windows Forms
Designer
Datenbindung
Ressourcen
Settings
Lokalisierung
Performance
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
Plattformen
Plattformen WPF Silverlight Windows Forms
Windows 2000
Windows XP/Vista/7
MAC OS (Intel)
joerg.neumann@thinktecture.com
www.HeadWriteLine.BlogSpot.com
71
Hat Ihnen mein Vortrag gefallen?