2011-01-09 18 views
5

Quando si dispone di un sistema di più applicazioni, servizi Web e servizi Windows, quale è l'opzione migliore?web.Config vs Tabella impostazioni database

Opzione 1) Inserire tutte le impostazioni nella tabella del database e memorizzarlo nella cache da qualche parte, probabilmente sarà necessario utilizzare un servizio Web per condividere l'oggetto cache tra le applicazioni. È quindi possibile visualizzare alcune di queste impostazioni in una griglia per la manipolazione dell'utente.

Opzione 2) Inserire tutte le impostazioni in un file di configurazione comune e lasciare che web.config o app.config di ogni applicazione punti a quel file, sono sicuro che c'è un modo per mettere quelle impostazioni in una griglia, ma probabilmente perderai la capacità di "mostrare le impostazioni in base al ruolo".

Grazie

risposta

2

Un sacco di questo si riduce a preferenza, quali impostazioni si sta parlando, quando è necessario accedere alle impostazioni, e quanto spesso cambieranno.

In genere, provo a mantenere il mio web.config & app.config piuttosto piccolo. Le impostazioni per le cose infrastrutturali (ad esempio moduli da caricare, stringhe di connessione, impostazioni di registro, impostazioni ORM, ecc.) Vanno lì. Tutto ciò di cui ho veramente bisogno o che voglio avere accesso su App_start o nel mio metodo Main(), in pratica.

Qualcosa di più complesso, o applicabile a meno dell'applicazione, ecc. In genere non inserisco i file di configurazione, ma invece ho degli oggetti di impostazioni che inserisco nel mio contenitore IoC, oppure li estraggo da un Banca dati.

0

Suggerirei di inserire la configurazione nel database e quindi recuperarla in base all'applicazione. Puoi anche scrivere un singolo XML che contiene diverse configurazioni e caricarlo sul datagrid ecc. In questo modo la gestione della configurazione diventa più semplice, perché hai un singolo file da mantenere.

1

Preferisco l'opzione 1, poiché semplifica le distribuzioni, poiché ogni ambiente può avere configurazioni diverse, tuttavia è ancora possibile eseguire una distribuzione di xcopy, poiché le impostazioni non sono memorizzate in web.config.