-
Stockage de paramètres
Bonjour,
Je suis en train de créer une application windows form pour un projet d'archivage et je dois permettre aux utilisateurs de modifier les "paramètres fonctionnels" de l'application. Par exemple : quel dossier archiver, à quelle fréquence etc...
Pour ce faire , je pense mettre en place un formulaire pour récupérer ces valeurs.
J'ai fait quelques recherches sur la manière de procéder et le "app.config" semblait idéal. Mais j'ai remarqué que sous Visual Studio 2010, il y a plusieurs items qui pourraient jouer le même rôle aussi j'aimerais savoir quelle est la différence entre :
- Fichier de configuration de l'application
- Fichier manifeste de l'application
- Fichier de paramètres
Car ils permettent tous de stocker des paramètres si j'ai bien saisi.
Lequel choisir dans mon cas ?
Merci d'avance,
Toute aide est la bienvenue
K.
-
Salut,
Moi je ferai un fichier de paramétrage, avec les paramètres modifiables sur l'appli winForm.
Tu sérializes l'objet tu le mets dans un fichier. Et au chargement de l'application, tu charges le fichier de paramétrage.
Je trouve que c'est beaucoup plus "flexible" que le app.config.
-
Bonsoir,
Le fichier de paramétrage, c'est le .settings c'est çà ?
Comment fais-tu pour le charger au chargement de l'application ? avec un LoadFile ?
As-tu un exemple s'il te plait ?
Merci pour ton aide :)
-
Effectivement les paramètres d'application (fichier *.settings) représentent la manière la plus flexible de gérer des paramètres, que ce soit au niveau global (application), ou au niveau de chaque utilisateur, individuellement.
Sinon, en cherchant "C# Settings" sur Google, tu devrais trouver ton bonheur ;)
-
Merci beaucoup à tous les deux, je vais regarder tout çà.
Je pensais faire un fichier xml à part pour stocker la liste des dossiers à archiver avec leurs sous répertoires etc... mais au final je peux tout faire dans le même fichier n'est-ce pas ? :D
-
Et pourquoi pas l'utilisation de la base de registre ?
-
La base de registre ? Qu'est-ce que c'est ?
J'aurais une autre question sur un sujet un peu différent pour la même application mais je ne sais pas si je peux la poser ici ou si je dois créer un nouveau sujet...
Je voudrais que mon application se lance elle même dans le planificateur de tâches windows. Au début, je pensais créer une nouvelle tâche dans le code, qui lancerait la partie "archivage" de celui-ci. Mais à priori, on ne peut lancer que des exécutables ? Corrigez-moi si je me trompe.
Mais si je "l'auto-lance" ne risque t-il pas d'y avoir une boucle infinie ? Puisque la 1ere fois mon programme créera d'abord une tâche qui, elle-même lancera le prog qui, lui créera une tache qui lancera le prog, qui...hum vous voyez l'idée ?
Donc existes-t-il une méthode pour éviter cela ? Ou dois-je créer 2 programmes indépendants ? L'un qui va gérer l'archivage et un autre pour lancer dans windows scheduler le 1er sous forme de tâche récursive (tous les jours, tous les mois...etc..) ?
-
Pour les paramètres de l'application tu peux faire un petit tour par là:Paramètres de l'application
Pour éviter de mettre plusieurs fois ton programme dans les tâches planifiée tu peux vérifier s'il ne l'est pas déjà.
Une petit librairie pour utiliser le scheduler en c#: Task Scheduler
Après au choix tu peux créer un exécutable qui ne se charge que de ça ou tu peux appeler ton programme avec un argument pour dire que tu veux exécuter que l'archivage (à toi de coder ça).
(Tu as aussi les applications de service Windows qui peuvent s’exécuter.)
-
Salut,
Code:
utilisation de la base de registre ?
D'après mon expérience, je déconseille d'utiliser la base de registre pour de la conf.
Sur certains PC (non défragmenté peut être), l'accès à la base de registre peut prendre quelques secondes.
Sur mon PC ça prend 3-5 secondes parfois à vue d’œil.
Mais chacun ses goûts :)
Moi pour la conf de mes applications Winform, j'ai une classe Configuration.cs.
Je sérialise l'objet Configuration dans un fichier. Et je charge ce fichier à chaque lancement de l'application en désérialisant. Et ça marche nickel, c'est super simple, et c'est super rapide.