Administrar un gran número de archivos app.config

7

Tenemos muchos servicios de Windows y aplicaciones web que se basan en una gran cantidad de configuraciones comunes. Actualmente utilizamos solo los ajustes de aplicación según sea necesario y se hace referencia a ellos por clave. Algunas de las configuraciones son específicas de la aplicación y solo las conoce el equipo de la aplicación, mientras que otras son específicas del entorno y solo las conoce el equipo de implementación. También tenemos problemas cuando tenemos que hacer un cambio en la configuración común que requiere el cambio de cientos de archivos y reiniciar todos los servicios correspondientes. Con la gran variedad de configuraciones, hay duplicados que ya no se usan y muchos que no significan lo mismo para diferentes aplicaciones.

Para resolver el problema, tenía una idea doble: escribiríamos un grupo de secciones de configuración personalizadas para la empresa con secciones de configuración personalizadas para cada aplicación y una para el común. La sección común podría ser accedida por un servicio de wcf y validar que todas sus configuraciones son las configuraciones actuales.

Mi pregunta es si estoy reinventando la rueda. ¿Existe algún marco / proyecto / producto bueno que esté diseñado para administrar muchos archivos de configuraciones en un entorno distribuido, y si no es el enfoque, he decidido adoptar un método razonable?

    
pregunta rerun 23.05.2011 - 16:49

4 respuestas

0

Sugiero utilizar algún tipo de wiki o motor de documentación en tu lugar de trabajo.

Seguro que puedes subir archivos bastante similares al servidor, pero ese es el lugar donde a veces nos olvidamos de mirar. Solo piense cuántas veces descargó una aplicación para propósitos de desarrollo y comenzó a leer README.txt, o simplemente saltó a la página web de esa aplicación y comenzó a leer la documentación. Claro que puedo ser yo con la moda de Linux, pero aún así ...

Claro que esto solo eliminará el problema de que tus compañeros de trabajo no saben qué y cómo estás trabajando.

Para administrar configuraciones, simplemente divídalos. Si se necesitan algunos ajustes especialmente para la aplicación, ¿por qué la aplicación no tiene un archivo de configuración propio? En mi opinión, las configuraciones comunes solo deben responder al entorno, mientras que las configuraciones de aplicaciones personalizadas deben tener configuraciones para sus propios propósitos [de aplicaciones], no tenga miedo de multiplicar las configuraciones, ya que podrá administrar esas configuraciones sin temor a que se bloquee alguna otra aplicación Si cree que administrar esta cantidad de configuraciones es más difícil, recuerde que es una práctica común usar un archivo por modelo. ¿Por qué no hacer lo mismo con la configuración? También existe la opción Name_spacing, pero en ese caso, su archivo de configuración será ENORME, por lo tanto, le sugiero que use la configuración escupida como sugirió @Travis.

    
respondido por el JackLeo 31.05.2011 - 08:17
4

Tuvimos un problema similar en mi trabajo. Lo solucionamos al no usar los archivos de configuración. Escribimos las cosas que, cuando se modificaban, requerían un cambio de código de alguna manera en el código, y luego movíamos el resto de las propiedades a una tabla de configuración en una base de datos. Lo pudimos hacer porque controlamos cada servidor en el que implementamos el código. Este cambio simplificó drásticamente nuestros sistemas

    
respondido por el Erin 31.05.2011 - 05:56
2

Para las aplicaciones actuales, si no está roto, no lo arregle. Puede crear un gran lío si comienza a jugar con configuraciones innecesariamente en varias aplicaciones. Para nuevas aplicaciones, simplemente, ponga su configuración compartida en una base de datos.

    
respondido por el Ennad 31.05.2011 - 09:06
1

Puede incluir un archivo externo en su app.config solo para la configuración de la aplicación. El archivo incluido es bastante limitado en cuanto a lo que puede tener (solo el nodo de configuración de aplicaciones), pero es útil si solo quiere compartir cosas.

\Software\Services
    shared.config
    \Service1
        service1.exe
        service1.exe.config
    \Service2
        service2.exe
        service2.exe.config

En este caso, solo tienes service1 y service2 referencia al shared.config .

Además, tener un servicio de configuración también es algo que he hecho, esp. Cuando hay un gran número de aplicaciones. Los servicios son un poco más fáciles porque a menudo residen en la misma caja. Cuando tiene muchas aplicaciones web en diferentes cajas, entonces necesita algo más externo como referencia.

Editar, debería haber incluido un enlace a un ejemplo enlace .

    
respondido por el Travis 31.05.2011 - 04:36

Lea otras preguntas en las etiquetas