Ficheros de Configuración aplicaciones .NET

Ficheros de Configuración .NET (Optimización de la Estructura)

Cuando desarrollamos aplicaciones ya sean Web, CS, Mobile, etc. generalmente necesitamos almacenar cierta información de configuración para poder personalizar o parametrizar información en función del entorno en el que se esté ejecutando (Desarrollo, Test, Producción, etc.). Esa información compuesta a base de parámetros o variables de configuración suele guardarse en ficheros de configuración, en .NET son los famosos ficheros .config que tienen estructura XML y además se toma como estandar para ya prácticamente cualquier archivo relacionado con el servidor de aplicaciones (Ej: Internet Information Server)

En el sistema operativo podemos encontrar ficheros de configuración como METABASE.CONFIG, WEB.CONFIG, APP.CONFIG, etc. Estos ficheros pueden editarse (algunos solamente con permisos de administrador) y permiten controlar a base de entradas XML la configuración tanto de la aplicación como de la instancia del servidor de aplicaciones a la que hacen referencia.

Si bien, estos ficheros de configuración son utilizados para almacenar información de ejecución, cierto es que pueden estructurarse para hacer más fácil su manejo y evitar en la medida de lo posible dotarlos de un tamaño inmanejable. Por este motivo, hoy haré un pequeño inciso en ellos para introducir el concepto de INCLUSIÓN de ficheros de configuración, que nos permitirá separar ciertas partes del fichero principal en otros ficheros de configuración específicos y más pequeños conteniendo información específica de configuración. Ejemplo a continuación:

Fichero web.config tradicional:

<?xml version=»1.0″ encoding=»UTF-8″?>
<configuration>
<connectionStrings>
<add name=»Conexion» connectionString=»Data Source=SERVIDOR;Initial Catalog=BBDD;Integrated Security=True;» />
</connectionStrings>
<appSettings>
<add key=»SearchEnginesIPs» value=»66.249.67.205,» />
<!– … –>
</appSettings>
<system.web>
<globalization culture=»es-es» uiCulture=»es» />
<customErrors mode=»Off» />
<pages controlRenderingCompatibilityVersion=»3.5″ clientIDMode=»AutoID»>
<controls/>
</pages>
<compilation debug=»true» urlLinePragmas=»true» targetFramework=»4.0″>
<assemblies>
<add assembly=»System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A» />
<add assembly=»System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089″ />
<add assembly=»System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A» />
</compilation>
<identity impersonate=»false» />
<authentication mode=»Windows» />
</system.web>
</configuration>

Fichero web.config con inclusiones para la cadena de conexión y settings:

<?xml version=»1.0″ encoding=»UTF-8″?>
<configuration>
<appSettings configSource=»app.config»/>
<connectionStrings configSource=»db.config»/>
<system.web>
<globalization culture=»es-es» uiCulture=»es» />
<customErrors mode=»Off» />
<pages controlRenderingCompatibilityVersion=»3.5″ clientIDMode=»AutoID»>
<controls/>
</pages>
<compilation debug=»true» urlLinePragmas=»true» targetFramework=»4.0″>
<assemblies>
<add assembly=»System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A» />
<add assembly=»System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089″ />
<add assembly=»System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A» />
</compilation>
<identity impersonate=»false» />
<authentication mode=»Windows» />
</system.web>
</configuration>

 

 

Post By Fran (5 Posts)

Francisco José Saiz-Ezquerra de Paz Desde 1998 desempeño mis funciones como Tecnólogo especializado en "Desarrollo de InternetApps y Arquitecturas Distribuidas". Después de varios años en empresas TIC en Cantabria y Madrid, emprendí un nuevo camino desde cero con NETPERCEPTIONS, empresa desde la que ofrezco servicios especializados de Consultoría y Desarrollo Tecnológicos.

Email to: franciscojose.saiz@resourcing.es

Website: →

Connect

,

No comments yet.

Deja un comentario

Leave your opinion here. Please be nice. Your Email address will be kept private.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
Translate »