Xml vs. Datenbank für die Anwendung, Konfiguration
Meine Anwendung Konfiguration ist sehr hierarchisch aufgebaut und passt gut in eine einzelne XML.
Bald (YAGNI, Yeh) Teile dieser Informationen werden konsumiert, die von anderen Anwendungen ferngesteuert, die Anrufe für eine Datenbank.
So, ich ging in die Gestaltung DB-Tabellen und mapping Sie zurück zu meiner Anwendung Klassenhierarchie (EF). es wurde jedoch ein Wartungs-Albtraum.
Ich würde gerne hören von anderen Erfahrungen-in Anbetracht dieses Thema, danke.
- Ich sehe, dass diese Frage noch immer hoch angesehen, so einfach möchte vorschlagen, die Leser, zu überprüfen, die NoSQL-Optionen für diese Art von Anwendungen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatten wir sehr gute Erfahrung mit der Speicherung der Konfiguration in einer Datenbank für lang laufende Anwendungen (wie web-sites und-Dienste). Vorteile:
select max(lmod) from config
) automatisch oder durch ein signal (ping, eine web-Seite oder erstellen Sie eine leere Datei irgendwo)Das Hauptproblem ist die Bearbeitung, wenn Sie über eine komplexe, hierarchische config-Struktur mit Standardwerten, Listen-und Erbrecht. Unsere Lösungen:
Config Objekte verstecken diese details, so dass die Anwendung einfach arbeitet mit Objekten.
Einer speziellen Klasse ist verantwortlich für die re-Lektüre der config ändern. In der Regel haben wir update der config einige Zeit während des Tages und einen zeitgesteuerten Auftrag erneut zu laden, nachdem Stunden. Auf diese Weise, die wir nie brauchen, um synchronisieren Sie die config-Methoden.
Backup und Wechsel der Geschichte waren allerdings ein problem. Wir fest, dass durch die Verwendung von XML-Dateien in das VCS, die dann "hochgeladen" auf die DB. So konnten wir überprüfen die Produktion config vor dem hochladen (indem Sie Sie mit einem speziellen Satz von unit-tests auf einer Entwickler-Maschine). Wenn es aktiviert wurde, während der Nacht, es in der Regel sofort funktioniert und der Betreiber verantwortlich für die app müsste nur mal ein wenig testen.
IMHO config sollte Leben in Dateien, Dateien, die funktionieren gut für die Menschen, und Sie sind ok für Computer. DBs eignen sich gut für große Datenmengen, aber Sie sind viel zu Komplex für menschliche Sachen. Die beiden sind normalerweise gegenseitig aus, und wenn Sie versuchen, Sie zu kombinieren, Sie bekommen so etwas wie die registry - igitt.
Warum nicht lassen Sie die config in einer Datei, und bauen eine DAL-und service-Ebene um ihn herum, so dass Sie Ihre apps verwenden können. Vorausgesetzt, dass Sie hosten kann auf einem zentralen server, wenn nicht mehrere Kopien der Datei in der wildnis.
Mithilfe einer Datenbank (vielleicht zum speichern der Konfigurations-xml-Datei, wenn Sie behalten möchten, das format) hat Vorteile - Sie können die log/audit änderungen an der Konfiguration und auch die Sicherung und Wiederherstellung.
Grundsätzlich ist deine Frage (so wie ich es sehe) mischt zwei Dinge,
Könnten Sie einfach speichern Sie die config xml Datei in eine Datenbank und ein interface für die Bearbeitung/Anzeige der info.
Config-Dateien sollten die einfachsten Dinge zu handhaben - so setzen Sie Sie in Dateien. Auf diese Weise kann jemand änderungen machen es sogar mit dem Editor (falls erforderlich).
Datenbank ist wirklich übertrieben, es sei denn, Sie möchten, dass Ihre Konfiguration befinden sich in einigen der globalen server und alle Instanzen zu teilen.