elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Preguntas generales de configuracion de Aplicacion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Preguntas generales de configuracion de Aplicacion  (Leído 3,339 veces)
Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Preguntas generales de configuracion de Aplicacion
« en: 19 Noviembre 2009, 23:56 pm »

Hola gente, les comento que hasta hace unos dias, utilizaba variables blogables en mi sistema de la siguiente manera:
Ingresaba a las propiedades del proyecto, entraba a CONFIGURACIONES, agregaba supongamos un Boolean llamado: "Ejemplo" marcado con el valor TRUE.

Supongamos que la aplicacion tiene un boton que cambia el valor actual, al opuesto, o sea, si es TRUE, pasa a FALSE, y si es FALSE, pase a TRUE. Y en un LABEL, se mostraba el valor actual de la variable "EJEMPLO", el cual (el label) se cargaba con el valor al iniciar el software, y al modificarse precionando el boton, tambien se modificaba en el label.

El codigo para modificar, era:
My.Settings.Ejemplo = XXXX
Al terminar la modificacion, hacía un:
My.settings.save()


Supongamos que cambiaba el valor 1 vez, y quedaba en false.
SUpongamos luego, que cierro la aplicacion, y la desisntalo.
En la carpeta de instalacion, no quedaba nada, es mas, al instalar la aplicacion con un isntalador, al desinstalar, no quedaba ni la carpeta de instalacion.
Supongamos ahora, que vuelvo a instalar la aplicacion.
Al iniciarce, el valor de "Ejemplo", era FALSE. (y tenía que ser TRUE).
Nunca entendí porque me daba ese problema... Como si el valor de la variable Ejemplo, quedase guardado en algun lugar del PC, y que al desinstalar la aplicacion, no se borrara el valor, y que tampoco se sobreescriba al reinstalar la aplicacion.

(me gustaria que me den alguna ayuda de PORQUE PASA ESO?)

Pero continuo con la pregunta:
Viendo este problema, me dijeron que utilice el System.configuration.configurationmanager para crear variables globales y eso. OK
En mi app.confiig, tengo los siguientes datos:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.diagnostics>
        <sources>
            <!-- En esta sección se define la configuración del registro para My.Application.Log -->
            <source name="DefaultSource" switchName="DefaultSwitch">
                <listeners>
                    <add name="FileLog"/>
                    <!-- Quite los comentarios de la sección posterior para escribir en el registro de eventos de la aplicación -->
                    <!--<add name="EventLog"/>-->
                </listeners>
            </source>
        </sources>
        <switches>
            <add name="DefaultSwitch" value="Information" />
        </switches>
        <sharedListeners>
            <add name="FileLog"
                 type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
                 initializeData="FileLogWriter"/>
            <!-- Quite los comentarios de la sección posterior y reemplace APPLICATION_NAME con el nombre de su aplicación para escribir en el registro de eventos de la aplicación -->
            <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
        </sharedListeners>
    </system.diagnostics>
</configuration>

Me gustaria que me digan si algunos de esos datos estan de mas, porque yo nunca los escribi, pero bueno.. continuo:
Agregé las siguientes lineas, como me lo dijeron que haga:
  <appSettings>
    <add key="Nuevo" value="True" />
    <add key="Actualizacion" value="" />
    <add key="Database" value="" />
  </appSettings>

Y el archivo app.config, me quedó así al final:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.diagnostics>
        <sources>
            <!-- En esta sección se define la configuración del registro para My.Application.Log -->
            <source name="DefaultSource" switchName="DefaultSwitch">
                <listeners>
                    <add name="FileLog"/>
                    <!-- Quite los comentarios de la sección posterior para escribir en el registro de eventos de la aplicación -->
                    <!--<add name="EventLog"/>-->
                </listeners>
            </source>
        </sources>
        <switches>
            <add name="DefaultSwitch" value="Information" />
        </switches>
        <sharedListeners>
            <add name="FileLog"
                 type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
                 initializeData="FileLogWriter"/>
            <!-- Quite los comentarios de la sección posterior y reemplace APPLICATION_NAME con el nombre de su aplicación para escribir en el registro de eventos de la aplicación -->
            <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
        </sharedListeners>
    </system.diagnostics>
  <appSettings>
    <add key="Nuevo" value="True" />
    <add key="Actualizacion" value="" />
    <add key="Database" value="" />
  </appSettings>
