Ho difficoltà a gestire la configurazione di un'applicazione ASP.Net da distribuire per client diversi. Il semplice volume di diverse impostazioni che necessitano di un po 'di tempo richiede molto tempo e gli attuali metodi di configurazione sono troppo complicati per consentirci di estendere questa responsabilità ai partner di supporto.Come gestisco la configurazione dell'applicazione in ASP.NET?
Qualche suggerimento per metodi migliori per gestire questa o buone fonti di informazioni per la ricerca?
come facciamo le cose attualmente:
- vari file di configurazione XML, che si fa riferimento nel web.config, ad esempio un AppSettings.xml.
- Le configurazioni per siti specifici sono conservate in file di configurazione duplicati.
- file di testo contenenti elenchi di dati specifici al sito
- In alcuni casi, manuali variazioni una tantum al database
- C# di configurazione per Windsor CIO.
Le questioni specifiche che stiamo avendo:
- siti diversi con caratteristiche diverse abilitate, diversi servizi esterni che dobbiamo parlare e regole di business differenti.
- Diversi tipi di distribuzione (dal vivo, di prova, di formazione)
- chiavi di configurazione cambiano tra versioni (vengono aggiunti, rimuovere), il che significa che dobbiamo aggiornare tutti i file duplicati
- Abbiamo ancora bisogno di essere in grado di alterare le chiavi, mentre l'applicazione è in esecuzione
I nostri pensieri correnti su come potremmo avvicinarci a questo sono:
- spostare la configurazione in codice compilato dinamicamente (possibilmente Boo, Binsor o JavaScript)
- hanno una qualche forma di diffing/fusione di configurazione: combinare una configurazione di default con un/test/config formazione dal vivo e un config site-specific
Alla fine sono andato con un sistema di fusione config. I file di configurazione sono memorizzati in un albero. Durante il caricamento di una chiave, cerca prima la versione più specifica (tipo di sito e di implementazione), quindi esamina i file successivamente più generali finché non trova la chiave. La cosa principale che ho imparato da tutto questo è che è tremendamente utile avere tutte le configurazioni che devi gestire nel controllo del codice sorgente. – GlennS