ejecución de partes de código.

23/11/2005 - 09:10 por Diego \(DCD\) | Informe spam
Hola, seguro que es una tonteria pero bueno, es posible saber cuando el
depurador de .net está en modo debug o en modo release.

Necesito que en partes de código, por ejemplo cuando asigno la cadena de
conexión, que cuando esté en modo debug me ejecute que coja la cadena de
conexión de mi BBDD de desarrollo y cuando esté en modo release que lo haga
de la bbdd de producción. Algo así como

i f debug then
connection = "cadena conexion desarrollo"
else
connection = "cadena conexion produccion"

Saludos y gracias.

Preguntas similare

Leer las respuestas

#1 Miguel Angel Campos
23/11/2005 - 09:27 | Informe spam
Tienes varias opciones:
- Utilizar las directivas condicionales de compilación de la siguiente
forma:
#if DEBUG
connection = "cadena conexion desarrollo"
#else
connection = "cadena conexion produccion"
#endif
- Puedes utilizar el ficheros de configuración, obteniendo la candena de
conexión de dicho fichero y cambiando esta cadena cuando subas el sistema a
producción.
connection = ConfigurationSettings.AppSettings["CNX_STR"];

Personalmente me gusta mas esta ultima opción, pero utilizando alguna
tecnica de encriptación para evitar que sea visible.

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Diego (DCD)" escribió en el mensaje
news:%
Hola, seguro que es una tonteria pero bueno, es posible saber cuando el
depurador de .net está en modo debug o en modo release.

Necesito que en partes de código, por ejemplo cuando asigno la cadena de
conexión, que cuando esté en modo debug me ejecute que coja la cadena de
conexión de mi BBDD de desarrollo y cuando esté en modo release que lo
haga
de la bbdd de producción. Algo así como

i f debug then
connection = "cadena conexion desarrollo"
else
connection = "cadena conexion produccion"

Saludos y gracias.


Respuesta Responder a este mensaje
#2 Diego \(DCD\)
23/11/2005 - 10:09 | Informe spam
Hola Miguel, precisamente tengo un fichero de configuración para todos mis
programas en el que tengo dos cadenas de conexión, la de desarrollo y la de
producción. Lo he hecho así de manera que únicamente tenga un solo fichero
de configuración para todas mis aplicaciones. Por eso lo del DEBUG.

En cuanto a la encriptación de la cadena es otra cosa que tengo pendiente,
ya que encripto la cadena en un PC y cuando la desencripto en otro me da un
error porque no la desencripta de igual forma. La clase que utilizo es esta:

public class CifradorDatos : Win32DPAPI
{
public CifradorDatos(DPAPIStore tempStore) : base(tempStore)
{
}

public string Cifrar(string plainText, byte[] optionalEntropy)
{
byte[] data;
byte[] dataCifrado;
data = System.Text.Encoding.Unicode.GetBytes(plainText);
dataCifrado = Encrypt(data, optionalEntropy);
return Convert.ToBase64String(dataCifrado);
}
public string Descifrar(string cipherText, byte[] optionalEntropy)
{
byte[] dataCifrado;
byte[] data;
dataCifrado = Convert.FromBase64String(cipherText);
data = Decrypt(dataCifrado, optionalEntropy);
return System.Text.Encoding.Unicode.GetString(data);
}
}
No sé si me puedes ayudar.
Gracias y un saludo.

"Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com> escribió en
el mensaje news:
Tienes varias opciones:
- Utilizar las directivas condicionales de compilación de la siguiente
forma:
#if DEBUG
connection = "cadena conexion desarrollo"
#else
connection = "cadena conexion produccion"
#endif
- Puedes utilizar el ficheros de configuración, obteniendo la candena de
conexión de dicho fichero y cambiando esta cadena cuando subas el sistema


a
producción.
connection = ConfigurationSettings.AppSettings["CNX_STR"];

