Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
cap:dotnet:config [2018/02/23 11:22]
user
cap:dotnet:config [2018/02/23 16:40] (actual)
user [En el archivo de configuración]
Línea 17: Línea 17:
  
 =====¿Como funciona?​===== =====¿Como funciona?​=====
- Para empezar, la configuración de DotNet funciona como una herencia y todo empieza en el machine.config.+Para empezar, la configuración de DotNet funciona como una herencia y todo empieza en el machine.config. 
 + 
 +{{ cap:​dotnet:​config:​dotnet_config.png }} 
 + 
 +El //​machine.config//​ es el archivo de mayor jerarquía en las configuraciones,​ este hereda a los //​web.config//​ y a los //​app.config//,​ en entornos web se usa el //​web.config//,​ en las aplicaciones de escritorio se usa el //​app.config//​. 
 + 
 +Existen configuraciones que pueden ser sobre-escritas,​ es decir, que una vez que se definieron pueden ser alteradas en sus herencias, pero existen otras configuraciones que no pueden ser sobre-escritas,​ es decir, una vez que se definieron su valor se mantiene durante toda la herencia. 
 + 
 +Existe una carpeta llamada **Config** donde está el archivo //​machine.config//​ y este hereda sus valores al archivo //​web.config//​ que está en la misma carpeta, este archivo hereda su configuración al archivo //​web.config//​ que se encuentra en cada sitio, y el archivo //​web.config//​ de cada sitio hereda su configuración al archivo //​web.config//​ de cada aplicación web, por último, cada archivo //​web.config//​ de cada aplicación puede heredar su configuración a los archivos //​web.config//​ de cada carpeta en la aplicación. 
 + 
 +=====¿Como se define una configuración personalizada?​===== 
 +La configuración personalizada se define en 2 partes. 
 + 
 +  - En el código 
 +  - En el archivo de configuración 
 + 
 +====En el código==== 
 +  * Se tiene que crear una clase y hacer que esta clase implemente la interface //​IConfigurationSectionHandler//​. 
 +  * En el método **create** escribir el código necesario para leer el contenido XML de la configuración y pasarla a la entidad o entidades necesarias. 
 + 
 +<code csharp>​ 
 +public class MiConfiguracion : IConfigurationSectionHandler  
 +
 +   ​public object Create(object parent, object configContext,​ XmlNode section) 
 +   { 
 +      //Leer XmlNode section para obtener los valores de la configuracion 
 +   } 
 +
 +</​code>​ 
 +====En el archivo de configuración==== 
 +  * Agregar en la sección **configuration/​configSections** la referencia a nuestra clase de configuración. 
 +  * Agregar en la sección **configuration** el contenido xml que define la configuración de nuestra clase de configuración 
 +    * Podemos trasladar el contenido a un archivo por medio del atributo //​configSource//​. 
 + 
 +**Opción 1** 
 +<code xml> 
 +<​configuration>​ 
 +   <​configSections>​ 
 +      <section name="​nombreSeccion"​ type="​Full Qualified Name" /> 
 +   </​configSections>​ 
 +   <​nombreSeccion>​ 
 +      <​elementosDeConfiguracion atributosDeConfiguracion=""​ /> 
 +   </​nombreSeccion>​ 
 +</​configuration>​ 
 +</​code>​ 
 + 
 +**Opción 2** 
 +<code xml> 
 +<​configuration>​ 
 +   <​configSections>​ 
 +      <section name="​nombreSeccion"​ type="​Full Qualified Name" /> 
 +   </​configSections>​ 
 +   <​nombreSeccion configSource="​nombreArchivoConfiguracion"​ /> 
 +</​configuration>​ 
 +</​code>​