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

18
Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb www.software.tirol

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

Page 1: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

Mit WPF und PRISM Anwendungen modular

entwickeln

Ing. Christian Giesswein, MSc.

@giessweinweb

www.software.tirol

Page 2: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

About Me

• Ing. Christian Giesswein, [email protected]

• 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

Page 3: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

Agenda - Reiseroute

• Modulare Architektur

• WPF + Binding = MVVM

• PRISM Grundlagen

• Praxis!

20%

80%

Page 4: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

Modulare ArchitekturChristian Giesswein

4

Page 5: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

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.

Page 6: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

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

Page 7: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

Dependency Injection

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

• Constructorinjection

• Methodinjection

• Fieldinjection

Page 8: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

WPFChristian Giesswein

8

Page 9: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

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)

Page 10: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

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

Page 11: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

PRISMChristian Giesswein

11

Page 12: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

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

Page 13: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

Modularer Aufbau

Anwendung .exe(Shell)

Konfiguration / Starten

Module A

XAML + C#

Module B

XAML

Module C

C#

Infrastruktur

XAML + C# + …

Page 14: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

Zwei Wege von Modularität

Page 15: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

Zwei Wege von Modularität

Page 16: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

Initialisierung von PRISM

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

Page 17: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

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.

Page 18: Mit WPF und PRISM Anwendungen modular entwickeln wpf und prism... · Mit WPF und PRISM Anwendungen modular entwickeln Ing. Christian Giesswein, MSc. @giessweinweb

Twitter: @giessweinweb

Email: [email protected]

Web: www.software.tirol

… oder persönlich :-)

Vielen Dank für Ihre Aufmerksamkeit