Zentrale Settings Database für .NET: Konfiguration ohne Deployment
Kurzbeschreibung
Entwicklung einer zentralen Konfigurationslösung für C#/.NET-Anwendungen, mit der Änderungen ohne Deployment möglich sind.
Ziel war es, die Systemlandschaft zu stabilisieren, Abstimmungsaufwand zu reduzieren und Anpassungen deutlich zu beschleunigen.
Ausgangslage
In gewachsenen Systemlandschaften werden Konfigurationswerte oft dezentral verwaltet – z. B. in Dateien, Datenbanken oder direkt im Code.
Daraus ergaben sich folgende Probleme:
- Änderungen erforderten Deployments oder manuelle Anpassungen
- Inkonsistenzen zwischen Umgebungen
- Erhöhter Abstimmungs- und Testaufwand
Lösung
Aufbau einer zentralen Konfigurationsdatenbank („Settings Database“), in der alle anwendungsrelevanten Einstellungen gebündelt verwaltet werden.
Die Struktur basiert auf projektspezifischen Key-Value-Paaren und ermöglicht die flexible Speicherung:
- Einfache Werte (z. B. Retention-Zeiten)
- Verschlüsselte Verbindungsdaten
- JSON-basierte Konfigurationen
- Dateipfade (z. B. Backupordner)
Die Anwendungen lesen diese Einstellungen zur Laufzeit aus. Änderungen werden sofort wirksam – ohne Deployment.
Technische Umsetzung
- Generische Datenbankstruktur zur flexiblen Erweiterung
- Klare Trennung von Konfiguration und Anwendungslogik
- Automatisierte Synchronisation über SQL Server Agent Jobs
- Kontrollierte Verteilung über definierte Merge-Prozesse
Architekturdiagramm
Titel: Zentrale Konfigurationsarchitektur
[.NET App 1] ----\
\
[.NET App 2] ------> [Settings Database]
/ |
[.NET App 3] ----/ |
v
[SQL Agent Job]
|
v
[Weitere Systeme]
Farben (draw.io):
Apps = Blau (#4A90E2)
Datenbank = Grün (#7ED321)
Synchronisation = Orange (#F5A623)
Ergebnis
Vorher:
- Änderungen nur über Deployments möglich
- Hoher manueller Aufwand
- Fehleranfällige, verteilte Konfiguration
Nachher:
- Zentrale und konsistente Konfigurationsbasis
- Änderungen ohne Deployment
- Automatisierte Verteilung
- Deutlich schnellere Anpassungen
Vorher–Nachher-Diagramm
Vorher:
❌ App 1 → config.json
❌ App 2 → Datenbank
❌ App 3 → Hardcoded Werte
❌ Manuelle Änderungen notwendig
❌ Inkonsistente Daten
Nachher:
✅ Zentrale Settings Database
✅ Klare Struktur (Key-Value)
✅ Einheitliche Datenquelle
✅ Automatische Verteilung
✅ Änderungen ohne Deployment
Praxisbeispiel
Die Anpassung eines Importpfads kann direkt in der Datenbank erfolgen. Zuvor war dafür eine Codeänderung mit anschließendem Deployment notwendig.
Nutzen
Für die Entwicklung:
- Weniger Eingriffe in den Anwendungscode
- Geringere Fehleranfälligkeit
- Bessere Nachvollziehbarkeit von Einstellungen
Für das Unternehmen:
- Schnellere Reaktionsfähigkeit bei Änderungen
- Stabilere Releases durch weniger Deployments
- Skalierbare Grundlage für weitere Anwendungen
Fazit
Die zentrale Konfigurationslösung reduziert technische Abhängigkeiten, vereinfacht Änderungsprozesse und erhöht die Stabilität der gesamten Systemlandschaft.
