Tengo dificultades para administrar la configuración de una aplicación ASP.Net para implementar para diferentes clientes. El gran volumen de configuraciones diferentes que requieren manipulación requiere grandes cantidades de tiempo, y los métodos de configuración actuales son demasiado complicados para permitirnos llevar esta responsabilidad a los socios de soporte.¿Cómo administro la configuración de la aplicación en ASP.NET?
¿Alguna sugerencia para mejores métodos para manejar esta o buenas fuentes de información para investigar?
cómo hacemos las cosas por el momento:
- Varios archivos de configuración XML que se hace referencia en Web.Config, por ejemplo, un AppSettings.xml.
- Las configuraciones para sitios específicos se guardan en archivos de configuración duplicados.
- Los archivos de texto que contienen listas de datos específicos al sitio
- En algunos casos, los cambios de una sola vez a la base de datos manuales
- C# configuración de Windsor COI.
Los temas específicos que estamos teniendo:
- diferentes sitios con diferentes características habilitadas, diferentes servicios externos que tenemos que hablar y diferentes reglas de negocio.
- Diferentes tipos de implementación (en vivo, prueba, capacitación)
- teclas de configuración cambian entre versiones (se añaden, eliminar), lo que significa que tenemos que actualizar todos los archivos duplicados
- Todavía tenemos que ser capaces de alterar teclas mientras se ejecuta la aplicación
nuestro pensamiento actual sobre cómo podemos abordar esto son:
- Mover la configuración en código compilado de forma dinámica (posiblemente Boo, Binsor o JavaScript)
- tienen alguna forma de diffing/fusión de configuración: combinar una configuración por defecto con una prueba/config en vivo/formación y una configuración específica del sitio
Al final fui con un sistema de configuración de fusión. Los archivos de configuración se almacenan en un árbol. Al cargar una clave, primero busca la versión más específica (sitio y tipo de implementación) y luego mira sucesivamente los archivos más generales hasta encontrar la clave. Lo principal que he aprendido de todo esto es que es tremendamente útil tener todas las configuraciones que tiene que gestionar en el control de la fuente. – GlennS