Vue d'ensemble des paramètres d'application

Cet article explique comment créer et stocker des données de paramètres pour le compte de votre application et de vos utilisateurs.

La fonctionnalité Paramètres des applications de Windows Forms simplifie la création, le stockage et la gestion des applications personnalisées et des préférences utilisateur sur l’ordinateur client. Avec les paramètres des applications Windows Forms, vous pouvez stocker non seulement des données d'application telles que des chaînes de connexion de base de données, mais également des données spécifiques à l'utilisateur, telles que les préférences des applications utilisateur. À l'aide de Visual Studio ou de code managé personnalisé, vous pouvez créer de nouveaux paramètres, les lire et écrire sur disque, les lier à des propriétés sur vos formulaires et valider les données des paramètres avant le chargement et l'enregistrement.

Les paramètres d’application permettent aux développeurs d’enregistrer l’état dans leur application à l’aide de très peu de code personnalisé et est un remplacement des propriétés dynamiques dans les versions précédentes du .NET Framework. Les paramètres des applications contiennent de nombreuses améliorations par rapport aux propriétés dynamiques, qui sont en lecture seule, à liaison tardive et nécessitent davantage de programmation personnalisée. Les classes de propriétés dynamiques ont été conservées dans .NET Framework 2.0, mais elles sont uniquement des classes shell qui encapsulent les classes de paramètres d’application.

Présentation des Paramètres d’application

Vos applications Windows Forms nécessitent souvent des données critiques pour exécuter l’application, mais que vous ne souhaitez pas inclure directement dans le code de l’application. Si votre application utilise un service web ou un serveur de base de données, vous souhaiterez peut-être stocker ces informations dans un fichier distinct afin de pouvoir la modifier ultérieurement sans recompiler. De même, vos applications peuvent nécessiter le stockage des données spécifiques à l'utilisateur actuel. La plupart des applications, par exemple, offrent des préférences utilisateur qui permettent de personnaliser leur apparence et leur comportement.

Les paramètres d'application répondent à ces deux besoins en fournissant un mécanisme simple de stockage des paramètres de portée application et de portée utilisateur sur l'ordinateur client. Avec Visual Studio ou un éditeur de code, vous définissez un paramètre pour une propriété donnée en spécifiant son nom, son type de données et sa portée (application ou utilisateur). Vous pouvez même placer des paramètres connexes dans des groupes nommés pour faciliter leur utilisation et leur lisibilité. Une fois définis, ces paramètres sont conservés et lus en mémoire automatiquement au moment de l'exécution. Une architecture enfichable permet de modifier le mécanisme de persistance, mais par défaut le système de fichiers local est utilisé.

Les paramètres d'application rendent les données persistantes au format XML dans différents fichiers de configuration (.config) en fonction de la portée du paramètre (application ou utilisateur). Dans la plupart des cas, les paramètres de portée application sont en lecture seule. Comme il s'agit d'informations sur le programme, vous n'aurez généralement pas besoin de les remplacer. En revanche, les paramètres de portée utilisateur peuvent être lus et modifiés en toute sécurité au moment de l'exécution, même si votre application s'exécute en mode de confiance partielle. Pour plus d’informations sur la confiance partielle, consultez Security in Windows Forms Overview.

Les paramètres sont stockés en tant que fragments XML dans des fichiers de configuration. Les paramètres de portée application sont représentés par l'élément <applicationSettings> et sont généralement placés dans application. exe.config, où application est le nom de votre fichier exécutable principal. Les paramètres définis par l’utilisateur sont représentés par l’élément <userSettings> et sont placés dans user.config. Vous devez déployer le fichier app.exe.config avec votre application . L’architecture des paramètres crée le fichier user.config à la demande la première fois que l’application enregistre les paramètres de cet utilisateur. Vous pouvez également définir un bloc <userSettings> dans application.exe.config pour fournir des valeurs par défaut pour les paramètres de portée utilisateur.

Les contrôles personnalisés peuvent aussi enregistrer leurs propres paramètres en implémentant l'interface IPersistComponentSettings , qui expose la méthode SaveSettings . Le contrôle Windows Forms ToolStrip implémente cette interface pour enregistrer la position des barres d'outils et des éléments de barre d'outils d'une session d'application à une autre. Pour plus d’informations sur les contrôles personnalisés et les paramètres d’application, consultez Application Settings for Custom Controls.