Personalmente me gusta mas esta ultima opción, pero utilizando alguna
tecnica de encriptación para evitar que sea visible.

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Diego (DCD)" escribió en el mensaje
news:%
> Hola, seguro que es una tonteria pero bueno, es posible saber cuando el
> depurador de .net está en modo debug o en modo release.
>
> Necesito que en partes de código, por ejemplo cuando asigno la cadena de
> conexión, que cuando esté en modo debug me ejecute que coja la cadena de
> conexión de mi BBDD de desarrollo y cuando esté en modo release que lo
> haga
> de la bbdd de producción. Algo así como
>
> i f debug then
> connection = "cadena conexion desarrollo"
> else
> connection = "cadena conexion produccion"
>
> Saludos y gracias.
>
>


Respuesta Responder a este mensaje
#3 Miguel Angel Campos
23/11/2005 - 10:48 | Informe spam
Hola Diego,

estás utlizando las clases de Microsoft.ApplicationBlocks.Cache, estas
clases utilizan unas librerias del sistema operativo DPAPI para encriptar la
información, el problema es que utilizando una semilla que puede depender de
la maquina o del usuario, tu estas utilizando la que depende de la maquina
con lo cual al intentar descrifrar en otra maquina no funciona.
Si has consultado la aplicación de ejemplo de Microsoft MSDNVideo, puedes
observar como se instala la aplicación generando de forma automática la
cadena de conexión a la base de datos. Lo que puedes hacer es actuar de la
misma forma para el sistema en producción, y actuar sin codificar la cadena
para el sistema en pruebas.

Creo que me he explicado bien, pero si tienes alguna duda, la lanzas!.
Un Saludo,

Miguel Angel Campos
MCAD.NET

"Diego (DCD)" escribió en el mensaje
news:
Hola Miguel, precisamente tengo un fichero de configuración para todos mis
programas en el que tengo dos cadenas de conexión, la de desarrollo y la
de
producción. Lo he hecho así de manera que únicamente tenga un solo fichero
de configuración para todas mis aplicaciones. Por eso lo del DEBUG.

En cuanto a la encriptación de la cadena es otra cosa que tengo pendiente,
ya que encripto la cadena en un PC y cuando la desencripto en otro me da
un
error porque no la desencripta de igual forma. La clase que utilizo es
esta:

public class CifradorDatos : Win32DPAPI
{
public CifradorDatos(DPAPIStore tempStore) : base(tempStore)
{
}

public string Cifrar(string plainText, byte[] optionalEntropy)
{
byte[] data;
byte[] dataCifrado;
data = System.Text.Encoding.Unicode.GetBytes(plainText);
dataCifrado = Encrypt(data, optionalEntropy);
return Convert.ToBase64String(dataCifrado);
}
public string Descifrar(string cipherText, byte[] optionalEntropy)
{
byte[] dataCifrado;
byte[] data;
dataCifrado = Convert.FromBase64String(cipherText);
data = Decrypt(dataCifrado, optionalEntropy);
return System.Text.Encoding.Unicode.GetString(data);
}
}
No sé si me puedes ayudar.
Gracias y un saludo.

"Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com> escribió
en
el mensaje news:
Tienes varias opciones:
- Utilizar las directivas condicionales de compilación de la siguiente
forma:
#if DEBUG
connection = "cadena conexion desarrollo"
#else
connection = "cadena conexion produccion"
#endif
- Puedes utilizar el ficheros de configuración, obteniendo la candena de
conexión de dicho fichero y cambiando esta cadena cuando subas el sistema


a
producción.
connection = ConfigurationSettings.AppSettings["CNX_STR"];

Personalmente me gusta mas esta ultima opción, pero utilizando alguna
tecnica de encriptación para evitar que sea visible.

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Diego (DCD)" escribió en el mensaje
news:%
> Hola, seguro que es una tonteria pero bueno, es posible saber cuando el
> depurador de .net está en modo debug o en modo release.
>
> Necesito que en partes de código, por ejemplo cuando asigno la cadena
> de
> conexión, que cuando esté en modo debug me ejecute que coja la cadena
> de
> conexión de mi BBDD de desarrollo y cuando esté en modo release que lo
> haga
> de la bbdd de producción. Algo así como
>
> i f debug then
> connection = "cadena conexion desarrollo"
> else
> connection = "cadena conexion produccion"
>
> Saludos y gracias.
>
>






