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 d’application de Windows Forms facilite la création, le stockage et la gestion des préférences personnalisées des applications et des utilisateurs sur l’ordinateur client. Avec les paramètres d’application Windows Forms, vous pouvez stocker non seulement les données d’application telles que les chaînes de connexion de base de données, mais également les données spécifiques à l’utilisateur, telles que les préférences de l’application utilisateur. À l’aide de Visual Studio ou de code managé personnalisé, vous pouvez créer de nouveaux paramètres, les lire et les écrire sur disque, les lier aux propriétés de 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.
Qu’est-ce que les 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 de données spécifiques à l’utilisateur actuel. La plupart des applications, par exemple, ont des préférences utilisateur qui personnalisent l’apparence et le comportement de l’application.
Les paramètres d’application traitent les deux besoins en fournissant un moyen simple de stocker les paramètres d’étendue d’application et d’étendue utilisateur sur l’ordinateur client. À l’aide de Visual Studio ou d’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 son étendue (application ou utilisateur). Vous pouvez même placer des paramètres associés dans des groupes nommés pour faciliter l’utilisation et la 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 fonctionnent en enregistrant les données sous forme de XML dans différents fichiers de configuration (.config), selon qu’il s’agit de paramètres à portée d'application ou à portée d'utilisateur. Dans la plupart des cas, les paramètres d’étendue de l’application sont en lecture seule ; étant des informations du programme, vous n’aurez généralement pas besoin de les modifier. En revanche, les paramètres définis par l’utilisateur peuvent être lus et écrits en toute sécurité au moment de l’exécution, même si votre application s’exécute sous une confiance partielle. Pour plus d’informations sur la confiance partielle, consultez Sécurité dans la vue d'ensemble Windows Forms.
Les paramètres sont stockés en tant que fragments XML dans les fichiers de configuration. Les paramètres d’étendue de l’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>
dans application.exe.config pour fournir des valeurs par défaut pour les paramètres définis par l’utilisateur.
Les contrôles personnalisés peuvent également enregistrer leurs propres paramètres en implémentant l’interface IPersistComponentSettings, qui expose la méthode SaveSettings. Le contrôle ToolStrip Windows Forms implémente cette interface pour enregistrer la position des barres d’outils et des éléments de barre d’outils entre les sessions d’application. Pour plus d’informations sur les contrôles personnalisés et les paramètres d’application, consultez Paramètres d’application pour les contrôles personnalisés.
Où sont stockés les paramètres délimités par l’utilisateur
Le fournisseur par défaut, LocalFileSettingsProvider, stocke les paramètres définis par l’utilisateur dans le dossier LocalApplicationData. Si ce dossier n’est pas disponible, le dossier ApplicationData est utilisé. Un sous-dossier spécifique à l’application est créé pour stocker le fichier de paramètres spécifiques à l’utilisateur. Le nom de ce dossier est basé sur trois attributs concernant l'assemblage principal de l'application.
- Le CompanyNamede l'assembly.
- Valeur hachée basée sur deux informations :
- Le FriendlyNamede l'assembly. Si
FriendlyName
n’est pas disponible, le ProductName est utilisé. - Le StrongName de l’assembly s’il est disponible, sinon le chemin d’accès absolu au dossier de l’assembly est utilisé.
- Le FriendlyNamede l'assembly. Si
- Chaîne AssemblyName.Version.
Si l’un des détails de l’assembly précédent change, les paramètres définis au niveau 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 valeur AssemblyName.Version
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éfinis 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, le contrôle d’hébergement dans Internet Explorer ou les compléments et projets Microsoft Outlook.
Actuellement, 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. Vous pouvez généralement contourner ces problèmes en enregistrant et en chargeant ces paramètres par programmation.
Les paramètres d’application n’ont pas d’installation intégrée pour chiffrer automatiquement les informations. Vous ne devez jamais stocker les informations relatives à la sécurité, telles que les mots de passe de base de données, en texte clair. Si vous souhaitez stocker ces informations sensibles, vous en tant que développeur d’applications sont chargés 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 Windows et de ne pas recourir à des mots de passe codés en dur dans l’URL. Pour plus d’informations, consultez sécurité d’accès au code et 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 s’occupe également de lier le paramètre à une propriété sur un formulaire ou un contrôle afin que les paramètres du contrôle soient restaurés automatiquement lorsque son formulaire est affiché et enregistré automatiquement lorsque le formulaire est fermé.
Si vous souhaitez un contrôle plus détaillé sur vos paramètres, vous pouvez définir votre propre classe wrapper de paramètres d’applications personnalisées. Pour ce faire, dérivez une classe de ApplicationSettingsBase, en ajoutant une propriété qui correspond à chaque paramètre et en appliquant des attributs spéciaux à ces propriétés. Pour plus d’informations sur la création de classes wrapper, consultez architecture des paramètres d’application.
Vous pouvez également utiliser la classe Binding pour lier des paramètres par programmation aux propriétés sur les formulaires et les contrôles.
Voir aussi
- ApplicationSettingsBase
- SettingsProvider
- LocalFileSettingsProvider
- IPersistComponentSettings
- Comment : valider les paramètres d’application
- gestion des paramètres d’application (.NET)
- Aide et Astuces : lire des paramètres au moment de l'exécution avec C#
- Utilisation des paramètres d'application et des paramètres utilisateur
- architecture des paramètres d’application
- paramètres d’application pour les contrôles personnalisés
.NET Desktop feedback