2010-12-09 4 views
0

Wir haben viele Umgebungen und denken darüber nach, dynamische Anwendungskonfiguration als Teil von CI zu erstellen. Die Konfigurationswerte werden in der Datenbank mit WPF gespeichert. Das Operationsteam verwaltet die App für neue App-Konfigurationseinträge.Dynamische App-Konfiguration als Teil von CI

Das Problem, mit dem ich konfrontiert bin, ist, wie kann ich die Konfiguration dynamisch erstellen und validieren? Meinungen ..? Danke im Voraus.

+0

Ich denke auch darüber nach, String-Vorlage als Teil der Lösung zu verwenden. In einem Sinne, dass es umweltspezifische Werte gibt, die das Operationsteam manuell bearbeiten muss, um es zu ändern. – odez213

+0

Ich schaute App Config xsd für das spezifische .net-Framework und ich versuche, Shell Xml dafür zu generieren. Dort forsche ich gerade. – odez213

Antwort

1

Wenn die Anzahl der Konfigurationen endlich und bekannt ist (Test, UAT, Produktionsdesktop, Produktionsmobil, usw.), können Sie das Attribut configSource in den Elementen AppSettings, ConnectionStrings und ConfigSection nutzen. Hier ist die Grundvoraussetzung; Erstellen Sie für jede Konfiguration eine AppSettings.xyz.config-Datei, wobei xyz der Name der Konfiguration ist ("local" "test", "uat", "prod" usw.). Erstellen Sie eine einzelne Datei app.config, die eine <!ENTITY config "xyz"> Definition verwendet, und hat configSource für verschiedene Abschnitte Attribute gesetzt ähnlich wie:

<appsettings configSource="appSettings.&config.config"> 

nun in Einsatzlogik, Sie eine Sache ändern; das String-Literal, das von der Entität definiert wird. Diese Änderung ist so einfach, dass Sie nicht einmal XML-Parsing benötigen, um die Änderung vorzunehmen. schlürfen Sie die Datei einfach mit einem FileStream in den Speicher, suchen Sie die Entity-Definition, nehmen Sie die Änderung vor und spucken Sie den neuen Inhalt wieder in die Datei. Wenn Sie ein Installationsprogramm verwenden, können Sie steuern, welche untergeordneten Konfigurationen installiert werden.

+0

danke für den Tipp eine gute Möglichkeit für die Implementierung mit String-Template-Methode. In der App wird Folgendes verwendet: und die generierte Konfiguration lautet: $ customValueFromDatabase odez213

0

Werfen Sie einen Blick auf T4. Sie können eine skeleton .config-Datei mit bestimmten Variablen erstellen, die aus der Datenbank gefüllt werden, um die umgebungsspezifische Datei zu generieren.

+0

T4 ist ein Overkill für Power-Admin-Benutzer. Ich benutze nvelocity für String-Vorlage und das ist eine der Lösung, die Vorlage basiert. Das Problem ist jedoch, ich möchte die App-Konfiguration von Grund auf neu erstellen. Was ist der beste Weg? Haben Entwickler jeden Konfigurationseintrag in die Datenbank geschrieben? Erstellen Sie dann eine benutzerdefinierte App, um sie zu erfassen und dynamisch zu generieren? – odez213

Verwandte Themen