Download - MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

Transcript
Page 1: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus1

MVCMVC

mit Lazarusmit Lazarus

MVCMVC

mit Lazarusmit Lazarus

www.lazarusforum.de25. - 27.07.2014 Reinheim

Page 2: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus2

Überblick

Page 3: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus3

Überblick● Theorie

● Definition

● Aufbau

● Vor- und Nachteile

Page 4: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus4

Überblick● Theorie

● Definition

● Aufbau

● Vor- und Nachteile

● Praxis

● Beispiel-Implementierung mit Lazarus

Page 5: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus5

Was ist MVC?Was ist MVC?Was ist MVC?Was ist MVC?

Page 6: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus6

„Wir entwickeln unser Out-of-the-box Web 3.0

Customer-Relationship-Management-System in einem

agilen Prozess unter strenger Nutzung des MVC-

Patterns, um das Like-Value in den Social-Networks

auf einem von unseren Stakeholdern akzeptierten

Wert zu halten.“

Page 7: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus7

„Wir entwickeln unser Out-of-the-box Web 3.0

Customer-Relationship-Management-System in einem

agilen Prozess unter strenger Nutzung des MVC-

Patterns, um das Like-Value in den Social-Networks

auf einem von unseren Stakeholdern akzeptierten

Wert zu halten.“Bullshit!

Bullshit!

Page 8: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus8

Model-View-ControllerModel-View-Controller

Page 9: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus9

Model-View-ControllerModel-View-Controller

Model-View-PresenterModel-View-Presenter

Page 10: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus10

Model-View-ControllerModel-View-Controller

Model-View-PresenterModel-View-Presenter

Model-View-AdaptorModel-View-Adaptor

Page 11: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus11

Model-View-ControllerModel-View-Controller

Model-View-PresenterModel-View-Presenter

Model-View-AdaptorModel-View-Adaptor

Model-View-ViewmodelModel-View-Viewmodel

Page 12: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus12

Model-View-ControllerModel-View-Controller

Model-View-Presenter

Model-View-Adaptor

Model-View-Viewmodel

Page 13: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus13

Model-View-Controller (MVC) ist ein Architekturmuster für GUI-Anwendungen. Es trennt die Applikation in drei Teile, die lose miteinander gekoppelt sind.

Model–View-Controller

Page 14: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus14

Model

Model-View-Controller (MVC) ist ein Architekturmuster für GUI-Anwendungen. Es trennt die Applikation in drei Teile, die lose miteinander gekoppelt sind.

Model–View-Controller

Page 15: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus15

Model View

Model-View-Controller (MVC) ist ein Architekturmuster für GUI-Anwendungen. Es trennt die Applikation in drei Teile, die lose miteinander gekoppelt sind.

Model–View-Controller

Page 16: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus16

Model ViewController

Model-View-Controller (MVC) ist ein Architekturmuster für GUI-Anwendungen. Es trennt die Applikation in drei Teile, die lose miteinander gekoppelt sind.

Model–View-Controller

Page 17: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus17

Model

Page 18: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus18

ModelDas Modell enthält Klassen, die alle darzustellenden Daten repräsentieren.

Page 19: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus19

Model

TAnnualResults

+ Year: Integer+ Sales: Currency+ Profit: Currency

TResults

+ CompanyId: Integer+ Results: array of TAnnualResult

Das Modell enthält Klassen, die alle darzustellenden Daten repräsentieren.

Page 20: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus20

Model

TAnnualResults

+ Year: Integer+ Sales: Currency+ Profit: Currency

TResults

+ CompanyId: Integer+ Results: array of TAnnualResult

Das Modell enthält Klassen, die alle darzustellenden Daten repräsentieren.

In vielen Fällen sind im Modell auch die Klassen der Geschäftslogik und Datenpersistenz vertreten.

Page 21: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus21

Model

TAnnualResults

+ Year: Integer+ Sales: Currency+ Profit: Currency

TResults

+ CompanyId: Integer+ Results: array of TAnnualResult

Das Modell enthält Klassen, die alle darzustellenden Daten repräsentieren.

In vielen Fällen sind im Modell auch die Klassen der Geschäftslogik und Datenpersistenz vertreten.

