Zitat von
idefix2:
Zitat:
nutze ein OPF/ORM-Framework
Hilfe, was ist das?
Jetzt habe ich extra drauf geachtet ORM zu schreiben, weil das in WIki erklärt wird
Ein OPF (Object Persistence Framework) oder ORM-Framewokr (Objekt-Relationales-Mapping-Framework) sorgt dafür, dass deine Objektorientierte Strukturen in der Software in einer relationalen
DB gespeichert werden können. Im "Idealfall" definierst Du quasi das KLassenmodell, setzt das (z.B. mittels
UML) um und das OPF macht den ganzen Rest. Lediglich die Oberfläche musst Du dann noch entwerfen. Aber Achtung - ein OPF ist kein Alleskönner! Da gibts auch genügend Fallen und Hürden!
Zitat von
idefix2:
Hmm, aber hast Du nicht dann das gleiche Problem mit Deiner Zwischenschicht, wenn Du Kompatibilität mit verschiedenen Datenbanken brauchst?
Jein - klar ist das nicht trivial, aber ich kann dennoch dafür sorgen, dass wenn die Datenbank z.B. wenn die Datenbank StoredProcedures und Triggers kann, dann kann ich diese auch einsetzen. Und bei ner Datenbank die "nur" Tabellen und Views kennt, nutze ich halt diese. Versuch hier in Schichten zu denken:
so sieht die typische 08/15
DB-Anwendung in Delphi aus:
GUI
----
Datenbank
Die Datenbank ist mehr oder weniger direkt durch Datensensitive Komponenten an die
GUI angeschlossen. Wenn Du jetzt was wie Zeos oder DBX einsetzt siehts wegen mir so aus:
GUI
----
Zugriffsschicht
----
Datenbank
Wobei hier schon eingeschränkt werden muss, dass durch die enge Verzahnung von DBX und Zeos mit der
GUI, diese nicht ohne weiteres ausgetauscht werden können.
Und so sieht es mit einem OPF aus:
GUI
----
BOM (Business Object Modell)
----
Datenbankzugriffsschicht
----
Datenbank
Oder sogar so:
GUI
----
BOM-Zugriffsschicht
----
BOM
---
DB-Zugriffsschicht
---
Datenbank
Und schon kann ich die Datenbank auswechseln und könnte sogar die Oberfläche auswechseln (z.B: von der
VCL auf die Lazarus-Bib, oder NoVCL, oder Intraweb oder sonst was....) Denn wenn ich hier eine Schicht auswechsle (z.B: die Datenbank), dann muss ich lediglich die entsprechende ZUgriffsschicht anpassen und der Rest bleibt gleich.
Aber nochmal: Das ganze Thema ist nicht gerade trivial und in einem Tag zu lernen - aber ziemlich spannend!