none
Cual es la mejor manera de manejar y almacenar la ConnectionString al cargar la aplicación RRS feed

  • Pregunta

  • Puesto que app.config se integra al Exe, no es posible modificarlo en tiempo de ejecución?

    Y si no es posible...

    Puesto que normalmente manejamos una ConectionString provisional para las pruebas mientras que se desarrolla la aplicación...

    ¿Como cargamos o modificamos la connectionString en la applicacion una vez que esta pasa al ambiente de produccion final?

    ¿Como almacenar, modificar ( en caso de cambio de server sql) la connectionstring de una aplicación sin tener que compliar de nuevo? ¿Cual seria la seguridad en ese caso?

    En otras palabras, ¿Como implementar la factibilidad de introducir, editar la connectionstring (y guararla) en una aplicación ya complilada?


    Luis C


    jueves, 24 de octubre de 2019 20:50

Respuestas

  • Hola Luis, se me ocurre en MySettings, Generas un string colocas la conexión de proyecto de la base de datos, luego extraerla modificar y volver a guardar Ej.  My.Settings.Save() ya con la conexión de producción. En cuanto a la seguridad, puedes encriptarla con algún método y al momento de acceder, primero decodificarla. Esto te obligaría a guardar el string de conexión del proyecto previamente encriptada, o sea, tendras que desarrollar un encriptador en un nuevo proyecto, encriptar la conexión de trabajo en proyecto y luego agregarla a Settings, y generar en el actual proyecto con el mismo método de encirptación .Entonces la conexion string sería ConectionString = encirptador + My.Settings + desencriptar . El string de conexión no se verá en ningún desensamblador. Ten presente que el cambio de Settings no se verá realizado en tiempo de Proyecto, ya que al generar siempre se generara lo que pongas por defecto, cambia en Producción.

    Saludos

    Ej tatamiento de settings

       My.Settings.ConString = "Nueva Conexión a base de datos en producción"
            My.Settings.Save()
            MessageBox.Show(My.Settings.ConString)


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗


    • Editado Marcelo PF viernes, 25 de octubre de 2019 5:13
    • Marcado como respuesta Luis Carlos H viernes, 25 de octubre de 2019 16:45
    viernes, 25 de octubre de 2019 4:35

Todas las respuestas

  • Hola Luis, se me ocurre en MySettings, Generas un string colocas la conexión de proyecto de la base de datos, luego extraerla modificar y volver a guardar Ej.  My.Settings.Save() ya con la conexión de producción. En cuanto a la seguridad, puedes encriptarla con algún método y al momento de acceder, primero decodificarla. Esto te obligaría a guardar el string de conexión del proyecto previamente encriptada, o sea, tendras que desarrollar un encriptador en un nuevo proyecto, encriptar la conexión de trabajo en proyecto y luego agregarla a Settings, y generar en el actual proyecto con el mismo método de encirptación .Entonces la conexion string sería ConectionString = encirptador + My.Settings + desencriptar . El string de conexión no se verá en ningún desensamblador. Ten presente que el cambio de Settings no se verá realizado en tiempo de Proyecto, ya que al generar siempre se generara lo que pongas por defecto, cambia en Producción.

    Saludos

    Ej tatamiento de settings

       My.Settings.ConString = "Nueva Conexión a base de datos en producción"
            My.Settings.Save()
            MessageBox.Show(My.Settings.ConString)


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗


    • Editado Marcelo PF viernes, 25 de octubre de 2019 5:13
    • Marcado como respuesta Luis Carlos H viernes, 25 de octubre de 2019 16:45
    viernes, 25 de octubre de 2019 4:35
  • Puesto que app.config se integra al Exe, no es posible modificarlo en tiempo de ejecución?

    No, no. El app.config no se integra al exe. Al compilar, se copia a nombreDelPrograma.exe.config. Este fichero .config (que dentro tiene lo mismo que habia en el app.config) se debe copiar a la misma carpeta del .exe, para que el .exe lo lea automaticamente en tiempo de ejecucion. Por dentro es un fichero de texto, que se puede moficar despues de instalado el programa. La limitacion es que si lo modificas, los cambios no se leen hasta que detienes el .exe y lo vuelves a ejecutar, porque mantiene cacheados en memoria los valores que leyo la primera vez al arrancarlo.

    viernes, 25 de octubre de 2019 11:45
  • Y es posible hacerlo programaticamente desde la aplicacion? seria sencillamente editar el xml del nombreDelPrograma.exe.config? Y si se hace, tendria que reiniciarse el programa...?

    Luis C


    viernes, 25 de octubre de 2019 16:16
  • Gracias! una magnifica idea

    Luis C

    viernes, 25 de octubre de 2019 16:17
  • Hola Luis, no se a quien pregutnas

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    viernes, 25 de octubre de 2019 16:20
  • Gracias Marcelo, la opcion de manejar My.Settings me pareció idonea. Guardarla encriptada.

    Luis C

    viernes, 25 de octubre de 2019 16:47