TBilanzService

+ Connect()+ Disconnect()+ GetResults(StartYear: Integer): TResults

Page 22: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus22

Model

TAnnualResults

+ Year: Integer+ Sales: Currency+ Profit: Currency

TResults

+ CompanyId: Integer+ Results: array of TAnnualResult

TBilanzService

+ Connect()+ Disconnect()+ GetResults(StartYear: Integer): TResults

Das Modell enthält Klassen, die alle darzustellenden Daten repräsentieren.

In vielen Fällen sind im Modell auch alle Klassen zur Geschäftslogik und Datenpersistenz vertreten.

Datenbank

Page 23: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus23

View

Page 24: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus24

ViewDie Views sind für die Darstellung der Daten aus dem Modell und die Entgegennahme von Benutzerinteraktionen zuständig. Sie kennen das Model.

Page 25: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus25

Umsatz Gewinn

2011 3,5 Mio EUR 210 tsd. EUR

2012 3,2 Mio. EUR 570 tsd. EUR

2013 3,8 Mio. EUR 510 tsd. EUR

2014 2,9 Mio. EUR 720 tsd. EUR

ViewDie Views sind für die Darstellung der Daten aus dem Modell und die Entgegennahme von Benutzerinteraktionen zuständig. Sie kennen das Model.

Page 26: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus26

2011 2012 2013 20140

500000

1000000

1500000

2000000

2500000

3000000

3500000

4000000

Umsatz Gewinn

2011 3,5 Mio EUR 210 tsd. EUR

2012 3,2 Mio. EUR 570 tsd. EUR

2013 3,8 Mio. EUR 510 tsd. EUR

2014 2,9 Mio. EUR 720 tsd. EUR

ViewDie Views sind für die Darstellung der Daten aus dem Modell und die Entgegennahme von Benutzerinteraktionen zuständig. Sie kennen das Model.

Page 27: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus27

2011 2012 2013 20140

500000

1000000

1500000

2000000

2500000

3000000

3500000

4000000

2011 2012 2013 20140

500000

1000000

1500000

2000000

2500000

3000000

3500000

4000000

Umsatz Gewinn

2011 3,5 Mio EUR 210 tsd. EUR

2012 3,2 Mio. EUR 570 tsd. EUR

2013 3,8 Mio. EUR 510 tsd. EUR

2014 2,9 Mio. EUR 720 tsd. EUR

ViewDie Views sind für die Darstellung der Daten aus dem Modell und die Entgegennahme von Benutzerinteraktionen zuständig. Sie kennen das Model.

Page 28: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus28

2011 2012 2013 20140

500000

1000000

1500000

2000000

2500000

3000000

3500000

4000000

2011 2012 2013 20140

500000

1000000

1500000

2000000

2500000

3000000

3500000

4000000

Umsatz Gewinn

2011 3,5 Mio EUR 210 tsd. EUR

2012 3,2 Mio. EUR 570 tsd. EUR

2013 3,8 Mio. EUR 510 tsd. EUR

2014 2,9 Mio. EUR 720 tsd. EUR

2012 Jahr:

Umsatz:

Gewinn:

3.200.000 EUR

570.000 EUR

ViewDie Views sind für die Darstellung der Daten aus dem Modell und die Entgegennahme von Benutzerinteraktionen zuständig. Sie kennen das Model.

Page 29: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus29

Controller

Page 30: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus30

ControllerDie Controller verwalten die Views, reagieren auf die Benutzereingaben und fordern Daten vom Model an oder geben sie an das Model weiter.

Page 31: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus31

ControllerDie Controller verwalten die Views, reagieren auf die Benutzereingaben und fordern Daten vom Model an oder geben sie an das Model weiter.

Model View

Controller Benutzer

Page 32: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus32

ControllerDie Controller verwalten die Views, reagieren auf die Benutzereingaben und fordern Daten vom Model an oder geben sie an das Model weiter.

Model View

Controller Benutzer

Page 33: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus33

ControllerDie Controller verwalten die Views, reagieren auf die Benutzereingaben und fordern Daten vom Model an oder geben sie an das Model weiter.

Model View

Controller Benutzer

Page 34: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus34