Respuesta Responder a este mensaje
#4 Diego \(DCD\)
23/11/2005 - 11:10 | Informe spam
Gracias Miguel, más claro que el agua.

Un saludo.

"Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com> escribió en
el mensaje news:
Hola Diego,

estás utlizando las clases de Microsoft.ApplicationBlocks.Cache, estas
clases utilizan unas librerias del sistema operativo DPAPI para encriptar


la
información, el problema es que utilizando una semilla que puede depender


de
la maquina o del usuario, tu estas utilizando la que depende de la maquina
con lo cual al intentar descrifrar en otra maquina no funciona.
Si has consultado la aplicación de ejemplo de Microsoft MSDNVideo, puedes
observar como se instala la aplicación generando de forma automática la
cadena de conexión a la base de datos. Lo que puedes hacer es actuar de la
misma forma para el sistema en producción, y actuar sin codificar la


cadena
para el sistema en pruebas.

Creo que me he explicado bien, pero si tienes alguna duda, la lanzas!.
Un Saludo,

Miguel Angel Campos
MCAD.NET

"Diego (DCD)" escribió en el mensaje
news:
> Hola Miguel, precisamente tengo un fichero de configuración para todos


mis
> programas en el que tengo dos cadenas de conexión, la de desarrollo y la
> de
> producción. Lo he hecho así de manera que únicamente tenga un solo


fichero
> de configuración para todas mis aplicaciones. Por eso lo del DEBUG.
>
> En cuanto a la encriptación de la cadena es otra cosa que tengo


pendiente,
> ya que encripto la cadena en un PC y cuando la desencripto en otro me


da
> un
> error porque no la desencripta de igual forma. La clase que utilizo es
> esta:
>
> public class CifradorDatos : Win32DPAPI
> {
> public CifradorDatos(DPAPIStore tempStore) : base(tempStore)
> {
> }
>
> public string Cifrar(string plainText, byte[] optionalEntropy)
> {
> byte[] data;
> byte[] dataCifrado;
> data = System.Text.Encoding.Unicode.GetBytes(plainText);
> dataCifrado = Encrypt(data, optionalEntropy);
> return Convert.ToBase64String(dataCifrado);
> }
> public string Descifrar(string cipherText, byte[] optionalEntropy)
> {
> byte[] dataCifrado;
> byte[] data;
> dataCifrado = Convert.FromBase64String(cipherText);
> data = Decrypt(dataCifrado, optionalEntropy);
> return System.Text.Encoding.Unicode.GetString(data);
> }
> }
> No sé si me puedes ayudar.
> Gracias y un saludo.
>
> "Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com>


escribió
> en
> el mensaje news:
>> Tienes varias opciones:
>> - Utilizar las directivas condicionales de compilación de la siguiente
>> forma:
>> #if DEBUG
>> connection = "cadena conexion desarrollo"
>> #else
>> connection = "cadena conexion produccion"
>> #endif
>> - Puedes utilizar el ficheros de configuración, obteniendo la candena


de
>> conexión de dicho fichero y cambiando esta cadena cuando subas el


sistema
> a
>> producción.
>> connection = ConfigurationSettings.AppSettings["CNX_STR"];
>>
>> Personalmente me gusta mas esta ultima opción, pero utilizando alguna
>> tecnica de encriptación para evitar que sea visible.
>>
>> Un Saludo,
>>
>> Miguel Angel Campos
>> MCAD.NET
>>
>> "Diego (DCD)" escribió en el mensaje
>> news:%
>> > Hola, seguro que es una tonteria pero bueno, es posible saber cuando


el
>> > depurador de .net está en modo debug o en modo release.
>> >
>> > Necesito que en partes de código, por ejemplo cuando asigno la cadena
>> > de
>> > conexión, que cuando esté en modo debug me ejecute que coja la cadena
>> > de
>> > conexión de mi BBDD de desarrollo y cuando esté en modo release que


lo
>> > haga
>> > de la bbdd de producción. Algo así como
>> >
>> > i f debug then
>> > connection = "cadena conexion desarrollo"
>> > else
>> > connection = "cadena conexion produccion"
>> >
>> > Saludos y gracias.
>> >
>> >
>>
>>
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida