Difference between revisions of "tiOPF/de"

From Free Pascal wiki
Jump to navigationJump to search
m (→‎Verwendung: typos)
 
(15 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
== Über ==
 
== Über ==
  
Das TechInsite Object Persistence Framework (tiOPF) ist ein Open Source Framework von Delphi/Object Pascal Code, das das Mapping eines objektorientierten Geschäftsmodells in eine relationale Datenbank vereinfacht. Das Framework ist ausgereift und robust. Es wird an verschiedenen Standorten seit mehr als sieben Jahren eingesetzt. Es ist frei, Open Source und für den sofortigen Download mit dem kompletten Quellcode verfügbar.  
+
Das TechInsite Object Persistence Framework (tiOPF) ist ein Open Source Framework von Delphi/Object Pascal Code, das das Mapping eines objektorientierten Geschäftsmodells in eine relationale Datenbank vereinfacht. Das Framework ist ausgereift und robust. Es wird an verschiedenen Standorten seit 1999 eingesetzt. Es ist frei, Open Source und für den sofortigen Download mit dem kompletten Quellcode verfügbar.  
  
 
Einige der Schlüsselmerkmale von tiOPF beinhalten:
 
Einige der Schlüsselmerkmale von tiOPF beinhalten:
  
* Lets you build an object oriented application that can swap databases with the flick of a command like a command line parameter or a change of a compiler directive. Aktuell gibt es persistence layers für Interbase-IBX, Oracle-DOA, XML-MSDOM, XML-XMLLite, Paradox-BDE, MSAccess-ADO, MSSQLServer-ADO, FireBird-FBLib, FireBird-SqlDB, HTTP Proxy-Remote, CSV Dateien und TAB Dateien.
+
* Lässt sie eine Objektorientierte Applikation bauen, die ihnen erlaubt die Datenbank einfach zu wechseln, nur mit einem Kommandozeilenparameter oder dem wechslen einer Compiler Direktive. Aktuell gibt es persistence layers für:
 +
**Interbase via IBX
 +
**Oracle via DOA
 +
**MySQL via Zeos
 +
**MySQL via SqlDB
 +
**XML via MSDOM
 +
**XML via XMLLite
 +
**Paradox via BDE
 +
**MSAccess via ADO
 +
**MSSQLServer via ADO
 +
**MSSQLServer via SqlDB
 +
**Firebird via FBLib
 +
**Firebird via Zeos
 +
**Firebird via SqlDB
 +
**PostgreSQL via SqlDB
 +
**HTTP Remote Persitstence (für n-tier applications mit eingebauten Generic Applicationserver)
 +
**Text files (CSV und TAB Dateien)
 
* Family of abstract base classes for building a complex object model
 
* Family of abstract base classes for building a complex object model
 
* 27 Persistent object aware components for building complex GUIs (nur Delphi).
 
* 27 Persistent object aware components for building complex GUIs (nur Delphi).
 
* Model-GUI-Mediators for enabling any standard GUI component to become Object Aware.
 
* Model-GUI-Mediators for enabling any standard GUI component to become Object Aware.
* mehr als 1400 DUnit/fpcUnit Tests, um die Stabilität zu garantieren
+
* mehr als 1600+ DUnit2/[[FPTest]] Tests, um die Stabilität zu garantieren
* 160 Seiten Dokumentation für den Einstieg
+
* 160+ Seiten Dokumentation für den Einstieg
 
* News groups für den Support
 
* News groups für den Support
 
* Automated, daily builds and unit testing
 
* Automated, daily builds and unit testing
 
* Lots of demos focusing on specific parts of the framework for easy learning.
 
* Lots of demos focusing on specific parts of the framework for easy learning.
* Cross platform. Aktuell getestet unter Windows und Linux.
+
* Cross platform. Aktuell getestet unter Windows, Linux and FreeBSD (32 & 64-bit).
  
 
== Autoren ==
 
== Autoren ==
Line 24: Line 40:
  
 
== Lizenz ==
 
== Lizenz ==
[http://opensource.org/licenses/mozilla1.1.php Mozilla Public License 1.1] (bitte kontaktieren sie den Autor, wenn die MPL nicht zur Lizenz ihres Projektes passt)
+
tiOPF verwendet eine duale Lizenz. Developer können die
 +
[http://opensource.org/licenses/mozilla1.1.php Mozilla Public License 1.1] oder die Modifizierte LGPL Lizenz (wie bei FPC und Lazarus) verwenden.
  
 
== Download ==
 
== Download ==
Das neueste stabile Release ist auf der [http://download.tiopf.com/ tiOPF Download] Seite zu finden.<br>
+
Seit einigen Jahren macht das tiOPF Projekt keine offiziellen Release Downloads. Das tiOPF Projekt arbeitet mit einem entsprechenden Prinzip des 'Rolling Release'. Wenn sie die letzte Version mit den letzten Features und Fixes haben wollen, so müssen sie den Quellcode aus dem Git Repository laden.  
Der neueste Entwicklungscode ist auf dem SubVersion Server wie folgt zu finden
 
<tt>svn co <nowiki>https://tiopf.svn.sourceforge.net/svnroot/tiopf/tiOPF2/Trunk</nowiki> Source</tt>
 
  
'''Anmerkung:'''
+
Sie können die folgenden Befehle verwenden um die Quellen auszuchecken:
Das tiOPF Projekt hat gerade Version 2.3 veröffentlicht. Gegenwärtig ist auf der Download Seite nur das Windows Release verfügbar. Hoffentlich wird bald ein plattform-unabhängiger Download verfügbar gemacht. Der neueste Code kann dennoch von SubVersion heruntergeladen werden.
 
  
Ein einfacher Weg, um den Code zu bekommen, ist die Verwendung eines Kommandozeilen SVN-Clients wie folgt. Die folgenden Kommandos werden die ''Source'', ''Demos'' und ''Docs'' Verzeichnisse der tiOPF Version 2 auschecken.
+
git clone <nowiki>git://tiopf.git.sourceforge.net/gitroot/tiopf/tiopf</nowiki>
  
  mkdir tiOPF2
+
Sie haben nun ein 'tiOPF' Verzeichnis mit dem tiOPF Repository. Standardmäßig wird Git auch die "Master" Zweig für sie ausgeschecked haben. Der 'Master' Zweig wird nicht verwendet für die Entwicklungsarbeit. Wechseln sie in den tiOPF2 Zweig, über folgende Befehle:
  cd tiOPF2
 
  <tt>svn co <nowiki>https://tiopf.svn.sourceforge.net/svnroot/tiopf/tiOPF2/Trunk</nowiki> Source</tt>
 
  <tt>svn co <nowiki>https://tiopf.svn.sourceforge.net/svnroot/tiopf/tiOPF2_Demos</nowiki> Demos</tt>
 
  <tt>svn co <nowiki>https://tiopf.svn.sourceforge.net/svnroot/tiopf/tiOPF2_Docs</nowiki> Docs</tt>
 
  
Versuchen sie die obige Verzeichnisstruktur beizubehalten. Sie ist viel leichter zu unterstützen und die Dokumentationserstellungsskripte werden ohne Modifikation funktionieren. The Source checkout will download some external links. Die meisten von ihnen beziehen sich nur auf Delphi, aber es gibt ein Verzeichnis FBLib, welches für die FBLib (Firebird RDMS) Unterstützung benötigt wird. tiOPF benötigt eine leicht modifizierte Version von FBLib 0.85, die einige zusätzliche Features hinzufügt, die hoffentlich im nächsten FBLib Release enthalten sind.
+
  git branch tiopf2 origin/tiopf2                (1)
 +
  git checkout tiopf2                            (2)
 +
 
 +
# Erzeugt einenlokalen Zweig names 'tiopf2', welcher auf den remote Zweig des tiOPF2 Zweiges zeigt.
 +
# Wechselt zum lokalen 'tiopf2' Zweig.  
 +
 
 +
'''NOTE:'''<br>
 +
Bei der Arbeit mit Free Pascal und tiOPF , ist die einzige unterstützte Compiler der neueste freigegebene FPC (und der damit verbundenen fixed Branch) , und der 'tiopf2' Zweig von tiOPF .
 +
 
 +
Für eine kurze Einführung in die Verwendung von Git , können sie in einer Nachricht auf der tiopf.development Newsgroup nachlesen .
 +
[http://geldenhuys.co.uk/webnews/webnews.cgi?user=anonymous;group=tiopf.development;article=3272 tiopf.development;article=3272]. Für eine sehr gute und detaillierte Beschreibung über Git, empfehlen wir ihnen die offizielle Git-Dokumentation hier: [http://git-scm.com/documentation http://git-scm.com/documentation] zu durchsuchen.
  
 
== Abhängigkeiten / Systemvoraussetzungen ==
 
== Abhängigkeiten / Systemvoraussetzungen ==
* Compiler: Free Pascal 2.0.4 (FPC 2.1.1 ist riskanter, funktioniert aber auch. Es wird für die nighly builds unter Linux verwendet).
+
* Compiler: Free Pascal 2.6.4. Die letzte released FPC.
* Komponenten für your required persistence layer, if it is not included with the compiler, z.B. FBLib für das FireBird RDMS.
+
* Komponenten für ihren beötigten persistence layer, wenn er nicht mit dem Compiler mitkommt.
  
Status:  Stabil (getestet unter Windows und Linux.)
+
Status:  Stabil (getestet unter Windows, Linux und FreeBSD)
  
 
Probleme:  Keine
 
Probleme:  Keine
Line 54: Line 74:
 
== Installation ==
 
== Installation ==
 
=== Die Packages ===
 
=== Die Packages ===
In dem Source\Compilers\FPC Verzeichnis gibt es 4 Packages.
+
In dem <tiopf>\Compilers\FPC Verzeichnis gibt es 4 Packages.
; tiOPF : Kernunits (nur Laufzeit Package)
+
; tiOPF.lpk : Kernunits (nur Laufzeit Package)
; tiOPFGUI : GUI bezogene Units und Komponenten (nur Laufzeit Package).  
+
; tiOPFGUI.lpk : GUI bezogene Units und tiOPF+LCL custom Komponenten ['''deprecated'''](nur Laufzeit Package).  
; tiOPFGUIDsgn : Registriert/Installiert die Komponenten in die Lazarus Komponentenpalette (nur Entwicklungszeit Package). Die unter Lazarus verwendeten GUI Komponenten sind noch experimentell und unter erheblicher Entwicklung. Es wird empfohlen, regelmäßige Aktualisierungen von SubVersion zu holen, if they are going to be used.
+
; tiOPFGUIDsgn.lpk : Registriert/Installiert die tiOPF+LCL custom Komponenten in die Lazarus Komponentenpalette ['''deprecated'''](nur Entwicklungszeit Package). Die unter Lazarus verwendeten GUI tiOPF+LCL custom Komponenten sind ungewartet deprecated. Es wird empfohlen stattdessen die Model-GUI-Mediatoren zu verwenden. Siehe tiOPFLCL.lpk package stattdessen.
 +
; tiOPFLCL.lpk : GUI betreffende units welche die tiOPFGUI.lpk ersetzt und beinhaltet keine der tiOPF custom GUI components. (nur Laufzeit Package)
 
; tiOPFHelpIntegration : Integriert die von fpdoc generierten Hilfedateien in das Lazarus Hilfesystem (nur Entwicklungszeit Package)
 
; tiOPFHelpIntegration : Integriert die von fpdoc generierten Hilfedateien in das Lazarus Hilfesystem (nur Entwicklungszeit Package)
  
 
=== Die Installation ===
 
=== Die Installation ===
* Entpacken Sie die zip Datei oder checken Sie die Quellen aus von Subversion in ein Verzeichnis ihrer Wahl.
+
* Starten Sie die Lazarus IDE
* Starten Sie Lazarus
+
* Öffnen Sie das Package ''tiOPF.lpk'' mit Komponenten -> Package-Datei (.lpk) öffnen... im Verzeichnis <tiopf>\Compilers\FPC.
* Öffnen Sie das Package ''tiOPF.lpk'' mit Komponenten -> Package-Datei (.lpk) öffnen... .
 
 
* Klicken Sie auf Kompilieren
 
* Klicken Sie auf Kompilieren
* Öffnen Sie das ''tiOPFGUI.lpk'' Package und klicken Sie auf Kompilieren
+
* Öffnen Sie das ''tiOPFLCL.lpk'' Package und klicken Sie auf Kompilieren
  
 
Optional
 
Optional
  
* Öffnen Sie das ''tiOPFGUIDsgn.lpk'' Package und klicken Sie auf Installieren (Lazarus wird neu erstellt und startet neu).
 
 
* Öffnen Sie das ''tiOPFHelpIntegration.lpk'' Package und klicken Sie auf Installieren (Lazarus wird neu erstellt und startet neu).
 
* Öffnen Sie das ''tiOPFHelpIntegration.lpk'' Package und klicken Sie auf Installieren (Lazarus wird neu erstellt und startet neu).
  
 
<u>ANMERKUNG #1</u><br>
 
<u>ANMERKUNG #1</u><br>
Ich habe die [http://fblib.altervista.org/ FBLib Firebird Library] Komponenten als Vorgabe- persistence layer für Free Pascal im tiOPF.lpk Package eingebunden. Dies ist das einzige, das ich unter Free Pascal/Lazarus verwende. Stellen Sie daher sicher, dass Sie FBLib installiert haben, oder Sie müssen sie aus dem tiOPF Package entfernen.
+
Ich habe die SqlDB database+Firebird Komponenten als Vorgabe- persistence layer für Free Pascal im tiOPF.lpk Package eingebunden. Das war einfach deshalb, da SqlDB im FPC beinhaltet ist und Firebird eine populäre Datenbank option. Wenn sie diesen persistence layer nicht benötigen, so können sie ihn wie unten beschrieben einfach deaktivieren.
  
Persistence layers are controlled by a Compiler Directive under ''Projekt -> Compilereinstellungen -> Andere -> Benutzerdefinierte Einstellungen'', z.B. die LINK_FBL Anweisung bezieht sich auf die FBLib Komponenten.
+
Persistence layers werden kontrolliert mit einer Compiler Directive unter ''Projekt -> Compilereinstellungen -> Andere -> Benutzerdefinierte Einstellungen'', z.B. die LINK_SQL_DB Anweisung bezieht sich auf die SqlDB (Interbase/Firebird) Komponenten.
 
Schauen Sie in das Ende der ''tiOPFManager.pas'' Unit, um alle verfügbaren Optionen kennenzulernen.
 
Schauen Sie in das Ende der ''tiOPFManager.pas'' Unit, um alle verfügbaren Optionen kennenzulernen.
  
 
<u>ANMERKUNG #2</u><br>
 
<u>ANMERKUNG #2</u><br>
Damit die integrierte Hilfe funktioniert, muss Lazarus wissen, wo es die HTML-Hilfedateien finden kann. Bitte lesen Sie die ''tiOPFHelpIntegration.txt'' Datei, welche sich in \Source\Compilers\FPC befindet, für weitere Anweisungen.
+
Damit die integrierte Hilfe funktioniert, muss Lazarus wissen, wo es die HTML-Hilfedateien finden kann. Bitte lesen Sie die ''tiOPFHelpIntegration.txt'' Datei, welche sich in <tiopf>\Compilers\FPC befindet, für weitere Anweisungen.
  
 
== Verwendung ==
 
== Verwendung ==
Line 89: Line 108:
 
<br>
 
<br>
  
[[Category:Components/de]][[Category:Databases/de]]
+
== Informationen ==
 +
=== Grundlagen über tiOPF und Pattern ===
 +
Für jemanden der Basisinformationen über tiOPF und Pattern sucht. Alle Artikel sind in  Englisch.
 +
[http://geldenhuys.co.uk/articles/] http://geldenhuys.co.uk/articles/
 +
 
 +
Graeme Geldenhuys
 +
 
 +
;2008-08: Simple Factory Pattern (download pdf) [150KB]
 +
;2008-09: Model-GUI-Mediator (download pdf - 251KB) & (source code - 9KB)
 +
;2008-11: Iterator Pattern (download pdf - 147KB) & (source code - 4KB)
 +
;2009-01: The Adapter Pattern (download pdf) [237KB]
 +
;2009-02: Intro to Git - source code management (download pdf) [257KB]
 +
;2009-03: The State Pattern (download pdf) [217KB]
 +
;2009-07: Relationship Manager (download pdf) [375KB]
 +
;2009-09: Hierarchies in SQL - Nested Sets (download pdf) [163KB]
 +
;2011-12: The Facade Design Pattern (download pdf) [297KB]
 +
 
 +
{{AutoCategory}}[[Category:Components/de]][[Category:Databases/de]]

Latest revision as of 08:02, 16 May 2015

Deutsch (de) English (en) italiano (it) 日本語 (ja)

Über

Das TechInsite Object Persistence Framework (tiOPF) ist ein Open Source Framework von Delphi/Object Pascal Code, das das Mapping eines objektorientierten Geschäftsmodells in eine relationale Datenbank vereinfacht. Das Framework ist ausgereift und robust. Es wird an verschiedenen Standorten seit 1999 eingesetzt. Es ist frei, Open Source und für den sofortigen Download mit dem kompletten Quellcode verfügbar.

Einige der Schlüsselmerkmale von tiOPF beinhalten:

  • Lässt sie eine Objektorientierte Applikation bauen, die ihnen erlaubt die Datenbank einfach zu wechseln, nur mit einem Kommandozeilenparameter oder dem wechslen einer Compiler Direktive. Aktuell gibt es persistence layers für:
    • Interbase via IBX
    • Oracle via DOA
    • MySQL via Zeos
    • MySQL via SqlDB
    • XML via MSDOM
    • XML via XMLLite
    • Paradox via BDE
    • MSAccess via ADO
    • MSSQLServer via ADO
    • MSSQLServer via SqlDB
    • Firebird via FBLib
    • Firebird via Zeos
    • Firebird via SqlDB
    • PostgreSQL via SqlDB
    • HTTP Remote Persitstence (für n-tier applications mit eingebauten Generic Applicationserver)
    • Text files (CSV und TAB Dateien)
  • Family of abstract base classes for building a complex object model
  • 27 Persistent object aware components for building complex GUIs (nur Delphi).
  • Model-GUI-Mediators for enabling any standard GUI component to become Object Aware.
  • mehr als 1600+ DUnit2/FPTest Tests, um die Stabilität zu garantieren
  • 160+ Seiten Dokumentation für den Einstieg
  • News groups für den Support
  • Automated, daily builds and unit testing
  • Lots of demos focusing on specific parts of the framework for easy learning.
  • Cross platform. Aktuell getestet unter Windows, Linux and FreeBSD (32 & 64-bit).

Autoren

Peter Hinrichsen - Ursprünglicher Designer.
Graeme Geldenhuys - Portiert nach Free Pascal.

Lizenz

tiOPF verwendet eine duale Lizenz. Developer können die Mozilla Public License 1.1 oder die Modifizierte LGPL Lizenz (wie bei FPC und Lazarus) verwenden.

Download

Seit einigen Jahren macht das tiOPF Projekt keine offiziellen Release Downloads. Das tiOPF Projekt arbeitet mit einem entsprechenden Prinzip des 'Rolling Release'. Wenn sie die letzte Version mit den letzten Features und Fixes haben wollen, so müssen sie den Quellcode aus dem Git Repository laden.

Sie können die folgenden Befehle verwenden um die Quellen auszuchecken:

git clone git://tiopf.git.sourceforge.net/gitroot/tiopf/tiopf

Sie haben nun ein 'tiOPF' Verzeichnis mit dem tiOPF Repository. Standardmäßig wird Git auch die "Master" Zweig für sie ausgeschecked haben. Der 'Master' Zweig wird nicht verwendet für die Entwicklungsarbeit. Wechseln sie in den tiOPF2 Zweig, über folgende Befehle:

 git branch tiopf2 origin/tiopf2                (1)
 git checkout tiopf2                            (2)
  1. Erzeugt einenlokalen Zweig names 'tiopf2', welcher auf den remote Zweig des tiOPF2 Zweiges zeigt.
  2. Wechselt zum lokalen 'tiopf2' Zweig.

NOTE:
Bei der Arbeit mit Free Pascal und tiOPF , ist die einzige unterstützte Compiler der neueste freigegebene FPC (und der damit verbundenen fixed Branch) , und der 'tiopf2' Zweig von tiOPF .

Für eine kurze Einführung in die Verwendung von Git , können sie in einer Nachricht auf der tiopf.development Newsgroup nachlesen . tiopf.development;article=3272. Für eine sehr gute und detaillierte Beschreibung über Git, empfehlen wir ihnen die offizielle Git-Dokumentation hier: http://git-scm.com/documentation zu durchsuchen.

Abhängigkeiten / Systemvoraussetzungen

  • Compiler: Free Pascal 2.6.4. Die letzte released FPC.
  • Komponenten für ihren beötigten persistence layer, wenn er nicht mit dem Compiler mitkommt.

Status: Stabil (getestet unter Windows, Linux und FreeBSD)

Probleme: Keine

Installation

Die Packages

In dem <tiopf>\Compilers\FPC Verzeichnis gibt es 4 Packages.

tiOPF.lpk
Kernunits (nur Laufzeit Package)
tiOPFGUI.lpk
GUI bezogene Units und tiOPF+LCL custom Komponenten [deprecated](nur Laufzeit Package).
tiOPFGUIDsgn.lpk
Registriert/Installiert die tiOPF+LCL custom Komponenten in die Lazarus Komponentenpalette [deprecated](nur Entwicklungszeit Package). Die unter Lazarus verwendeten GUI tiOPF+LCL custom Komponenten sind ungewartet deprecated. Es wird empfohlen stattdessen die Model-GUI-Mediatoren zu verwenden. Siehe tiOPFLCL.lpk package stattdessen.
tiOPFLCL.lpk
GUI betreffende units welche die tiOPFGUI.lpk ersetzt und beinhaltet keine der tiOPF custom GUI components. (nur Laufzeit Package)
tiOPFHelpIntegration
Integriert die von fpdoc generierten Hilfedateien in das Lazarus Hilfesystem (nur Entwicklungszeit Package)

Die Installation

  • Starten Sie die Lazarus IDE
  • Öffnen Sie das Package tiOPF.lpk mit Komponenten -> Package-Datei (.lpk) öffnen... im Verzeichnis <tiopf>\Compilers\FPC.
  • Klicken Sie auf Kompilieren
  • Öffnen Sie das tiOPFLCL.lpk Package und klicken Sie auf Kompilieren

Optional

  • Öffnen Sie das tiOPFHelpIntegration.lpk Package und klicken Sie auf Installieren (Lazarus wird neu erstellt und startet neu).

ANMERKUNG #1
Ich habe die SqlDB database+Firebird Komponenten als Vorgabe- persistence layer für Free Pascal im tiOPF.lpk Package eingebunden. Das war einfach deshalb, da SqlDB im FPC beinhaltet ist und Firebird eine populäre Datenbank option. Wenn sie diesen persistence layer nicht benötigen, so können sie ihn wie unten beschrieben einfach deaktivieren.

Persistence layers werden kontrolliert mit einer Compiler Directive unter Projekt -> Compilereinstellungen -> Andere -> Benutzerdefinierte Einstellungen, z.B. die LINK_SQL_DB Anweisung bezieht sich auf die SqlDB (Interbase/Firebird) Komponenten. Schauen Sie in das Ende der tiOPFManager.pas Unit, um alle verfügbaren Optionen kennenzulernen.

ANMERKUNG #2
Damit die integrierte Hilfe funktioniert, muss Lazarus wissen, wo es die HTML-Hilfedateien finden kann. Bitte lesen Sie die tiOPFHelpIntegration.txt Datei, welche sich in <tiopf>\Compilers\FPC befindet, für weitere Anweisungen.

Verwendung

In Lazarus, öffnen Sie ihr Projekt und fügen Sie tiOPF als ein benötigtes Package hinzu (Projekt -> Projektinspektor -> Hinzufügen). Nehmen Sie tiObject in ihren uses-Abschnitt auf. Sie sind nun bereit, ein von TtiObject oder TtiObjectList abstammendes Objekt zu erzeugen.

Siehe die Beispielprojekte im Demos Verzeichnis für zusätzliche Beispiele.

Informationen

Grundlagen über tiOPF und Pattern

Für jemanden der Basisinformationen über tiOPF und Pattern sucht. Alle Artikel sind in Englisch. [1] http://geldenhuys.co.uk/articles/

Graeme Geldenhuys

2008-08
Simple Factory Pattern (download pdf) [150KB]
2008-09
Model-GUI-Mediator (download pdf - 251KB) & (source code - 9KB)
2008-11
Iterator Pattern (download pdf - 147KB) & (source code - 4KB)
2009-01
The Adapter Pattern (download pdf) [237KB]
2009-02
Intro to Git - source code management (download pdf) [257KB]
2009-03
The State Pattern (download pdf) [217KB]
2009-07
Relationship Manager (download pdf) [375KB]
2009-09
Hierarchies in SQL - Nested Sets (download pdf) [163KB]
2011-12
The Facade Design Pattern (download pdf) [297KB]