ControllerDie Controller verwalten die Views, reagieren auf die Benutzereingaben und fordern Daten vom Model an oder geben sie an das Model weiter.

Model View

Controller Benutzer

Page 35: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus35

ControllerDie Controller verwalten die Views, reagieren auf die Benutzereingaben und fordern Daten vom Model an oder geben sie an das Model weiter.

Model View

Controller Benutzer

Page 36: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus36

ControllerDie Controller verwalten die Views, reagieren auf die Benutzereingaben und fordern Daten vom Model an oder geben sie an das Model weiter.

Model View

Controller Benutzer

Page 37: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus37

ControllerDie Controller verwalten die Views, reagieren auf die Benutzereingaben und fordern Daten vom Model an oder geben sie an das Model weiter.

Model View

Controller Benutzer

Page 38: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus38

VorteileVorteileVorteileVorteile

Page 39: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus39

Austauschbarkeit

Page 40: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus40

verteilte Entwicklung

Page 41: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus41

Testbarkeit

Page 42: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus42

wartungsfreundlich

monolithische Anwendung

MVC-Anwendung

Page 43: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus43

NachteileNachteileNachteileNachteile

Page 44: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus44

MVC-Anwendung

monolithische Anwendung

Entwicklungsaufwand

Page 45: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus45

Komplexität der Anwendung / Entwicklungszeitraum

pro

zentu

aler

Aufw

and

Entwicklungsaufwand

MVC

monol.

Page 46: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus46

Beispiel-ApplikationBeispiel-ApplikationBeispiel-ApplikationBeispiel-Applikation

Page 47: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus47

Beispiel-ApplikationBeispiel-ApplikationBeispiel-ApplikationBeispiel-Applikation

wir bauen uns eine Adresslistewir bauen uns eine Adresslistewir bauen uns eine Adresslistewir bauen uns eine Adressliste

Page 48: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus48

Entwicklungsphasen

Page 49: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus49

Analyse

Entwicklungsphasen

Page 50: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus50

Analyse

Entwicklungsphasen

Design

Page 51: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus51

Analyse

Implementierung

Entwicklungsphasen

Design

Page 52: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus52

Userstories

Analyse Design Implementierung

Page 53: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus53

Userstories

Page 54: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus54

Userstories

Page 55: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus55

Userstories

#1 Liste aller Personen anzeigen

Im Hauptfenster des Programms soll eine Liste aller in der Datenbank gespeicherten Personen angezeigt werden (Daten: Name, Vorname).

Page 56: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus56

Userstories

#1

Page 57: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus57

Userstories

#2 Detailansicht für eine Person

Beim Klick auf den „Details“-Button soll in einem neuen Fenster alle Daten zu einer Person angezeigt werden.(Daten: Name, Vorname, Adresse, Stadt, Postleitzahl, E-Mail, Telefonnummer)

#1

Page 58: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus58

Userstories

#1 #2

Page 59: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus59

Userstories

#3 Person editieren

Beim Klick auf den „Bearbeiten“-Button soll in einem neuen Fenster alle Daten einer Person bearbeitet werden können.(Daten: Name, Vorname, Adresse, Stadt, Postleitzahl, E-Mail, Telefonnummer)

#1 #2

Page 60: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus60

Userstories

#3#1 #2

Page 61: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus61

Userstories

#3

#4 neue Person hinzufügen

Beim Klick auf den „Neu“-Button soll einem neuen Fenster die Daten zu einer neuen Person eingegeben werden können. Nach dem Klick auf Speichern soll die Person in die Datenbank geschrieben werden.

#1 #2

Page 62: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus62

Userstories

#3#1 #2 #4

Analyse Design Implementierung

Page 63: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus63

Analyse Design Implementierung

Datenklassen

Page 64: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus64

Datenklassen

#2 Detailansicht für eine Person

Beim Klick auf den „Details“-Button soll in einem neuen Fenster alle Daten zu einer Person angezeigt werden.(Daten: Name, Vorname, Adresse, Stadt, Postleitzahl, E-Mail, Telefonnummer)

Page 65: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus65

Datenklassen

#2 Detailansicht für eine Person