Où sont stockés les paramètres délimités par l’utilisateur

Le fournisseur par défaut, LocalFileSettingsProviderstocke les paramètres définis par l’utilisateur dans le LocalApplicationData dossier. Si ce dossier n’est pas disponible, le ApplicationData dossier est utilisé. Un sous-dossier spécifique à l’application est créé pour stocker le fichier de paramètres d’étendue utilisateur. Le nom de ce dossier est basé sur trois attributs sur l’assembly principal de l’application :

  • L’assembly est CompanyName.
  • Valeur hachée basée sur deux informations :
    • L’assembly est FriendlyName. S’il FriendlyName n’est pas disponible, il ProductName est utilisé.
    • L’assembly est StrongName le cas échéant, sinon le chemin d’accès absolu du dossier à l’assembly est utilisé.
  • Chaîne AssemblyName.Version .

Si l’un des détails de l’assembly précédent change, les paramètres antérieurs dans l’étendue de l’utilisateur sont perdus, car un nouveau nom de sous-dossier est généré. Par exemple, si une nouvelle version de l’application est publiée et que la AssemblyName.Version valeur est différente de la version précédente, le nom du sous-dossier utilisé pour stocker les modifications apportées aux paramètres délimités par l’utilisateur. Si les paramètres utilisateur doivent persister entre les versions de l’application, créez un fournisseur de paramètres personnalisés. Pour plus d’informations, consultez Fournisseurs de Paramètres personnalisés.

Limitations des paramètres d'application

Vous ne pouvez pas utiliser les paramètres d’application dans une application non managée qui héberge le .NET Framework. Les paramètres ne fonctionnent pas dans des environnements tels que les compléments Visual Studio, C++ pour Microsoft Office, l'hébergement de contrôles dans Internet Explorer ou les projets et les compléments Microsoft Outlook.

À l'heure actuelle, vous ne pouvez pas établir de liaison à certaines propriétés dans Windows Forms. L'exemple le plus notable est la propriété ClientSize , car une liaison à cette propriété provoque un comportement imprévisible au moment de l'exécution. En règle générale, vous pouvez contourner ces problèmes en enregistrant et en chargeant ces paramètres par programmation.

Les paramètres d'application n'ont aucune fonctionnalité intégrée pour chiffrer automatiquement les informations. Vous ne devez jamais stocker d'informations relatives à la sécurité, telles que des mots de passe de base de données, en texte clair. Si vous souhaitez stocker ce genre d'informations sensibles, en tant que développeur de l'application vous êtes chargé de vous assurer qu'elles sont sécurisées. Si vous souhaitez stocker des chaînes de connexion, nous vous recommandons d'utiliser la sécurité intégrée de Windows et de ne pas recourir au codage en dur des mots de passe dans l'URL. Pour plus d'informations, consultez Code Access Security and ADO.NET.

Prise en main des paramètres d'application

Si vous utilisez Visual Studio, vous pouvez définir des paramètres dans le Concepteur Windows Forms à l'aide de la propriété (ApplicationSettings) dans la fenêtre Propriétés . Lorsque vous définissez des paramètres de cette façon, Visual Studio crée automatiquement une classe wrapper managée personnalisée qui associe chaque paramètre à une propriété de classe. Visual Studio se charge aussi de la liaison du paramètre à une propriété sur un formulaire ou un contrôle pour que les paramètres du contrôle soient restaurés automatiquement quand son formulaire est affiché et enregistrés automatiquement quand le formulaire est fermé.

Si vous souhaitez bénéficier d'un contrôle plus précis sur vos paramètres, vous pouvez définir votre propre classe wrapper de paramètres d'application personnalisée. Pour cela, vous devez dériver une classe de ApplicationSettingsBase, ajouter une propriété qui correspond à chaque paramètre, puis appliquer des attributs spéciaux à ces propriétés. Pour plus d’informations sur la création de classes wrapper, consultez Application Settings Architecture.

Vous pouvez également utiliser la classe Binding pour lier des paramètres par programmation à des propriétés sur des formulaires et des contrôles.

Voir aussi