El elemento clear para las appSettings y los deployments.

Desde hace unos días, he estado hablando del tema de los deployments centrándome sobre todo en la herencia de los web.config de nuestras aplicaciones (funcionalidad muy interesante y a tener en cuenta en todo momento).

Hay varias formas de sobrescribir esta herencia o de configurar nuestro web.config para que nuestra aplicación trabaje de una forma u otra, y hoy vamos a ver otro mecanismo.

Este mecanismo, no viene a ser otro que el elemento clear de las appSettings.

El elemento clear, quita todas las referencias de los appSettings de nuestra aplicación, y solo nos permite trabajar con la configuración agregada por el elemento add.

Usarlo es muy fácil:

<appSettings>
<clear />
<add key=”NumberOfItems” value=”20” />
</appSettings>

Útil y fácil como tienen que ser las cosas, ahora amigos, os dejo. Pero os dejo acompañados del fabuloso Bobby Womack y su genial Across 110th Street, inmortalizada por el no menos fabuloso y genial Tarantino en los títulos de crédito de Jackie Brown.

La herencia de los Web.config, los deployment y el tag remove

Anteriormente, hemos visto, que es útil y una buena práctica, el soportar la herencia de los web.config de tus apliaciones web.

Puede ser muy útil, tener un web.config padre y una serie de web.config hijos, donde se encapsule la configuración de cada una de tus aplicaciones ya que así los deployment y mantenimientos son más sencillos y sobre todo, así mantienes todas tus aplicaciones de una forma más compacta.

Eso si, siempre se pueden dar casos, donde nos encontremos que nuestro web.config esta herendado de otro, y el web.config padre, hace referencia a elementos que nos necesitamos, lo cual nos va a generar un problema, pero tranquilos, esto es muy fácil solucionarlo gracias al tag remove.

El tag remove, se va a encargar de “eliminar” las referencias del web.config que no necesitemos.

Un ejemplo de su uso sería el siguiente:

<httpModules>
<remove name="HttpExceptionHandlerPipeline" />
<remove name="HttpsSwitcherPipeline" />
<remove name="RedirectModule" />
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>

Sencillo y útil, como todo debería de ser.