Beim Klick auf den „Details“-Button soll in einem neuen Fenster alle Daten zu einer Person angezeigt werden.(Daten: Name, Vorname, Adresse, Stadt, Postleitzahl, E-Mail, Telefonnummer)

TPerson

+ Id: LongInt+ Firstname: String+ Lastname: String+ Adress: String+ City: String+ Postcode: String+ Email: String+ Phone: String

Page 66: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus66

Datenklassen

TPerson

+ Id: LongInt+ Firstname: String+ Lastname: String+ Adress: String+ City: String+ Postcode: String+ Email: String+ Phone: String

#1 Liste aller Personen anzeigen

Im Hauptfenster des Programms soll eine Liste aller in der Datenbank gespeicherten Personen angezeigt werden (Daten: Name, Vorname).

Page 67: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus67

Datenklassen

TPerson

+ Id: LongInt+ Firstname: String+ Lastname: String+ Adress: String+ City: String+ Postcode: String+ Email: String+ Phone: String

#1 Liste aller Personen anzeigen

Im Hauptfenster des Programms soll eine Liste aller in der Datenbank gespeicherten Personen angezeigt werden (Daten: Name, Vorname).

TPersonHead

+ Id: LongInt+ Firstname: String+ Lastname: String

Page 68: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus68

Datenklassen

TPerson

+ Id: LongInt+ Firstname: String+ Lastname: String+ Adress: String+ City: String+ Postcode: String+ Email: String+ Phone: String

#1 Liste aller Personen anzeigen

Im Hauptfenster des Programms soll eine Liste aller in der Datenbank gespeicherten Personen angezeigt werden (Daten: Name, Vorname).

TPersonHead

+ Id: LongInt+ Firstname: String+ Lastname: String

TObjectList

TPersonHeadList

+ Add+ Extract+ Remove+ IndexOf+ Insert+ First+ Last+ GetEnumerator+ Items

Page 69: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus69

Datenklassen

TPerson

+ Adress: String+ City: String+ Postcode: String+ Email: String+ Phone: String

TPersonHead

+ Id: LongInt+ Firstname: String+ Lastname: String

TObjectList

TPersonHeadList

+ Add+ Extract+ Remove+ IndexOf+ Insert+ First+ Last+ GetEnumerator+ Items

Analyse Design Implementierung

Page 70: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus70

Interfaces

Page 71: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus71

#1 Liste aller Personen anzeigen

Im Hauptfenster des Programms soll eine Liste aller in der Datenbank gespeicherten Personen angezeigt werden (Daten: Name, Vorname).

Interfaces

Page 72: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus72

Interfaces

<<interface>>IMainView

+ BindPersonHeads(List: TPersonHeadList)

#1 Liste aller Personen anzeigen

Im Hauptfenster des Programms soll eine Liste aller in der Datenbank gespeicherten Personen angezeigt werden (Daten: Name, Vorname).

Page 73: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus73

Interfaces

<<interface>>IMainView

+ BindPersonHeads(List: TPersonHeadList)

#2 Detailansicht für eine Person

Beim Klick auf den „Details“-Button soll in einem neuen Fenster alle Daten zu einer Person angezeigt werden.(Daten: Name, Vorname, Adresse, Stadt, Postleitzahl, E-Mail, Telefonnummer)

Page 74: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus74

Interfaces

<<interface>>IMainView

+ BindPersonHeads(List: TPersonHeadList)

<<interface>>IDetailView

+ ShowPerson(APerson: TPerson)

#2 Detailansicht für eine Person

Beim Klick auf den „Details“-Button soll in einem neuen Fenster alle Daten zu einer Person angezeigt werden.(Daten: Name, Vorname, Adresse, Stadt, Postleitzahl, E-Mail, Telefonnummer)

Page 75: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus75

Interfaces

<<interface>>IMainView

+ BindPersonHeads(List: TPersonHeadList)

<<interface>>IDetailView

+ ShowPerson(APerson: TPerson)

#3 Person editieren

Beim Klick auf den „Bearbeiten“-Button soll in einem neuen Fenster alle Daten einer Person bearbeitet werden können.(Daten: Name, Vorname, Adresse, Stadt, Postleitzahl, E-Mail, Telefonnummer)

Page 76: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus76

Interfaces

<<interface>>IMainView

+ BindPersonHeads(List: TPersonHeadList)

<<interface>>IDetailView

+ ShowPerson(APerson: TPerson)+ EditPerson(APerson: TPerson): Boolean

#3 Person editieren

Beim Klick auf den „Bearbeiten“-Button soll in einem neuen Fenster alle Daten einer Person bearbeitet werden können.(Daten: Name, Vorname, Adresse, Stadt, Postleitzahl, E-Mail, Telefonnummer)

Page 77: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus77

Interfaces

<<interface>>IMainView

+ BindPersonHeads(List: TPersonHeadList)

<<interface>>IDetailView

+ ShowPerson(APerson: TPerson)+ EditPerson(APerson: TPerson): Boolean

#4 neue Person hinzufügen

Beim Klick auf den „Neu“-Button soll einem neuen Fenster die Daten zu einer neuen Person eingegeben werden können. Nach dem Klick auf Speichern soll die Person in die Datenbank geschrieben werden.

Page 78: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus78

Interfaces

<<interface>>IMainView

+ BindPersonHeads(List: TPersonHeadList)

<<interface>>IDetailView

+ ShowPerson(APerson: TPerson)+ EditPerson(APerson: TPerson): Boolean+ NewPerson(APerson: TPerson): Boolean

#4 neue Person hinzufügen

Beim Klick auf den „Neu“-Button soll einem neuen Fenster die Daten zu einer neuen Person eingegeben werden können. Nach dem Klick auf Speichern soll die Person in die Datenbank geschrieben werden.

Page 79: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus79

Interfaces

<<interface>>IMainView

+ BindPersonHeads(List: TPersonHeadList)

<<interface>>IDetailView

+ ShowPerson(APerson: TPerson)+ EditPerson(APerson: TPerson): Boolean+ NewPerson(APerson: TPerson): Boolean

<<interface>>IPersistence

+ GetAllPersonHeads: TPersonHeadList+ GetPerson(Id: LongInt): TPerson+ InsertPerson(APerson: TPerson)+ UpdatePerson(APerson: TPerson)

Page 80: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus80

Interfaces

Analyse Design Implementierung

<<interface>>IMainView

+ BindPersonHeads(List: TPersonHeadList)

<<interface>>IDetailView

+ ShowPerson(APerson: TPerson)+ EditPerson(APerson: TPerson): Boolean+ NewPerson(APerson: TPerson): Boolean

<<interface>>IPersistence

+ GetAllPersonHeads: TPersonHeadList+ GetPerson(Id: LongInt): TPerson+ InsertPerson(APerson: TPerson)+ UpdatePerson(APerson: TPerson)

Page 81: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus81

Controller

Analyse Design Implementierung

Page 82: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus82

Controller

TMainController

+ <<constructor>> Create(ADao: IPersistence; AMainView: IMainView; ADetailView: IDetailView)

Page 83: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus83

Controller

TMainController

+ <<constructor>> Create(ADao: IPersistence; AMainView: IMainView; ADetailView: IDetailView)+ CreatePerson+ EditPerson(PersonHead: TPersonHead)+ ShowDetails(PersonHead: TPersonHead)+ SyncMainview

Page 84: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus84

Controller

Analyse Design Implementierung

TMainController

+ <<constructor>> Create(ADao: IPersistence; AMainView: IMainView; ADetailView: IDetailView)+ CreatePerson+ EditPerson(PersonHead: TPersonHead)+ ShowDetails(PersonHead: TPersonHead)+ SyncMainview

Page 85: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus85

Analyse Design Implementierung

Page 86: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus86

Analyse Design Implementierung

Page 87: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus87

FragenFragenFragenFragen

??

Page 88: MVC mit Lazarus - michael-fuchs.net file4 MVC mit Lazarus Überblick Theorie Definition Aufbau Vor- und Nachteile Praxis Beispiel-Implementierung mit Lazarus

MVC mit Lazarus88

Vortragsfolien zum DownloadVortragsfolien zum DownloadVortragsfolien zum DownloadVortragsfolien zum Download

http://go.michael-fuchs.net/156