Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Verarbeiten von Konfigurationsdaten (https://www.delphipraxis.net/34672-verarbeiten-von-konfigurationsdaten.html)

choose 26. Nov 2004 12:13


Verarbeiten von Konfigurationsdaten
 
Ich suche nach einer Möglichkeit, hierarchisch organisierte Konfigurationsdaten (Texte, Zahlen, ggf aber auch Objekte, etc.) innerhalb eines Programms verwenden zu können. Die Umstände erfordern es, dass es möglich sein muss, direkte Referenzen auf unterschiedliche Knoten innerhalb dieser Hierarchie inne zu haben, während schreibende Zugriffe unmittelbar über jede Referenz reflektiert werden.
Das "Überblenden" von Zweigen zur Laufzeit für spezialisierte Versionen der Konfigurationshierarchie sollte ebenso möglich sein, wie Verweise (symbolische Links), während die darunterliegenden Daten unverändert den Anforderungen von oben genügen (bzw. durch Schreibrechte die Konsistenz sichergestellt werden kann).
Um Beschreibungen und Default-Werte zentral verwalten zu können, aber auch, um eine geregelte Verarbeitung beim "überblenden" von Konfigurationen zu gewährleisten, ist es nach meiner Auffassung notwendig, Metadaten abzulegen, die Vorgeben, ob ein Wert beim überschrieben ersetzt (ursprünglich 1, spezialisiert 2, Ergebnis 2) oder in anderer Form verknüpft wird (ursprünglich wahr, spezialisiert falsch, Ergebnis wahr).

Das Projekt Nini zielt etwa in die Richtung, an die ich denke. Kennt jemand von Euch eine Bibliothek, mit der Beschriebenes erreicht werden kann und das am besten noch in Delphi ;) ?

Edit: Als 'offene Frage' markiert.

choose 20. Dez 2004 12:40

Re: Verarbeiten von Konfigurationsdaten
 
Vielleicht ist inzwischen jemand über etwas geeignetes in Delphi gestolpert?

Marcel Gascoyne 20. Dez 2004 13:50

Re: Verarbeiten von Konfigurationsdaten
 
Für so eine Problemstellung schlage ich Dir vor ein Objektframework wie z.b. BOLD (bis Delphi 7) oder ECO (ab Delphi 8 ) zu verwenden. Ggf. reicht auch Instant Objects (Open Source) aus, da die Objektframeworks ja nur in den Architekt-Editionen von Delphi enthalten sind. Das Framework sorgt auch für die Serialisierung der Daten in einer relationalen Datenbank und das Mapping zwischen den Objekten/Attributen und Tabellen/Feldern.

Du kannst in solch einem Framework "Rules" für die Verarbeitung der Objekte definieren, wie es z.b. bei Mehrschichtanwendungen ebenfalls gemacht wird.

Schau Dir die drei alternativen einmal an ob das passende für Dich dabei ist.

Gruß,
Marcel

choose 20. Dez 2004 15:18

Re: Verarbeiten von Konfigurationsdaten
 
Hallo Marcel,

ich habe mir sowohl das nicht länger entwickelte Bold sowie die ECO Bibliothek als auch das inzwischen frei verfügbare Konzept von InstantObjects angesehen. Darüber hinaus gibt es im Delphibereich noch das TechInsite Object Persistence Framework sowie als Adaptionsgrundlage die generellen Arbeiten von Scott Ambler und Wolfgang Keller et. al., um Objekte zu persistieren.
Zur Ablage von strukturierter Information sind Objekte mit Sicherheit geeignet, dieser Aspekt ist jedoch ein breit diskutiertes Problem, das mit zT gut dokumentierten Arbeiten hinreichend gelöst ist.

Meine Herausforderung besteht eher in der Verarbeitung als zur Laufzeit zur Verfügung stehenden Konfiguration, die Rollen und unterschiedliche Kontexte abbilden kann. Übertragen auf die Objektpersistierung sollten Objekte also je nach aktuellem Szenario unterschiedliche Werte pro Coexistenz beinhalten und Anfragen je nach Rolle und Berechtigungen an allgemeinere Konfigurationen delegieren (Herstellervoreinstellung-> Kundenvoreinstellung-> Rollenvoreinstellung-> Benutzereinstellung-> Szenarioabhängige Werte...), sofern sie nicht in der jeweils spezialisierteren Ausprägung überschrieben worden sind.

Ich hoffe, dass ich etwas besser darstellen konnte, welcher Bereich noch erarbeitet werden muss?
:gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz