Jörg Neumann
Acando | thinktecture
Joerg.Neumann@thinktecture.com
Demo
{ In-depth support and consulting for
software architects and developers }
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
•Mit Client-Zertifikaten
Vor- und Nachteile
• Vorteile
– Leichte Integration in Intranet-Sites
•SharePoint, MS CRM, ASP.NET, …
• 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 }
Demo
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
• Einfache und produktive 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
WPF
Transformation
• Window Forms
– Transformation ist ein Feature des Controls
• WPF
– Alles kann transformiert werden
Silverlight
• UI-Framework für
Cross-OS/Cross-Browser Apps
– Multimedia-Anwendungen
– Business-Anwendungen
• Einsatzgebiete
– Internet, Intranet
– Browser, Desktop
27
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
28
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)
29
Funktionsweise
Browser
HTML Page
XAP-Archiv
.NET Code
XAML
Silverlight Browser Plug-In
30
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
31
.NET-Support
• C#, VB
• Silverlight BCL
– Subset der .NET BCL
– Kompatibel zu .NET BCL
• Dynamic Language Runtime
– JavaScript
– IronPython
– IronRuby
32
Datenzugriff
• Nur indirekt möglich
– Web Services
•Windows Communication Foundation
– REST
•ADO.NET Data Services
– RIA Services
•Framework für verteilte Anwendungen
•z.Zt. im Beta-Stadium
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
34
{ 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
•Übertragung von Bitmaps
– Hoher Ressourcenverbrauch auf dem Server
•Software Rendering!
• Windows Forms
– Gute Performance
•Übertragung von GDI-Befehlen
– Geringer Ressourcenverbrauch auf Server
Windows Remoting über RDP
Server-Side Rendering Client-Side Rendering
• WPF • Windows Forms
• Silverlight • GDI
• Flash • Efficient Media
• DirectX – Codecs on Client
– kein DRM
• Media
Security
• Windows Forms / WPF
– Läuft unter Partial und Full Trust
– Abhängig vom Deployment-Verfahren
• XBAP
– Partial Trust (Internet-Zone)
• Silverlight
– Partial Trust
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
{ In-depth support and consulting for
software architects and developers }
Demo
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
•Spezielle Version der ADO.NET Data Services
•z.Zt. noch in Entwicklung
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
72