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>
No comments yet.