SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
1.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
www.filemaker-konferenz.com
Wiederverwendbar Datenbankentwicklung
Sprecher: Dipl.-Ing. Arnold Kegebein
Recycling
2.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Recycling
3.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
User Interface : Panel Window • Dipl.-Ing. (FH) Arnold Kegebein
Über den Sprecher
• Name: Arnold Kegebein
• Ausbildung: Studium der technischen Informatik
Abschluss: Diplom-Ingenieur (FH)
• Tätigkeiten: Inhouse Entwickler, Hamburg
IT Leiter, Chicago, USA
IT Consultant, Hamburg
über 30 Jahre Erfahrungen
mit Datenbanken
• Sonstiges: 10 Jahre FileMaker Entwickler
Autor für das FileMaker Magazin
Fan von TV-Show „The Big Bang Theory“
4.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Einleitung
• Wir haben in unseren Projekten hunderte Datenbanken entwickelt
• Mehrere Dutzend Kontakt- und Adressdatenbanken
• Viele von Grund auf neu entwickelt
• Warum?
• Viele Kunden, jeder will seine eigene Datenbank
• Neue Anforderungen
• Neuentwicklung ist oft effektiver als ein Umbau
• Neue Systeme / Programmiersprachen / Programmversionen
• Fortgeschrittenes Wissen und Erfahrungen
• Neue Datenmodelle, Programmiertechniken und -konzepte
• Anforderungen externer Systeme, Schnittstellen
5.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Bild 1: Original von Kippelboy, via Wikimedia
6.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Braun Lectron Elektronikbaukasten
• Bausteine stellen elektronische Elemente dar
• Sie lassen sich zu Schaltkreisen zusammenstellen
• Sie sind wiederverwendbar
Original von xavax, via de.wikipedia Commons
7.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Braun Lectron Elektronikbaukasten
• Beschränkter Arbeitsraum
• Problematische Wiederverwendbarkeit
erstellter Schaltungen
• Lösung: Zukauf oder Selbstbau
von Bausteine mit komplexem
Innenleben
8.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
FileMaker als Baukasten
• FileMaker hat auch viele Bausteine
• Besonders das Script System ist keine Programmiersprache, sondern ein
Makro-Befehlsbaukasten
• Der Datenzugriff ist eng gekoppelt mit Layouts
• Seit Einführung der Funktion ExecuteSQL/ SqlAusführen weniger eng
• Aber nur lesende Zugriffe erlaubt, Schreiben nicht möglich
• Nur Zugriff auf Daten, nicht auf Struktur
• Kein oder kaum Zugriff auf FileMaker interne Parameter
9.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Eigene FileMaker Bausteine
• Gesucht ist ein Ansatz, eigene FileMaker Bausteine zu entwickeln,
• die sich direkt wiederverwenden lassen
• oder zumindest nur wenige Anpassungen erfordern
• Stichwort: Modulare Entwicklung
10.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Warum modulare Entwicklung?
• Das Rad wird nicht jedesmal neu erfunden
• Bewerte Module stehen immer zur Verfügung
• Module vereinfachen die Entwicklung (Arbeitsteilung)
• Module können individuell getestet werden
• Module sorgen für mehr Stabilität
Pro
11.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Warum modulare Entwicklung?
Contra
• Das Rad wird nicht jedesmal neu erfunden
• Neuentwicklung ermöglicht es, alte System zu verbessern
• Entwicklung einfach verwendbarer Module erfordert erheblich Mehraufwand
• FileMaker ist kein offenes System
• Modulare Programmierung widerspricht der Grundstruktur von FileMaker
12.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Recycling / Wiederverwendbarkeit
• FileMaker Entwickler suchen und finden verschiedene Wege
• MagicValueList (Andries Heylen)
• Custom List Function (Agnès Barouh)
• Modular FileMaker (Todd Geist)
• Fremdumgebungen nutzen
• Plugins
• WebViewer
• Java oder JavaScript Libraries u. a.
• WebServices
13.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
• Bekannt ist, was in die Black Box eingegeben wird bzw. wieder heraus kommt
• Das Innere der Black Box ist irrelevant und austauschbar
Black Box Prinzip
A
B
C
X
Y
Akummilierte
Resonanz-
Fillibrations-
Methodik
Integrale
Stimulations-
Konvergenz-
Transformation
14.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Black Box Entwicklung
• Das Problem von Außen betrachten
• Erst Ein- und Ausgabewerte definieren
• Dann Lösung für Black Box entwickeln
• Das Problem von Innen betrachten
• Zuerst eine spezielle Lösung entwickeln
• Dann die Lösung von seiner Umgebung entkoppelen
• Und dabei die Ein- und Ausgabeparameter festlegen
15.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Black Box mit FileMaker
• Eine Black Box muss kein Script oder CF sein
• Eine Black Box muss nicht ein einzelnes Objekt sein
• Eine Black Box muss keine eigenständige Datei sein, kann es aber
• Vorteil:
• Update / Austausch der Black Box vereinfacht sich
• Import und Anpassung von Scripts entfällt
• Nachteil:
• Öffentliche CFs müssen importiert werden
• Eine ideale Black Box wird sich in FileMaker nicht immer umsetzen lassen
17.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
The Basics – Grundlagen
• FileMaker Pro Advanced ist ein MUSS
• Fortgeschrittene Kenntnisse von CFs
• (Eigene) Konventionen verwenden
• Namenskonventionen
• Entwicklungskonventionen
• Dokumentationskonventionen
• Kenntnisse moderner Datenmodelle
• Externe Systeme kennen und nutzen
(imho)
18.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Basic Recycling
• Die Zwischenablage ist das einfachste Prinzip von Recycling
• Standardfelder kopieren
• Standardscripts (Header Dokumentation, …)
• Formelsammlung
• Templates (Felder, Scripts. …)
• Layoutelemente
Let( [
~sql = "
SELECT {__id}, {field}
FROM {{table}}
WHERE {field} = ?
ORDER BY {field}
OFFSET n ROWS
FETCH FIRST n ROWS ONLY|WITH TIES
";
~qry = Substitute( ~sql;
[ “{{table}}”; sqlTable( Table::__id ) ];
[ “{__id}"; sqlField( Table::__id ) ];
[ "{field}"; sqlField( Table::field ) ]
);
~res = ExecuteSQL( ~qry; ""; "";
$variable
)
];
If( ~res ≠ "?"; ~res )
)
19.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Recycling mit CFs
• Formelsammlung mit häufig verwendeten Funktionen
• Spezielle Funktionen für Module
• Script Parameter: #, #Assign, #Get, …
• SQL Query: sqlField, sqlTable, sqlInSet
• Entkoppeln bzw. Kapseln von Plugin-Funktionen
• Erleichtert das Wechseln von Plugins
• Ersatz für Konstanten: bom, null
20.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
CF Konventionen
• Namenskonvention
• Prefix / Suffix / camelCase
• Fallstrick „Sprachversionen“
• Kennzeichnung „hard-coded“ CFs
• Dokumentationskonvention
• Im Kopf des Funktionscodes
• Aufgabe der CF
• Rückgabewert
• Eingabeparameter
• Änderungshistorie
• …
/*----------------------------------------------------------
* #Assign( _parameters )
*
* PURPOSE
* Parses a Let dictionary of name-value parameters into a
* locally scoped $variables.
*
* RETURNS
* True(1) when parameters is a valid set of name-value pai
* includes the empty string); False(0) otherwise.
* If False(0), the error code will be saved to: $#Assign.e
*
* PARAMETERS
* _parameters: A Let format dictionary, such as produced b
* #( name; value ) function.
*
* HISTORY
* 2015-10-27 by Matt Petrowsky to support weak formatted r
* delimited input.
* 2013-03-15 by Daniel Smith <http://scr.im/dansmith> to u
* documentation to match functions actual return value.
* 2012-11-28 by Jeremy Bante <http://scr.im/jbante> to sup
* "$" prefix values as default.
* 2012-11-11 by Jeremy Bante <http://scr.im/jbante>.
------------------------------------------------------------
21.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Beispiel: SQL Abfragen
• Kein „hard coding“
• Tabellen und Felder
entkoppeln
• Sonderfälle einplanen
• Fehlerbehandlung
Let( [
~sql = "
SELECT {__id}, {field}
FROM {{table}}
WHERE {field} = ?
ORDER BY {field}
OFFSET n ROWS
FETCH FIRST n ROWS ONLY|WITH TIES
";
~qry = Substitute( ~sql;
[ “{{table}}”; sqlTable( Table::__id ) ];
[ “{__id}"; sqlField( Table::__id ) ];
[ “{field}"; sqlField( Table::field ) ]
);
~res = ExecuteSQL( ~qry; ""; "";
$variable
)
];
If( ~res ≠ "?"; ~res )
)
22.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Fehlerbehandlung
• FileMaker hat nur eine sehr einfache Fehlerverwaltung
• Hole( LetzteFehlerNr )
• BerechnungsFehler( … )
• Rückgabewert in Fehlerfällen: „?“
• Gewünscht ist ein erweitertes Black Box Konzept
A
B
C
X
Y
#
Fehlerinformation
?
?
28.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Systeme entkoppeln
• Keine bestimmten Umgebungseinstellungen erwarten
• bestimmte Layouts oder Layouttabellen
• aktuell ausgewählte Datensätze
• Fenstermodus
• globalen Variablen, außer die Black Box erstellt sie selbst
• Keine bestimmten Tabellen bzw. Felder verwenden
• Ausnahme: Die Tabelle kann vollständig in der Black Box existieren
• Keine bestimmten Layouts verwenden
• Siehe auch: Script auf Server ausführen
29.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Systeme entkoppeln
• Enge Kopplung vermeiden
• „Feste verdrahtete“ Programmierung vermeiden
• Nicht 0,19 bzw. 19% als Mehrwertsteuersatz in Formeln eintragen,
sondern ein entsprechendes Feld verwenden
• Mögliche Schwachstellen erkennen
30.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Scripts
• Script Parameter verwenden
• Layout Id statt Layout Name oder Layout Nummer
• Ein Eingang, ein Ausgang („Single Loop“)
• Script Ergebnis zurückgeben
31.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
CFs vz. Scripts
• Fast alles, was eine CF kann, lässt sich mit einem Script nachbilden
• Ausnahme: Anzahl der Parameter;
• CF kann mehrere haben, Script nur einen
• Übergabe mehrerer Parameter muss bei Scripts mit eigenen Methoden
ermöglicht werden
• Ausnahme: Parameterübergabe „by reference“
• CF kann Herkunft der Parameter erfragen
• Script Parameter ist immer „by value“, da als Text übergeben
• CFs werden im lokalen Speicher berechnet
• Scripts können auch auf dem Server ausgeführt werden
33.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Benennen von Scripts
• Spezielle Markierungen können bestimmte Scriptarten kennzeichnen:
• Idempotenz
Wiederholt hintereinander aufgerufen führt das Scripts zum gleichen Ergebnis
• Kontext-unabhängigkeit
Das Script kann jederzeit und aus jedem Kontext heraus aufgerufen werden
• Script Functions
Scripts, die wie eine Funktion verwendet werden können
• Parametrisierte Scripts
• Server Scripts
34.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Fragen & Antworten
• Was haben Sie nicht verstanden?
• Was wollen Sie noch wissen?
• Wollen Sie noch etwas beitragen?
35.
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
FileMaker Konferenz 2016 Salzburg
Vielen Dank unseren Sponsoren
Ohne Sponsoring wäre diese Konferenz
so nicht möglich!
0 likes
Be the first to like this
Views
Total views
1,020
On SlideShare
0
From Embeds
0
Number of Embeds
1
You have now unlocked unlimited access to 20M+ documents!
Unlimited Reading
Learn faster and smarter from top experts
Unlimited Downloading
Download to take your learnings offline and on the go
You also get free access to Scribd!
Instant access to millions of ebooks, audiobooks, magazines, podcasts and more.
Read and listen offline with any device.
Free access to premium services like Tuneln, Mubi and more.