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

VB.NET Discussion :

app.config de la DAL non présent dans le répertoire Debug de GUI


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut app.config de la DAL non présent dans le répertoire Debug de GUI
    Hello,

    J'ai un peu de temps (enfin disons que je le prends) alors je teste l'utilisation du fichier app.config. Jusqu'ici, je faisais mes fichiers de config moi-même mais puisqu'il existe un truc intégré et que ça permet de pas s'emmerder à gérer la lecture (et éventuellement l'écriture) soi-même, autant l'utiliser.

    Bref, j'ai donc une solution avec 4 projets : BLL, DAL, GUI et DTO. Je ne vais pas vous faire l'affront d'expliquer à quoi ils servent.

    J'ai donc défini un setting pour le projet DAL avec la chaîne de connexion à la DB. Je la récupère bien et tout et tout mais pourtant, quand je regarde dans le répertoire Debug du projet GUI, qui est l'endroit où tout se trouve normalement quand on compile mais je n'y vois pourtant pas le fichier app.config contenant la chaîne de connexion pour la DB.

    Est-ce normal ?

    J'aurais bien aimé l'y trouvé pour jour où, pour une raison X ou Y, je dois rediriger la connexion vers un autre serveur.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Il s'appele NomApplication.exe de type XML Configuration FIle
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Oui oui ça je sais ^^

    Je le trouve d'ailleurs bien dans le répertoire debug du projet DAL mais pas dans le celui de GUI.

    Alors c'est p-e une mauvaise pratique mais pour "déployer" (ce n'est pas vraiment pas un déploiement) une application sur le serveur d'application de l'entreprise, je prend les fichier application.exe ainsi que les dll se trouvant dans le répertoire Debug du projet GUI et je les copie à l'emplacement qui va bien sur le serveur.

    C'est pour ça que ça m'ennuie de pas voir le fichier DAL.dll.config dans ce répertoire vu que c'est dans ce fichier que se trouve la chaîne de connexion.

    Je suis d'ailleurs étonné que l'application fonctionne quand je lance l'exe vu que le fichier est absent.

    J'ai tenté de jouer avec les Build Action dans les propriétés du fichier mais à priori, ça ne passe (il y a toujours l'éventualité d'un problème entre le clavier et la chaise)

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Ce que je comprend d'après tes explications
    Quand la DLL DALL se charge, elle va chercher le fichier de config dans son répertoire et trouve la chaîne de connection.

    Si tu souhaites mettre la chaine de connection avec GUI, il faut que tu la définissent dans le fichier de config de ton projet GUI (la elle sera avec ton projet GUI) mais il faudra la passer en paramètre à la DAL.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Je vais tacher de détailler plus être sûr qu'on se comprend bien.

    Dans DAL, j'ai défini un setting (clic droit sur le nom du projet > properties > settings). Dans la classe Base du projet DAL, je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim conStr as String = My.Settings.leNomDuSetting
    Si je compile, je trouve bien le fichier DAL.dll.config dans le répertoire DAL\bin\Debug.

    Ce que je ne comprends pas, c'est pourquoi je ne retrouve pas ce même fichier dans le répertoire GUI\bin\Debug.

    Pour ce que j'en sais, lorsqu'on execute GUI.exe, quand l'utilisateur effectue une action sur l'interface qui requiert un accès db :

    1. GUI fait appel à BLL
    2. BLL fait appel à DAL
    3. DAL va lire la ConnectionString dans son fichier de config
    4. etc.

    Du coup, je m'attends donc à trouve le fichier de config en question dans le répertoire GUI\bin\Debug. Or ce n'est pas le cas.


    Je viens de faire le test suivant :


    1. J'ai ajouté une messagebox pour afficher la valeur récupérée via le setting dans DAL et j'ai compilé.
    2. J'ai pris le contenu du répertoire GUI\bin\Debug et je l'ai copié dans C:\Test\.
    3. J'ai exécuté GUI.exe
    4. La messagebox s'est affichée et contenait la bonne valeur.

    Où cette valeur est-elle donc lue puisqu'aucun fichier app.config n'est présent ?

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    Où cette valeur est-elle donc lue puisqu'aucun fichier app.config n'est présent ?
    Tu donnes la réponse

    Citation Envoyé par Kropernic Voir le message
    Si je compile, je trouve bien le fichier DAL.dll.config dans le répertoire DAL\bin\Debug.
    Citation Envoyé par Kropernic Voir le message
    [*]DAL va lire la ConnectionString dans son fichier de config
    Résumé
    Citation Envoyé par rv26t Voir le message
    Quand la DLL DALL se charge, elle va chercher le fichier de config dans son répertoire et trouve la chaîne de connection.
    Il est donc logique que tu ne trouves pas ce fichier dans ton répertoire GUI.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    Alors c'est p-e une mauvaise pratique mais pour "déployer" (ce n'est pas vraiment pas un déploiement) une application sur le serveur d'application de l'entreprise, je prend les fichier application.exe ainsi que les dll se trouvant dans le répertoire Debug du projet GUI et je les copie à l'emplacement qui va bien sur le serveur.
    Et les projets DLL ?

    Le fichier de config doit être lu par la DLL DAL dans le répertoire ou elle est.
    Si vous copiez le contenu du répertoire DLL DAL ailleur il y aura aussi le fichier de config DAL
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  8. #8
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Et les projets DLL ?

    Le fichier de config doit être lu par la DLL DAL dans le répertoire ou elle est.
    Si vous copiez le contenu du répertoire DLL DAL ailleur il y aura aussi le fichier de config DAL
    Enfin mais non !

    Dans GUI\bin\Debug il y a :

    • GUI.exe
    • DTO.dll
    • BLL.dll
    • DAL.dll
    • GUI.pdb
    • DTO.pdb
    • BLL.pdb
    • DAL.pdb
    • GUI.xml
    • DTO.xml
    • BLL.xml
    • DAL.xml
    • GUI.vshost.exe

    Pour "déployer" mon application sur le serveur, je prends GUI.exe, DTO.dll, BLL.dll et DAL.dll.


    Rien de plus (ça fait donc 4 fichiers). Le fichier app.config n'est réellement pas présent.

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Qu'est ce que vous entendez par projet ?

    Chez moi j'ai plusieurs projets dans une solution, il sont tous dans des répertoires différents et indépendant. (pour une même application)
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/02/2008, 10h06
  2. Résultat d'insert non présent dans la base
    Par yozine dans le forum Hibernate
    Réponses: 2
    Dernier message: 11/10/2007, 20h56
  3. Réponses: 13
    Dernier message: 19/03/2007, 16h55
  4. récupération des id non présente dans une CIF
    Par Zen_Fou dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/04/2006, 12h00
  5. Réponses: 1
    Dernier message: 07/10/2005, 10h44

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