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

Dotnet Discussion :

[VS2005][FWK2.0] Paramètres d'application partagés.


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 110
    Par défaut [VS2005][FWK2.0] Paramètres d'application partagés.
    Bonjour,

    J'ai un site Web en ASP.NET (une partie Web et une librairie de classes en .DLL) et aussi deux services Windows. (Le tout en VB.NET, sous VS2005, avec le framework 2.0)

    Je cherche un moyen pour offrir une source commune de paramètres à chaque partie.

    Pour le web, j'ai le fichier web.config et la section AppSettings.
    Pour mes services : chacun ont leur monservice.exe.config où je retrouve les valeurs de My.Settings.

    Je me demandais donc si je pouvais plutôt avoir un fichier unique... ?? Et si c'est une bonne idée...

    Et par extension :

    Je me demandais aussi comment avoir des paramètres pour un CSS (les couleurs !) et où les stocker...
    Un CSS n'a pas de variables.. non ? Si je veux changer les couleurs # ou RGB(), c'est pénible... même si le CSS réunit déjà toutes les mises en forme des pages Web. Plusieurs fois une couleur peut apparaître dans mon fichier .css.
    Pour personnaliser, je pensais à ce genre de solution :
    Faire un fichier CSS modèle avec des noms de "variables" perso au lieu des valeurs des couleurs et au démarrage de l'appli Web, lire mon CSS modèle et remplacer les variables par des valeurs issues d'une table (fichier XML ? Objet sérialisé ? ...) et créer ainsi un fichier CSS personnalisé. Qu'en pensez-vous ? Je ne sais pas si le fait de toucher au CSS au démarrage de l'appli n'entraine pas de problèmes de compilation où je ne sais quoi...

    Merci pour vos suggestions !

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    si tu modifie le fichier CSS ca le fait pas... avant qu'ilsoit importé par le browser, si en revanche tu envoie directement le CSS au navigateur tues libre de procéder comme bon te semble.

    System.Configuration utilise un moteur XML puisque c'est du XML.
    Toutes tes appli utilisent de l'XML non ?
    fait ton propre modèle de fichier de config, charge le fichier dans un XmlDocument puis traite chaque noeud en conséquence...

  3. #3
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 110
    Par défaut
    Bonjour cinemania,

    Merci pour ta réponse.

    Il faut que je regarde ce qu'est un XmlDocument... Je n'ai jamais utilisé les classes liées à l'XML. Je vais me documenter un peu.

    Mais est-ce bien de faire son propre fichier et de laisser de côté le AppSettings de Web.config et les monservice.exe.config de mes services ?

    Pour le CSS, es-tu sûr que ça pose pb d'en générer en utilisant l'événement Application_Start (ortho ?) du fichier Global.asax ? Pour moi, à la levée de cet événement, le CSS n'a pas encore été utilisé (et je ne crois pas que ce genre de fichier soit compilable).

    si en revanche tu envoie directement le CSS au navigateur tues libre de procéder comme bon te semble
    Heu... Je sais juste mettre le lien dans une page Web vers le fichier CSS. Mais je ne comprends pas comment 'envoyer' un CSS vers le navigateur ?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    un fichier HTML c'est une entete <head>...</head> et un corps <body>...</body>

    or dans le head il est possible de définir les styles plutot qu'un lien vers un fichier, grace à la balise <style>...</style> au lieu de <link ... />
    donc tout le contenu de ton css peut etre mis dans cette balise style

    ca t'évite de générer un fichier sur disque qu'il faudra sinon détruire...
    en plus si tu le génere tu va faire comment pour le nom de fichier...
    car tous les clients n'aurons pas le meme css je pense donc...

    Pour ce qui est des configs, les app.settings, webconfig et autre sont bien pour les applications qui fonctionnent seules, repliées sur elles memes. or ton système est composé de plusieurs applicatifs avec chacune une config qui au final devrait etre la meme...
    Il est donc préférable d'utiliser ton propre moteur de configuration grace au moteur XML de C#. C# gère très bien XML, et même très rapidement.

    si ton fichier ressemble à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <settings>
       <var key="truc" value="machin" />
       <var key="bidule" value="muche" />
       ...
    </settings>
    le code suivant permet de lire tes ressources :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    XmlDocument doc = new XmlDocument();
    doc.Load("fichier.xml");
    XmlNode settings = doc.DocumentElement;
    foreach (XmlNode node in settings.ChildNodes) {
      if (node.NodeType != NodeType.Element && node.LocalName != "var") continue;
      string varname = node.Attributes["key"];
      string value = node.Attributes["value"];
      /// Ici tu met ton traitement pour ces variables... tu peux les stocker dans un dictionary.
    }
    settings est le noeud racine de ton XML.

  5. #5
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 110
    Par défaut
    Bonjour,

    Ah d'accord, tu parlais du CSS écrit directement dans le HTML.

    Je crois que je t'ai induit en erreur avec l'expression "CSS personnalisé" !
    En effet, il semble que tu penses que je souhaite personnaliser mon CSS pour chaque utilisateur (d'où ta remarque sur le nom du fichier).

    Je me suis mal exprimé alors !
    En fait, tous mes fichiers ont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" type="text/css" href="~/css/stylesheet.css" />
    Le but, c'est que si un jour je dois changer la charte graphique, je n'ai qu'à modifier dans mon fichier XML (j'adopte ta sugestion ! ) et au moment de l'événement Application_Start dans le fichier Global.asax, j'appelle une procédure qui lira mon faux fichier CSS modèle avec ses variables pour générer un CSS portant le nom stylesheet.css avec les valeurs du fichier XML.

    Merci pour ton extrait de code sur le XML.
    Je vais prendre cette solution comme je disais.
    Je suis en VB.NET, j'espère que ça sera pareil dans la gestion que C#.
    (Il faudrait que je me mette au C# un de ces jours...)

    Je classe ce fil résolu, mais on peut toujour le continuer si d'autres ont des idées différentes.

    Merci encore.

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

Discussions similaires

  1. partager des paramètres entre applications web
    Par ettenips dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 21/03/2007, 22h47
  2. [C#][VS 2005] Paramètres d'applications et mises à jour
    Par giloutho dans le forum Windows Forms
    Réponses: 1
    Dernier message: 04/04/2006, 10h38
  3. Réponses: 3
    Dernier message: 09/01/2006, 17h35
  4. Réponses: 1
    Dernier message: 02/01/2006, 20h05
  5. Renvoi de paramètre par application DOS
    Par frenchie_st dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/11/2005, 09h40

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