2011-01-09 14 views
5

Wenn Sie ein System mit mehreren Anwendungen, Web-Services und Windows-Dienste haben, ist die bessere Option?web.Config vs Datenbankeinstellungen Tabelle

Option 1) Setzen Sie alle Einstellungen in die Datenbanktabelle und cachen Sie sie irgendwo, wahrscheinlich müssen Sie einen Webdienst verwenden, um das Cache-Objekt über Anwendungen hinweg zu teilen. Sie können dann einige dieser Einstellungen in einem Raster zur Benutzermanipulation anzeigen.

Option 2) Setzen Sie alle Einstellungen in eine gemeinsame Konfigurationsdatei, und lassen Sie web.config oder app.config jeder Anwendung auf diese Datei verweisen, ich bin mir sicher, dass es eine Möglichkeit gibt, diese Einstellungen in ein Raster zu setzen, aber wahrscheinlich Sie verlieren die Fähigkeit, "Einstellungen basierend auf der Rolle anzuzeigen".

Dank

Antwort

2

Eine Menge davon kommt auf Vorlieben, was Einstellungen Sie sprechen, wenn Sie Zugriff auf die Einstellungen benötigen, und wie oft werden sie ändern.

Generell versuche ich und halten meine web.config & app.config ziemlich klein. Einstellungen für Infrastrukturelemente (z. B. zu ladende Module, Verbindungszeichenfolgen, Protokolleinstellungen, ORM-Einstellungen usw.) gehen dort hinein. Alles, was ich wirklich brauche oder auf App_start oder in meiner Main() -Methode zugreifen möchte.

Alles, was komplexer ist, oder das ist für weniger der Anwendung, etc, ich nicht in der Regel die Konfigurationsdateien, sondern entweder Einstellungen Objekte, die ich durch meine IoC-Container injizieren, oder ziehen Sie sie aus einem anderen Datenbank.

0

Ich würde vorschlagen, die Konfiguration in die Datenbank zu setzen und dann basierend auf der Anwendung abrufen. Sie können auch ein einzelnes XML schreiben, das verschiedene Konfigurationen enthält, und es auf das Datagrid usw. laden. Auf diese Weise wird die Verwaltung der Konfiguration einfacher, da Sie eine einzelne Datei verwalten müssen.

1

Ich bevorzuge Option 1, da dies die Bereitstellung erleichtert, da jede Umgebung unterschiedliche Konfigurationen haben kann. Sie können dennoch eine xcopy-Bereitstellung durchführen, da die Einstellungen nicht in web.config gespeichert werden.