Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen...

Post on 07-Feb-2018

237 views 2 download

Transcript of Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen...

Mit WPF und PRISM Anwendungen modular

entwickeln

Ing. Christian Giesswein, MSc.

@giessweinweb

www.software.tirol

About Me

• Ing. Christian Giesswein, MSc.Christian@giesswein-apps.atwww.giesswein-apps.at

• Die bunte Welt von C#/.NET• C#, ASP.NET, WCF, WPF, ADO.NET,..

• Fachzeitschriften & Konferenzen• DotNetPro, cT, VisualStudio1, Windows Developer• .NET Cologne, NRWConf, TeamConf, DDC, DWX,...

• Giesswein Software-Solutions• Consulting, Development & Schulungen

Agenda - Reiseroute

• Modulare Architektur

• WPF + Binding = MVVM

• PRISM Grundlagen

• Praxis!

20%

80%

Modulare ArchitekturChristian Giesswein

4

Dependency Injection

• Bevor man sich den „Kopf zerbrechen“ sollte über Modularen Aufbau, ist es wichtig, den Code modular zu gestalten.• 1 Klasse mit 20.000 Zeilen ist selten „modular“

• Modularität geht mit einer „schwachen Kopplung“ einher.

Dependency Injection

• Klassen sind nicht mehr zuständig für Ihre Abhängigkeiten.

• Eine Softwarekomponente ist zuständig jede notwendige Abhängigkeit aufzulösen.

• Verantwortlichkeit hat der DI-Container

• Splittet die Klasse weiter auf• Unabhängig von der Erzeugung der Objekte

Dependency Injection

• Injection ist mit verschiedenen Techniken möglich:• Propertyinjection

• Constructorinjection

• Methodinjection

• Fieldinjection

WPFChristian Giesswein

8

Bindings

• Binding ermöglichen den Datenzugriff sowie Datenänderung

• Daten werden vom DataContext abgerufen

• Mode vom Binding gibt an welche Richtung(en)

9

Target(meistens DP in der UI)

BindingSource

(object / UI)

Grundlagen

• MVVM• Trennung von Daten, Logik und Oberfläche

• Programmierer kümmert sich im Idealfall nicht um die Oberfläche

• Designer kümmert sich um die Oberfläche

• Jeder tut das was er am besten kann

10

Model ViewModel View

PRISMChristian Giesswein

11

PRISM

• Aktuellste Version: 6.1 (2016)• Früher: https://compositewpf.codeplex.com/

• Heute: http://www.github.com/prismlib

• Dokumentation:• http://msdn.microsoft.com/en-

us/library/gg406140.aspx

PRISM 5.0 Besteht aus:Prism.CompositionPrism.MvvmPrism.PubSubEventsPrism.Interactivity

PRISM 6.1 Besteht aus:PrismPrism.Wpf

Modularer Aufbau

Anwendung .exe(Shell)

Konfiguration / Starten

Module A

XAML + C#

Module B

XAML

Module C

C#

Infrastruktur

XAML + C# + …

Zwei Wege von Modularität

Zwei Wege von Modularität

Initialisierung von PRISM

• „Bootstrapper“ ist zuständig für die Initialisierung

Wenn Sie mehr wissen wollen…

Weitere Termine für die 2. Jahreshälfte ab Mitte Mai unter www.developer-media.de.Alle Trainings auch als Inhouse-Schulungen in Ihrem Unternehmen buchbar.

Twitter: @giessweinweb

Email: christian@software.tirol

Web: www.software.tirol

… oder persönlich :-)

Vielen Dank für Ihre Aufmerksamkeit