[C# – ASP.NET] Bonne pratique : ConfigurationManager

Rendre son site web le plus configurable possible sans devoir recompiler une dll est un gain considérable lors du déploiement.

En effet, le site peut changer de site SharePoint, de compte smtp ou encore de  fichier xml par exemple, entre un serveur de dev / prep / prod ou pour tout autres raisons.

Pour cela, il existe un moyen très efficace, utiliser le fameux web.config (pas évident à maitriser) que l’on peut modifier à notre convenance et surtout sans devoir recompiler.

Il n’y a rien de plus simple pour utiliser des variables dans un web.config.

Il faut déjà les déclarer :

<appSettings>
  <add key="SPSiteURL" value="http://dev.sharepoint.com"/>
  <add key="XmlFile" value="~\Content\Xml\products.xml"/>
  <add key="SMTPServer" value="smtp.monsmtp.fr"/>
</appSettings>

Chaque valeur est référencé par une key récupérable n’importe où dans du code C#.

Par exemple, vous avez une fonction qui renvoi la liste des nœuds d’un fichier XML :

public static XmlNodeList DocList(string filename, string property)
{
    try
    {
        var document = new XmlDocument();
        document.Load(HttpContext.Current.Server.MapPath(filename));

        XmlNode node = document.DocumentElement;
        XmlNodeList nodeList = node.SelectNodes(property);
        return nodeList;
    }
    catch (Exception ex)
    {
        Log.Write("Erreur lors le lecture du fichier XML", ex);
        throw;
    }

}
Lors de l’appel de la fonction, il ne vous reste plus qu’à faire appel à la key :
XmlNodeList nodeList = DocList(ConfigurationManager.AppSettings["XmlFile"], "product");

Si visual studio ne vous le propose pas tout seul, il faut rajouter la référence :

using System.Configuration;

Et voilà, en cas de changement, le nouveau fichier sera pris en compte sans devoir toucher à la dll.

Code plus propre et maintenable ! Marche aussi dans une page aspx ou un usercontrol si vous passez côté serveur.

Publicités

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :