Simplifica tus archivos de configuración trozeandolos

Un característica poco conocida sobre los archivos de configuración de .net (app.config, web.config…) es la posibilidad de trocearlos. Me he decidido a comentar este tema depués de tener que pegarme con un enorme e inmantenible archivo de configuración.


La idea es simple, podemos sacar secciones de nuestro archivo .config a otros archivos .config.


Supongamos que, por ejemplo, queremos sacar a un archivo de configuración separado las cadenas de conexión de nuestra aplicación. Suele tener sentido hacer esto pues es algo que a menudo los usuarios tienen que tocar. Crearemos un archivo llamado, por ejemplo, connectionStrings.config con el contenido de la sección connectionStrings, tal y como se muestra a continuación:



    1 <connectionStrings>


    2   <add name=SiteSqlServer connectionString=tuConnectionString />


    3 </connectionStrings>


Luego, en nuestro archivo principal de configuración (app.config o web.config), tendremos que incluir la sección que hemos extraido a otro archivo, estableciendo en el atributo configSource de la sección el nombre el archivo en el que se encuentran los valores de configuración:




    1 <configuration>


    2   …


    3   <connectionStrings configSource=connectionStrings.config />


    4   …


    5 </configuration>


Usando esta técnica podemos mantener en nuestro archivo principal de configuración todo lo relativo a infraestructura de la aplicación (Http Handlers, Configuration Section Handlers, configuración de la seguridad…) aquella información que cambia poco y los parámetros que son subceptibles de ser tocados por el usuario, sacarlos a archivos separados mucho más simples de editar y mantener.

4 comentarios sobre “Simplifica tus archivos de configuración trozeandolos”

  1. Hola Rodrigo
    Agregando tambien a tu post, se puede separar todas las secciones. Muy recomendable como dices en archivos de configuracion de membresia por ejemplo o cuestion relativas al hosting como ser el usaurio a impersonar o incluso los datos del servidor smtp utilizado para enviar email (en fin de todo)

    Incluso en un archivo sitemap lo podemos separar, por ejemplo un nodo que tenga sus subnodos en otro sitemap (sin estar separando en provider diferentes)

    mas info:
    Varios SitemapProviders en la misma App Web (archivos .sitemap)
    http://geeks.ms/blogs/fernandezja/archive/2007/07/22/varios-sitemapproviders-en-la-misma-app-web-archivos-sitemap.aspx

    Atributos generales heredados por elementos de una sección
    http://msdn2.microsoft.com/es-es/library/ms228167(VS.80).aspx

    Un abrazo
    Jose A. Fernandez

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *