IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Quelle est la meilleurs façon de sauvegarder les paramettres utilisateur ?


Sujet :

VB.NET

  1. #1
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut Quelle est la meilleurs façon de sauvegarder les paramettres utilisateur ?
    Bonjour a tous

    Je suis en interrogation avec moi même être ou ne pas être !

    J'ai fait une petite application portable et je souhaite que cette application soit configurable et bien sur il faut que la configuration soit sauvegarder pour la restaurer a chaque démarrage de l'application

    La question est quelles sont les meilleurs solution !

    Les façons que je pense est :
    - Le dateSet avec le Dataview (mais je sais pas trop comment ça fonctionne)
    - Un fichier XML simple
    - Dans le registre (c'est bien mais pas portable)
    - Dans un fichier INI (mais plus supporté dans le .net il me semble, mais on peux toujours !)

    Il existe pas de contrôle ou de procédure .net qui récupère toute les valeurs de tout les contrôle et qui transforme tout ça en fichier de configuration ?

    Je ne sais vraiment pas quelle est le mieux entre tout ça, j'en ai même certainement oubliée quelle que une !

    Merci pour vos idées et/ou éclaircissent

    Cordialement,

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    utilise les settings définis par visual studio (onglet paramètres dans les propriétés du projet)

  3. #3
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    Effectivement c'est pas mal du tout je connaissait pas !

    J'ai maintenant envie de savoir comment ça fonctionne ce truc
    j'ai bien compris quand je renomme le programme il fallait aussi renommé le nomduprogramme.exe.config

    Mais quand je supprime le fichier de config et que j'exécute le programme j'ai la dernière entrer enregistrer, comment le programme sais ça ?

    exemple tout bête j'ai fait une form1 avec un label1 dans la partie paramètre j'ai appelé une "variable" tata string utilisateur "test test", quand je j'exécute le programme j'ai bien un label1 qui a une valeur "test test", donc la tout est OK pour moi, mais quand je copie le programme dans un autre dossier sans setting et que je ré exécute le programme il y a toujours le label1 avec la valeur "test test"
    comment le programme connais la valeur puis qu'il y a plus de valeur setting ?
    j'ai fais aussi un autre test dans le dossier j'ai simplement renommé le programme et copier le config dans le même dossier avec une valeur différente au niveau du label1 et ré exécuté le programme il a bien pris la valeur que j'ai modifié dans le config
    mais quand j'efface le config il y a toujours la dernier valeur comment il sais ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Le fichier nomduprogramme.exe.settings ne contient pas les paramètres de l'utilisateur, mais des paramètres d'application. Les paramètres de l'utilisateur sont dans un fichier user.config planqué au fond d'un répertoire du profil utilisateur avec un nom impossible...
    Donc ça ne change rien si tu déplaces l'exe...

  5. #5
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Personnellement, je prefere la solution utilisant la bdr qui est la solution la plus facile a mettre en place (aussi à l'utilisation)
    Les acces sont rapides et on peut gerer le soft pour tous les comptes et/ou individuellement.
    Deplus, c'est la solution de la grosse majorite des softs.

    Si tu as besoin de pouvoir exporter les valeurs, tu crées une petite routine qui les copies tout simplement dans un fichier txt.
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Question facilité de mise en oeuvre / utilisation, je pencherai plus pour les settings intégrés à VS ou une basique serialization XML vers un fichier XML qui permet de gérer soit même l'endroit où ce fichier est. Il suffit de créer une classe avec les propriétés voulues, ça prend 1 ligne pour enregistrer, 1 ligne pour charger.
    Si je me rappelle bien j'ai vu trainer un jour un article de Microsoft qui disais que les fichiers xml c'était mieux que la bdr vu qu'au final on l'alourdissait pour rien. Et puis le pire avec un fichier xml c'est de perdre la config : le pire avec la bdr c'est de tuer Windows et pour exporter les config suffit de copier le xml, pour la bdr c'est pas aussi simple.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Danyel Voir le message
    Personnellement, je prefere la solution utilisant la bdr qui est la solution la plus facile a mettre en place (aussi à l'utilisation)
    Euh... tu trouves vraiment que c'est plus simple d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto.Text = My.Computer.Registry.CurrentUser.OpenSubKey("Software\MaSociete\MonProgramme").GetValue("MonParametre")
    que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto.Text = My.Settings.MonParametre



    Citation Envoyé par Danyel Voir le message
    Les acces sont rapides
    Mouais, la différence doit pas être flagrante... à moins que tu aies des milliers de paramètres à charger, mais dans ce cas c'est peut-être plus très judicieux de considérer ça comme des paramètres

    Citation Envoyé par Danyel Voir le message
    Deplus, c'est la solution de la grosse majorite des softs.
    Autrefois sans doute... mais il me semble que c'est de moins en moins vrai. Je vois de plus en plus de softs qui utilisent un fichier de conf dans le répertoire du profil utilisateur

    Citation Envoyé par Danyel Voir le message
    Si tu as besoin de pouvoir exporter les valeurs, tu crées une petite routine qui les copies tout simplement dans un fichier txt.
    Avec les settings intégrés, il suffit de copier le fichier
    Bon, j'avoue qu'il est pas très facile à trouver... à mon sens c'est le principal inconvénient de ce système : n'avoir aucun contrôle sur l'emplacement du fichier...

    Citation Envoyé par smyley Voir le message
    une basique serialization XML vers un fichier XML qui permet de gérer soit même l'endroit où ce fichier est. Il suffit de créer une classe avec les propriétés voulues, ça prend 1 ligne pour enregistrer, 1 ligne pour charger.
    +1
    J'aime bien cette solution aussi, c'est presque aussi facile à utiliser que les settings intégrés de VS

  8. #8
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    J'ai encore deux questions sur le setting

    J'ai vu que les valeurs du setting ce trouve dans le fichier MonProgramme.exe.config
    donc quand je donne mon programme a une personne X il faut qu'il est aussi le fichier config ou pas ?

    Et c'est quoi la différence entre "Application" et "Utilisateur" dans Paramètre ?


    Envoyé par smyley
    une basique serialization XML vers un fichier XML qui permet de gérer soit même l'endroit où ce fichier est. Il suffit de créer une classe avec les propriétés voulues, ça prend 1 ligne pour enregistrer, 1 ligne pour charger.
    +1
    J'aime bien cette solution aussi, c'est presque aussi facile à utiliser que les settings intégrés de VS
    Il est vrais aussi quand on code avec du Framework 2.0 ?
    j'ai vu qu'avec la version 3.5 pour faire du XML c'est devenue facile qui a rien a voir avec la version 2.0

  9. #9
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par troxsa Voir le message
    donc quand je donne mon programme a une personne X il faut qu'il est aussi le fichier config ou pas ?
    Oui, mais le fichier contenant les settings de l'utilisateur sera crée par le framework.

    Citation Envoyé par troxsa Voir le message
    Il est vrais aussi quand on code avec du Framework 2.0 ?
    j'ai vu qu'avec la version 3.5 pour faire du XML c'est devenue facile qui a rien a voir avec la version 2.0
    Depuis le framework 2.0 on peut faire de la serialisation ie. du xml sans jamais avoir à faire le moindre accès au xml. Suffit juste d'un XmlSerializer.Serialize, je connais pas plus simple.

  10. #10
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    En gros, ce que tu me dis c'est de créer un setting application que d'utilisateur

    je vais voir la méthode de serialisation XML, j'ai jamais fais j'espère que c'est pas trop prise de tête

    Merci a tous

  11. #11
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Euh... tu trouves vraiment que c'est plus simple d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto.Text = My.Computer.Registry.CurrentUser.OpenSubKey("Software\MaSociete\MonProgramme").GetValue("MonParametre")
    que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto.Text = My.Settings.MonParametre
    Effectivement, ca peut le faire
    A vrai dire, j'ai fait mes propres routines d'acces à la bdr et je definis juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LectureBdR(data)
    EcritureBdR(data)
    ...
    Citation Envoyé par tomlev Voir le message
    Bon, j'avoue qu'il est pas très facile à trouver... à mon sens c'est le principal inconvénient de ce système : n'avoir aucun contrôle sur l'emplacement du fichier...
    Oui c'est peu convivial en effet.
    Mais dans les 2 cas, et dans le but d'un export, il faut le faire à la main ... donc

    En fait, je pense que c'est plus un choix propre de choisir tel ou tel moyen, mais tous sont utilisables avec leurs qualites et leurs defauts.
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  12. #12
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    Citation Envoyé par Danyel Voir le message

    En fait, je pense que c'est plus un choix propre de choisir tel ou tel moyen, mais tous sont utilisables avec leurs qualites et leurs defauts.
    effectivement, je trouve que le setting représente un désavantage dans le sens ou l'application doit être portable sur plusieurs machines
    le seul desavantange est quand on veut attribuer une valeur a un des settings
    exemple : My.settings.MaValeur = TextBox1.Text
    La valeur est bien enregistrée mais pas dans le fichier app.exe.config il doit être dans le user.config avec ce fameux nom incompréhensible de ce fait l'application ne peut pas être transportable a moins de trouvé le fichier ...

    je vais donc me pencher vers la serialisation XML, mais pour le moment je nage un peux dans cette méthode.

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par troxsa Voir le message
    La valeur est bien enregistrée mais pas dans le fichier app.exe.config il doit être dans le user.config avec ce fameux nom incompréhensible de ce fait l'application ne peut pas être transportable a moins de trouvé le fichier ...
    Ben de toutes façons, tu ne peux pas placer le fichier dans le répertoire de l'application (à moins de ne pas le modifier) si tu veux être compatible Vista... Les fichiers de Program Files ne sont modifiables que si tu exécutes le programme en mode admin

  14. #14
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    J'ai choisi la serialisation XML pour ça facilité d'utilisation

    Petit exemple tout bête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            Dim ser As XmlSerializer = New XmlSerializer(GetType(ArrayList))
            Dim aL As New ArrayList
            For i As Integer = 0 To 10
                aL.Add("valeur" & i)
            Next
            Dim w As New StreamWriter("monpremierserialize.xml")
            ser.Serialize(W, aL)
    Le setting me posait un problème dans le sens ou la configuration du setting n'est pas transportable

    le registre est facile a utiliser, mais pas aussi portable qu'un fichier XML

    je vous remercie beaucoup de m'avoir aidé a prendre une décision, ça m'a permis en même temps d'apprendre pas mal de chose, 1 : sur le setting, 2 : sur la serialization XML

    bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelle est la meilleure façon d’évaluer les compétences d’un développeur ?
    Par Michael Guilloux dans le forum Débats sur le développement - Le Best Of
    Réponses: 47
    Dernier message: 17/07/2015, 14h32
  2. Réponses: 10
    Dernier message: 25/09/2008, 08h49
  3. Réponses: 16
    Dernier message: 18/08/2008, 18h29
  4. Quelle est la meilleure façon de lisser un signal?
    Par regress dans le forum Traitement du signal
    Réponses: 16
    Dernier message: 06/02/2008, 12h36
  5. Réponses: 3
    Dernier message: 09/05/2006, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo