Iver's web place

Navegador de Archivos

Calendario del Blog

February 2012
Sun Mon Tue Wed Thu Fri Sat
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 1 2 3

General

Evitar recompilar por cambios simples.

El otro día encontré un artículo que citaba al programador de raza y me doy cuenta de que me inclino poco a poco hacia ese perfil y espero algún día llegar a cubrirlo perfectamente, por lo mientras he dedicado un poco de mi tiempo para investigar sobre como realizar un mejor código con pocas modificaciones.

En esta ocasión me puse a modificar el código para que al subir los datos a producción no se tenga que estar recompilando porque falló una u otra cadena de conexión o que la ip no corresponde o detallitos como esos.

Primero veamos la conexión a la base de datos, muchas veces por la facilidad y rápidez de copiar y pegar no nos damos cuenta que nuestro código se está duplicando considerablemente y para colmo no nos interesa darle el mentado refactoring. En el caso de las cadenas de conexión de bases de datos bien podemos usar el archivo de configuración que brinda el .NET (web.config).

Es muy simple, unicamente se tiene que definir lo siguiente:

 
<appsettings>
 ...
                <add key="keyName" value="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=MiBase;Data Source=MiServer;"></add>
...            
</appsettings>
 
Después de eso en nuestro código usamos el namespace System.Configuration y asignamos a una variable de tipo string el valor del key que contiene la conexión:

 
       string _dbConnection = ConfigurationSettings.AppSettings["keyName"];
 
con esto es más que suficiente para poder utilizar a cadena que viene en el archivo de configuración y además puedes modificarla al vuelo sin tener que compilar nuevamente tu código.

Otro problema que puede surgir es que constantemente tengas que estar cambiando la URL de la máquina de pruebas a la de producción. Para esto he encontrado una forma simple de hacerlo y claro si alguién más lo ha hecho de una manera diferente por favor comentalo para aprender face-wink.png .

 
  // Se obtiene el nombre de la máquina
  string hostName = System.Net.Dns.GetHostName();
  // Se obtiene la ip de un array porque puede tener más de una ip asignada
  string stringIP = System.Net.Dns.GetHostEntry(hostName).AddressList[0].ToString();
 
Después de esto ya puedes usar la variable stringIP para concatenarla en cualquier parte de tu código.

Simple, ¿o no?, que nos cuesta darle una pulidita a ese código y evitar unas cuantas líneas que no nos serviran de nada. Ya si andas medio inspirado puedes generar una clasesilla y poner tus diversas configuraciones para conectarte a las bases de datos.

Si, también existen FrameWorks dedicados a eso pero esa es otra historia.
Trackback URI: http://es.iver.com.mx/index.php/trackback/93

Dejar un comentario

Escribe el código Captcha que estás viendo

Fuentes XML de comentario: RSS | Atom

Estadísticas de visitantes

6
40
27433