</configuration>


Ahora bien, supongamos que tengo que leer los datos de la variable: "Nuevo"
tengo que hacer ésto:
MsgBox(System.ConfigurationConfigurationManager.AppSettings.Get("Nuevo"))
o
MsgBox(System.ConfigurationConfigurationManager.AppSettings("Nuevo"))
??????
Y para modificar el valor? que tengo que hacer?

Muchas gracias por sus ayudas!!


En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Preguntas generales de configuracion de Aplicacion
« Respuesta #1 en: 20 Noviembre 2009, 01:10 am »

Código:
<appSettings>
    <add key="Nuevo" value="True" />
    <add key="Actualizacion" value="" />
    <add key="Database" value="" />
  </appSettings>

Porque los agregaste? el visual studio deberia haberlos agregados automaticamente en la edicion de las variables globales. Sabes que, dejate de hacer lio, y hacete una clase para guardarte tus propiedades (algo al estilo fichero INI o inventa un formato). Es raro esto de las variables globales, pero no creo que sea obligatorio usarlas, ademas sos programador, cuando no existia este visual studio se tenia que hacer asi xD xD


En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Preguntas generales de configuracion de Aplicacion
« Respuesta #2 en: 20 Noviembre 2009, 01:45 am »

Pero, ya lo tengo...
Mira..

Ahora tengo un problema al refrescar solamente...

Ésto hago en el metodo principal:

MsgBox(ConfigurationManager.AppSettings.Get("Nuevo"))
        GuardarConfig("Nuevo", "456345634653465")  <<< Aca llamo al metodo que describo abajo
        ConfigurationManager.RefreshSection("appSettings")
        MsgBox(ConfigurationManager.AppSettings.Get("Nuevo"))



    Private Sub GuardarConfig(ByVal Nombre As String, ByVal Valor As String)
        ' Creamos un objeto Configuration, mediante el método OpenExeConfiguration
        Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(Application.StartupPath & "\VIDay.exe")
        ' Obtenemos el objeto AppSettingsSection
        Dim aps As AppSettingsSection = config.AppSettings
        ' Leemos el valor del elemento Area
        'MessageBox.Show(aps.Settings.Item(Nombre).Value)
        ' Establecemos su nuevo valor
        aps.Settings.Item(Nombre).Value = Valor
        ' Guardamos los valores del objeto Configuration
        ' en el archivo de configuración XML actual.
        config.Save(ConfigurationSaveMode.Modified)
    End Sub


Y mi app.config se modifica PERFECTAMENTE luego de terminar el metodo GuardarConfig, pero al entrar a éstas 2 lineas:
        ConfigurationManager.RefreshSection("appSettings")
        MsgBox(ConfigurationManager.AppSettings.Get("Nuevo"))
No está leyendo el nuevo dato que le agregué... tDigamos que solo tengo un problema al refrescar...

Y si reinciio la aplicacion, el dato  "456345634653465", que tendría que ser el nuevo, ya que lo agregué en el metodo,... es leido perfectamente..

Digamos que tengo un problema en ésta linea:
        ConfigurationManager.RefreshSection("appSettings")

No esta funcionando como debe
En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Preguntas generales de configuracion de Aplicacion
« Respuesta #3 en: 20 Noviembre 2009, 01:53 am »

Disculpen, Disculpen..

Funciona Perfectamente...
El problema es que en DUBUG, dandole F5 al VIsual Studio, da problemas en este tema...


Seguramente en estos dias hay un tutorial de variables GLobales.. Porque me quemó la cabeza hacer todo ésto... Por diferentes problemas...
y lo publico aqui, en otro tema nuevo..

Saludos.
Cierro el tema..
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modems adsl versus routers wifi - problemas generales de configuración. CONSULTA
Redes
vmspinardi 0 1,877 Último mensaje 20 Agosto 2013, 22:54 pm
por vmspinardi
Recomendaciones generales tanto conexion fisica de equipos como configuracion logica
Redes
Rayment 0 1,717 Último mensaje 8 Diciembre 2020, 00:59 am
por Rayment
OsTicket - preguntas generales
Foro Libre
AgueroMilano 0 2,000 Último mensaje 30 Junio 2021, 00:02 am
por AgueroMilano
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines