WPF - wie und wann man es verwenden soll

gayheadtibburInternet and Web Development

Feb 5, 2013 (4 years and 4 months ago)

159 views

Wie

und
wann

verwendet

man
WPF?

Gerhard Jaros




Gesch
äftsführer EPS Software GmbH, Österreich



Seit 3

Jahren Sprecher auf verschiedenen Konferenzen



VFPConversion Sprecher



17 Jahre Software
-
Entwicklung in dBase, FoxPro und VFP



4 Jahre Software
-
Entwicklung mit Visual Studio (C#)



Österreicher


schwierige Sprache, sorry!

Worüber wir uns unterhalten
sollten ...


Was ist Windows Presentation Foundation?


Wozu Windows Presentation Foundation
?


Wozu Silverlight?


Vorteile und Nachteile von WPF


Alles bisherige vergessen?


Technische Voraussetzungen für WPF und
Silverlight


WinForms vs. WPF
-
Forms


Silverlight vs. ASP.NET vs. AJAX


Silverlight vs. XBAP

Was wir uns ansehen sollten ...


Binding


Styles


Templates


ControlTemplates


DataTemplates



Was ist Windows Presentation
Foundation/XAML?


Neues Frontend
-
Entwicklertool von Microsoft
nach 20 Jahren


Derzeit 2. Version von WPF


XAML
-
Basierend


XAML ist „die Beschreibung“ von Elementen,
WPF setzt sie in ein UI um


Wozu Windows Presentation
Foundation?


Wenn Entwickler nicht mit der
Zeit
gehen,

müssen sie mit der Zeit
gehen
.



Erwartungshaltung der User


Flexibilität in einer Zeit der ständigen Änderungen


Qualität der Forms


Performance


Vektoren


Animationen


Medien


Zeitgemäße Anforderungen

Vorteile


What you see is what you get.


„Natürliches“ Frontend


XAML:
ein

Code für verschiedene
Frontends


Databinding


Bisher undenkbare
Gestaltungsmöglichkeiten


Vorteile II


Keine Bildschirmauflösung im bisherigen Sinn
(Margins)


vektorbasierende Oberfläche


Animationen


3
-
D
-
Applikationen und

Animationen


Viele Codebeispiele im Web (meist auf
Englisch)


Upgrade von bestehenden .NET
-
Applikationen
relativ einfach

Nachteile


XAML: Relativ hohe Lernkurve durch die
unzähligen Möglichkeiten mit dieser Sprache


Anforderungen an den User
-
Rechner


Anforderungen an den Entwickler
-
Rechner
(Cider)


Fehlende Anfragen von den Kunden mangels
Information durch uns Entwickler

Wozu Silverlight?


AJAX löst viele Probleme


AJAX führt zu neuen Anforderungen


Das bisherige Web UI ist eingeschränkt


Fähigkeiten des Browsers


JavaScript


Standard HTML
-
Tags


Wir brauchen also ein neues Format und neue
kompilierbare Sprachen

Geschichte der Web UIs


Browsers und HTML


Dann JavaScript und CSS


1997/1998: Dynamic HTML


Plug
-
Ins:


ActiveX (ca. 1998)


Flash


Silverlight = „ActiveX mit Security und Interop“




Was ist Silverlight?


Version 1.0


Reaktion von MS auf Flash


JavaScript im Hintergrund, verwendet (sehr einfaches XAML)


PlugIn: 1,37 MB


Version 2


CoreCLR und Security inkludiert


Unterstützt managed und dynamic languages (z.B. Iron
Python/Iron Ruby)


(Fast) Komplettes XAML


Browser
-
unabhängig


PlugIn: 1,44 MB


Silverlight 2 sitzt zwischen AJAX und Smart Clients




Alles bisherige vergessen?

Common Language Runtime

Windows
Presentation
Foundation

Windows
Workflow
Foundation

Windows
CardSpace

Base Class Libraries

.NET Framework 2.0

.NET Framework 3.0

ADO.NET

ASP.NET

Windows Forms

Windows
Communication
Foundation

Alles bisherige vergessen?


Nein.


WPF = alternative Erweiterungsmöglichkeit zu
WinForms


Technische Voraussetzungen beim User


Gewohnheiten des Users


WPF als Control in einer WinForm


Technische Voraussetzungen
für WPF und Silverlight


Windows 2008 (32 bit und 64 bit)


Windows Vista (32 bit und 64 bit)


Windows XP


Windows 2003


Windows 2000

Technische Voraussetzungen
für WPF und Silverlight für
Entwickler 2


Visual Studio 2005:
Final, released versions
von Visual Studio Standard Edition, Visual
Studio Professional Edition, Visual Studio
Team System Editions,
oder


Visual Studio 2008

(Team, Professional,
Standard und Express)


.NET Framework 3.5

WinForms vs. WPF
-
Forms


Stand der Technik beim Anwender


Gewohnheiten der Anwender


Lebenszyklus der Applikation


Geschwindigkeit bei der Entwicklung von UI‘s


Animationen


3D
-
Anwendungen




Silverlight vs. AJAX


Compiled Code vs. Interpretiertes JavaScript


Performance!


XAML vs. HTML


.NET FX subsets vs. JavaScript class libraries


Silverlight ist ein PlugIn


Sehr einfache Installation




Silverlight vs. Smart Clients


Silverlight
-
Solutions sind Web
-
Solutions


Web Solutions


Einfaches Deployment


nur ein Server muss
aktualisiert werden


Clients mit verschiedensten Plattformen können die
Applikation verwenden


Desktop Solutions


ClickOnce als einfaches Deployment (unter Windows)


Enge Bindung an Windows und .NET




Silverlight vs. XBAP


XBAP = Extended Browser Applications


Ein XBAP
-
File verwendet intern ClickOnce, um
deployed zu werden


XBAP unterstützt alle WPF
-
Funktionen
(inklusive 3D)


XBAP benötigt das .NET Framework 3.5


Installation weitaus größer als das Silverlight

Plug
-
In

Silverlight vs. Flash


Silverlight seit 2007, Flash seit 1997


Flash entwickelte sich vom Illustrations
-

und
Animationstool zu einer ernsthaften
Programmiersprache


Silverlight ist das „grafisch orientierte Add
-
On“ zu
einer etablierten Entwickler
-
Umgebung


Direkter Vergleich schwer möglich


Flash verwendet eine Bibliothek, in der Elemente
liegen


Silverlight nutzt XAML, um diese Elemente
einzubinden


Silverlight vs. Flash 2


XAML: Einfache Lesbarkeit durch Mensch und
Maschine


Kann von JavaScript genauso wie von C# gelesen werden


XAML ist eine deklarative (=beschreibende) Markup
-
Sprache


XAML ist von Suchmaschinen leichter auffindbar als
Flash (semantische Zusammenhänge)


Flash
-
Programmierer tun sich mit Silverlight schwer


Und davon gibt es mehr, als Silverlight
-
Programmierer


Kenntnisse in Visual Studio erforderlich


Flash unterstützt mehr Video
-
Formate (FLV, MPEG4,
QuickTime, ...)

Binding


System.Windows.Data.Binding


An alle UIElements können Daten gebunden
werden


Grids, Panels, Textboxes, Listboxes, ....


{Binding}

sucht das nächste Binding in der
darüberliegenden Hierarchie


Zuerst beim eigenen Element, dann darüber usw.

Styles


Globales Verändern des Layouts von
Steuerelementen


Zuweisen von „Values“ mit Hilfe von „Settern“

Templates

<
ControlTemplate

x
:
Key
="
myButtonTemplate
">


<
Grid

Background
="Silver">


<
ContentPresenter
/>


</
Grid
>

</
ControlTemplate
>


<
DataTemplate
>


<
TextBlock




Text
="{
Binding
}"



Foreground
="
DarkGray
"/>


</
DataTemplate
>

Styles vs. Templates


Mit Templates werden die Basiselemente und deren
Properties für ein Element festgelegt.


Mit Styles werden die Werte der Properties definiert.


Vergleich: Auto



Styles:


Außenfarbe


Innenfarbe


Templates:


speziell angefertigter Schalensitz


Sonderlackierung