Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Die FMP12-Datei als wiederverwendbares Objekt
Thomas Hirt
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Inhaltsübersicht
• Ziele und Einschränkungen
• Wiederverwendbarkeit in FileMaker
• die Idee des "Objektes" im Software Engineering
• Methoden zur Reduktion der Komplexität
• Programmierparadigmen
• Objektorientierung in a Nutshell
• die FileMaker Datenbankdatei als Objekt
• Implementation eines Interface
• Anwendungsbeispiele
• Q&A
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Ziele und Einschränkungen
• Dieses Referat verfolgt zwei Ziele:
• aufzeigen einer konkreten Arbeitstechnik, die
Wiederverwendbarkeit fördert
• Anregung zum Nachdenken über Möglichkeiten und Grenzen von
FileMaker im grösseren Kontext des Software Engineering
• Wie in jedem Fachgebiet gibt es auch im Software Engineering und in
der FileMaker-Community unterschiedliche Ansichten. Das Referat legt
sich auf einige fest, erhebt aber keinesfalls den Anspruch, alleingültig
zu sein.
• Diverse Themen müssen stark verknappt und daher teilweise auch
etwas unscharf wiedergegeben werden. Diese Themen sind in
besonderem Masse als Anregung zur individuellen Vertiefung nach der
Konferenz gedacht.
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Wiederverwendbarkeit in FileMaker
• Wiederverwendung explizit von FileMaker vorgesehen
• Verweise
• Tabellen
• Skripten
• Importe
• Tabellen
• Skripten
• Custom Functions
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Wiederverwendbarkeit in FileMaker
• Wiederverwendung mittels Copy-Paste
• Tabellen und Felder
• Layout-Elemente (sehr bedingt inkl. ihrer Verknüpfungen)
• Skripte
• Custom Function Code
• Grenzen der Wiederverwendbarkeit
• Benutzerkonti & Berechtigungen
• Custom Menus
• Konstrukte
(Kombination von Tabellen, Feldern, Skripten, CFs)
• Schnittstellen und Architekturen
• Module
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Methoden zur Reduktion der Komplexität
• Zerlegung
• fachlich
• Reihenfolgen
• Teilsysteme
• Schnittstellen
• Abhängigkeiten
• zeitlich
• Analyse
• Design
• Implementation
• Testing
• Betrieb
• Abstraktion
• abstrahere (lat.) entfernen
• Klassifikation (Gemeinsamkeiten)
• Assoziation (Beziehungen)
• Generalisierung und
Spezialisierung
• Aggregation (ist-Teil-von)
• Wiederverwendung
• "das Rad nicht neu erfinden"
• Algorithmen
• Bibliotheken
• Module
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Methoden zur Reduktion der Komplexität
• Zerlegung
• fachlich
• Reihenfolgen
• Teilsysteme
• Schnittstellen
• Abhängigkeiten
• zeitlich
• Analyse
• Design
• Implementation
• Testing
• Betrieb
• Abstraktion
• abstrahere (lat.) entfernen
• Klassifikation (Gemeinsamkeiten)
• Assoziation (Beziehungen)
• Generalisierung und
Spezialisierung
• Aggregation (ist-Teil-von)
• Wiederverwendung
• "das Rad nicht neu erfinden"
• Algorithmen
• Bibliotheken
• Module
Vorgehensweise mit FM möglich mit FM schwer/unmöglich mit FM bedingt möglich
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Exkurs: Schnittstellen und Layers
Schnittstelle: Datenmodell Datenspeicherung Datensuche
Schnittstelle: Geschäftslogik Logik zu Thema X Logik zu Thema Y
Schnittstelle: GUI Aufbereitung Eingaben Aufbereitung Ausgaben
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Exkurs: Schnittstellen und Layers
Vorteile von Schnittstellen
und Layers
• lose Kopplung zwischen Layers
• hohe Kohäsion innerhalb Layers
• solange die Schnittstelle konstant
bleibt, kann alles andere
geändert werden
Realität in FileMaker
• enge Kopplung
• hartkodierte Verbindungen
• Datenstruktur der
eingebundenen "external data
sources" wird direkt verwendet
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Programmierparadigmen
Prozedurale
Programmierung
• Variablen
• Name
• Datentyp
• Funktionen mit Parametern (Prozeduren, Subroutinen)
• Kontrollstrukturen
• Sequenz
• Verzweigung
• Schleife
• Modularisierung
• deterministischer, schrittweiser Ablauf
Objektorientierte
Programmierung
• Dekomposition in Klassen
• Zustand (Attribute)
• Methoden (Funktionen)
• Generalisierung mittels Vererbung
• Assoziation (Beziehungen) mittels
• Komposition
• Aggregation
• Instanzierung von Objekten aus Klassen
• Objekte existieren gleichzeitig und senden sich Botschaften
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Objektorientierung in a Nutshell
Klasse
Klassenname
Attribute
Methoden
Fahrzeug
+ anzRaeder: int + hatDach: bool + anzPersonen: int
+ fahren( ziel: Ort ) + zusteigen ( personen: int )
auto: Fahrzeug
+ anzRaeder: 4 + hatDach: true + anzPersonen: 0
+ fahren( ziel: Ort ) + zusteigen ( personen: int )
Objekt
Instanzierung
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Objektorientierung in a Nutshell
Fahrzeug
+ anzRaeder: int + hatDach: bool + anzPersonen: int
+ fahren( ziel: Ort ) + zusteigen ( personen: int )
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Objektorientierung in a Nutshell
Fahrzeug
+ anzRaeder: int + hatDach: bool + anzPersonen: int
+ fahren( ziel: Ort ) + zusteigen ( personen: int )
bewusst
weggelassen
• Vererbung
• Polymorphismus Interface
Fahrzeug
+ anzRaeder: int + hatDach: bool + anzPersonen: int - reichweite: int
+ fahren( ziel: Ort ) + zusteigen ( personen: int ) - navigieren ( k: Koordinaten) - tanken ( liter: int)
Kapselung
"information hiding"
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Objektorientierung in a Nutshell
Klasse
Klassenname
Attribute
Methoden
Fahrzeug
+ anzRaeder: int + hatDach: bool + anzPersonen: int
+ fahren( ziel: Ort ) + zusteigen ( personen: int )
auto: Fahrzeug
+ anzRaeder: 4 + hatDach: true + anzPersonen: 0
+ fahren( ziel: Ort ) + zusteigen ( personen: int )
Objekt
Instanzierung
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Objektorientierung in a Nutshell
auto: Fahrzeug
+ anzRaeder: 4 + hatDach: true + anzPersonen: 0
+ fahren( ziel: Ort ) + zusteigen ( personen: int )
Objekt
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die Idee des Objektes Objektorientierung in a Nutshell
aufrufendes
Objekt
auto: Fahrzeug
+ anzRaeder: 4 + hatDach: true + anzPersonen: 0
+ fahren( ziel: Ort ) + zusteigen ( personen: int )
Objekt
"Tanja Test": Person
+ geschlecht: "weiblich" + alter: "30" + kannAutofahren: true
+ ortVeraendern ( ziel: Ort) + essen ( kalorien: int)
zusteigen (1)
Botschaft
1
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
die FileMaker Datenbankdatei als Objekt
aufrufende
FMDB aufgerufene FMDB external data
source
table layout
$variable $$VARIABLE
custom function
script
script
script script
table
script
Interface
layout
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Implementation eines Interface
Demo
in
FileMaker Pro 12 Advanced
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Anwendungsbeispiele
generell geeignet für
• externe Verarbeitung von
zeichenbasierten Datenformaten
• Rückgabe von zeichenbasierten
Datenformaten
generell ungeeignet für
• externe Verarbeitung von binären
Datenformaten
• Rückgabe von binären
Datenformaten
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Anwendungsbeispiele
• Funktionsbibliotheken
• Berechnungsgrundlagen
• komplexe Algorithmen
• Verwaltung von Berechtigungen
• Verwaltung von Menüstrukturen
• Message Queue
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Anwendungsbeispiele
script
script
script
script
table
table
FMDB
Message Queue script
FMDB 1
script
FMDB 2
script
FMDB 3
script
FMDB 4
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Anwendungsbeispiele
• Entwurfsmuster
• "Design Patterns. Elements of Reusable Object-Oriented Software",
Gamma E., Helm R., Johnaon R. E., Vlissides J. [1995] Addison-
Wesley
• Facade Pattern
• Proxy Pattern
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Questens & Answers
Danke für Ihr Interesse!
Haben Sie Fragen?
Thomas Hirt
Die FMP12-Datei als wiederverwendbares Objekt
FileMaker Konferenz 2013 Salzburg
www.filemaker-konferenz.com
Vielen Dank unseren Sponsoren
Danke für die Bewertung dieses Vortrages