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 :

A propos des paramètres de projet.


Sujet :

VB.NET

  1. #1
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut A propos des paramètres de projet.
    Bonjour à tous,

    Avez-vous déjà utilisé les paramètres d'un projet accessible dans le code via My.Settings.LeNomDuParametre ?

    Pour les paramètres d'un projet winform, pas de soucis. Ils se trouvent dans LeProjet.exe.config et peuvent facilement être modifié sans devoir recompilé l'application.

    Là où je m'emmêle les pinceaux, c'est pour utiliser ces paramètres pour un projet de type bibliothèque de classes.

    Dans le folder bin\debug de la bibliothèque, il y a le fichier LeProjet.dll.config avec les paramètres dedans.

    Par contre, ce fichier n'est pas copié vers le folder bin\debug de l'application winform qui référence la bibliothèque. Mais malgré cela, la dll parvient bien à utiliser ses paramètres. Du coup, je ne pige pas trop.

    J'ai regardé un peu sur le net et il semblerait que les paramètres avec leur valeur "par défaut" (ie : encodées dans VS) sont compilés dans la dll. Mais du coup, impossible de les modifier par après.

    Je suis un peu perdu...

    Pour info, le process est le suivant :

    Dans la couche GUI, l'utilisateur scanne un barcode de type EAN128.
    La BLL vérifie si le barcode est correct et si oui, l'envoi vers la DB et aussi dans un fichier txt. Et c'est pour définir où créer ce fichier que j'ai utilisé les settings de la dll.

    Ferais-je fausse route et faut-il définir ces settings dans la couche GUI ? Cela me donne l'impression que la couche GUI se mêle alors de choses qui ne la regarde pas.
    De plus, si je les mets dans la GUI et plus dans la BLL, la couche BLL ne compilera plus vu que les paramètres n'existent pas... Bref, c'est le bordel

    Qu'en pensez-vous ?
    Kropernic

  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
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Citation Envoyé par Kropernic Voir le message
    Par contre, ce fichier n'est pas copié vers le folder bin\debug de l'application winform qui référence la bibliothèque. Mais malgré cela, la dll parvient bien à utiliser ses paramètres.
    Mais là c'est pour le développement.
    Qu'en est-il lors de l'installation réelle ?
    Une fois l'appli installée avec sa dll et le fichier de config de la dll "LeProjet.dll.conf", la modification du chemin du fichier texte en sortie dans "LeProjet.dll.conf" est elle prise en compte quand tu utilises l'appli ?
    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
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Je viens de faire un test.

    J'ai pris la fichier .config qui se trouve dans le folder bin\debug du projet bibliothèque de classe et je l'ai copié dans le folder bin\debug du projet winform.
    J'ai alors modifié le paramètre pour que le fichier à créer le soit dans un autre folder et j'ai fait tourné l'application.

    Cela n'a eu aucun effet. Le fichier est toujours créé à son emplacement d'origine.
    Kropernic

  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
    Points : 5 100
    Points
    5 100
    Par défaut
    Oui, mais là tu es toujours en developpement.
    Place tout dans un répertoire (exe, dll, fichiers config) et lance l'exe

    Question subsidiaire, comment fais-tu avec ta chaîne de connexion BDD ?
    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
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Oui, mais là tu es toujours en developpement.
    Place tout dans un répertoire (exe, dll, fichiers config) et lance l'exe
    Ok je vais tester ça mais je ne vois pas ce que ça va changer.

    Sinon pour info, je viens de tester ceci :
    • Modifier GUI.exe.config pour ajouter :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
       
              <BLL.My.MySettings>
                  <setting name="storageFolder" serializeAs="String">
                      <value>\\serverXXX\d$\OTHER_DATA\SEALBAG1\</value>
                  </setting>
              </BLL.My.MySettings>
      Cela fait planter l'application au lancement XD
    • Modifier GUI.exe.config pour ajouter entre les balises usersSettings :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
       
                  <setting name="storageFolder" serializeAs="String">
                      <value>\\serverXXX\d$\OTHER_DATA\SEALBAG1\</value>
                  </setting>
      L'application ne plante pas mais cela n'a aucun effet.


    Je vais donc maintenant tester ce que tu suggères et je viens donner le résultat.
    Kropernic

  6. #6
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Voilà, je viens de tester (c'était vite fait faut dire). Cela ne change rien. La valeur mise dans le fichier BLL.dll.config n'est pas prise en compte.
    Kropernic

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonjour,

    Quelle est la porté de storageFolder? Utilisateur ou application?

  8. #8
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Question subsidiaire, comment fais-tu avec ta chaîne de connexion BDD ?
    Héhé, bien vu l'aveugle ! Même problème que j'ai contourné provisoirement en ajoutant un fichier DB.dat au projet GUI qui est toujours copier à la compilation. Dans la DAL, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim sr as new IO.StreamReader("DB.dat")
    Dim server = sr.ReadLine()
    Et j'injecte le serveur ainsi obtenu dans la chaîne de connexion.

    Mais ouais, idéalement, j'aimerais passer par les settings de la DAL aussi...
    Kropernic

  9. #9
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Bonjour,

    Quelle est la porté de storageFolder? Utilisateur ou application?
    Utilisateur

    EDIT : Je viens aussi de tester en mettant le paramètre dans les settings de la couche GUI (on ne sait jamais). Mais cela ne change rien.

    Je commence à me dire qu'il va falloir que la GUI dise à la BLL où stocker le fichier. Je trouve cela bizarre car pour moi, c'est la logique métier qui dicte où stocker le fichier en question. La GUI n'a d'ailleurs pas à savoir qu'un fichier est créé. Son rôle se cantonne à scanner à barcode et à dire à la BLL ce qu'elle a scanné.

    Me trompe-je ?
    Kropernic

  10. #10
    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
    Points : 5 100
    Points
    5 100
    Par défaut
    J'ai l'impression que tu te compliques la vie.
    Même si tu utilises des DLL pour la DAL et la BLL, à un moment tu instancies des classes de ces DLL dans ton appli, cela na rien a voir avec l'UI, donc à ce moment tu lis les setting de l'appli et les passes en paramètres aux instances des classes de DLL que tu cré. Non ?
    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.

  11. #11
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Je viens de tester et effectivement je ne retrouve pas où est stockée l'information, le plus spécial étant que l'on peut la changer et la sauvegarder (My.Settings.Save()) au niveau du projet qui utilise la library sans impacter d'autres projets donc il doit bien la stocker quelque part.

  12. #12
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par rv26t Voir le message
    J'ai l'impression que tu te compliques la vie.
    Même si tu utilises des DLL pour la DAL et la BLL, à un moment tu instancies des classes de ces DLL dans ton appli, cela na rien a voir avec l'UI, donc à ce moment tu lis les setting de l'appli et les passes en paramètres aux instances des classes de DLL que tu cré. Non ?
    Jamais aucune classe n'est instanciée pour la DAL et encore moins par la GUI. Ce ne sont que des méthodes/fonctions Shared et elles sont toutes consommées uniquement par la BLL (et la DAL quand le process le nécessite).

    Mais si je suis ton raisonnement, cela voudrait dire que, à chaque fois que je instancie un objet de la BLL, la GUI doit lui donner le nom du serveur de DB pour que cette dernière (la BLL) puisse le transmettre à la DAL lors de l'appel de la méthode de persistance...

    Cela parait tordu et il doit y avoir moyen de faire mieux mais, sur le fond, je commence à croire que c'est la voie à suivre car...

    Prenons le cas d'une application avec une interface en winforms pour une utilisation interne à l'entreprise et une interface web pour une utilisation externe. Je n'ai pas d'idée précise sur la raison qui pourrait pousser à vouloir faire cela mais on pourrait imaginer que lorsque c'est l'interface winforms qui est utilisée, il faille accéder à une DB A. Alors que lorsqu'on utilise l'interface web, on accède à une DB B.
    Dans ce cas, soit la DAL doit être informée de l'interface qui est utilisée pour pouvoir adapter la chaîne de connexion (mais il faut alors recompiler la DAL pour chaque nouveau type d'interface utilisé), soit la DAL doit être informée de la chaîne connexion (ce qui ne nécessite pas de recompilation ultérieure).

    Reste à trouver une façon élégante de faire cela (informer la DAL). Malgré tout, je trouve quand même cela bizarre que ce soit la GUI qui décide de la chaîne de connexion de la DAL.

    Idem donc pour les paramètres de la BLL pour l'endroit où stocker le fichier.
    Kropernic

  13. #13
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Il me semble que les settings sont stockés dans %userprofile%\AppData\Local\
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  14. #14
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    +1 DotNetMatt
    On peut le voir avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath
    et en référençant System.Configuration.dll.

  15. #15
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Euh... Je veux bien mais je ne trouve pas le fichier qui les stockerait dans ce folder...

    J'imagine bien qu'il est quelque part dans un sous-folder mais lequel 0_0

    Je ne trouve rien qui reprendrait le nom de mon application. Enfin si, j'en ai trouvé mais la dernière modif est à 11h56 alors que j'arrête pas de faire des modifs...
    Kropernic

  16. #16
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Avec le code que je t'ai mi plus haut j'ai :
    C:\Users\Gaëtan\AppData\Local\WindowsApplication1\WindowsApplicationTestCla_Url_4rchwfrqsjreqw1yxj3crcx5sx1oggha\1.0.0.0\user.config
    qui contient :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <configSections>
            <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
                <section name="ClassLibrary1.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
            </sectionGroup>
        </configSections>
        <userSettings>
            <ClassLibrary1.My.MySettings>
                <setting name="varTest" serializeAs="String">
                    <value>4</value>
                </setting>
            </ClassLibrary1.My.MySettings>
        </userSettings>
    </configuration>

  17. #17
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Avec le code que je t'ai mi plus haut j'ai :
    Ouais mais ce code ne fonctionne pas chez moi...

    Faut un imports en début de classe ? J'ai tenté en important System.Configuration mais rien n'y fait.

    EDIT : Fallait aussi ajouter la référence. Au temps pour moi.
    Kropernic

  18. #18
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bon...

    J'ai donc ajouté MsgBox(ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath) dans la GUI.
    J'otiens bien un chemin de fichier et il me dirige vers un fichier que j'avais déjà trouvé mais donc la dernière modif remonte à 11h56 et qui contient ce qui suit :
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <configSections>
    </configSections>
    </configuration>
    J'ai ensuite ajouté le même code également dans la BLL et j'obtiens le même fichier qui est toujours aussi vide. Je vais tenter d'y ajouter un paramètre pour voir si c'est pris en compte...
    Kropernic

  19. #19
    Expert confirmé
    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 : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Je viens enfin de comprendre que ce fichier est utilisé uniquement quand on quitte l'environnement de dev. Il faut donc copier l'exe et les dll qui vont avec dans un autre folder et exécuter l'application pour que ce fichier user.config soit utilisé.

    Sachant cela, j'essaie d'y ajouter le chemin d'accès au folder où je veux stocker le fichier.

    A la base, le fichier contient ceci (j'ai ajouté un paramètre test pour voir la structure) :
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <userSettings>
    <SEALBAG_GUI.My.MySettings>
    <setting name="test" serializeAs="String">
    <value>hello world !</value>
    </setting>
    </SEALBAG_GUI.My.MySettings>
    </userSettings>
    </configuration>
    Si j'ajoute
    <SEALBAG_BLL.My.MySettings>
    <setting name="storageFolder" serializeAs="String">
    <value>\\bru32srv929sql1\d$\OTHER_DATA\SEALBAG1\</value>
    </setting>
    </SEALBAG_BLL.My.MySettings>
    en dessous de la section SEALBAG_GUI, j'ai une erreur qui dit
    Configuration system failed to initialize.
    J'ai alors extrait le paramètre de la section SEALBAG_BLL pour le mettre dans SEALBAG_GUI mais il n'est pas pris en considération.

    Il doit sûrement y avoir moyen mais je sèche ^^.
    Kropernic

  20. #20
    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
    Points : 5 100
    Points
    5 100
    Par défaut
    Pour répondre à tes questions, (hors sujet, mais important)
    Citation Envoyé par Kropernic Voir le message
    Jamais aucune classe n'est instanciée pour la DAL et encore moins par la GUI. Ce ne sont que des méthodes/fonctions Shared et elles sont toutes consommées uniquement par la BLL (et la DAL quand le process le nécessite).
    Je trouve cela moins objet, mais c'est juste mon point de vue.

    Citation Envoyé par Kropernic Voir le message
    Mais si je suis ton raisonnement, cela voudrait dire que, à chaque fois que je instancie un objet de la BLL, la GUI doit lui donner le nom du serveur de DB pour que cette dernière (la BLL) puisse le transmettre à la DAL lors de l'appel de la méthode de persistance...
    Non, en fait je cré un contexte de travail applicatif, contexte qui référence mon objet DAL une fois, après j'utilise les méthodes. (contexte accessible par l'UI, la BLL et la DAL)
    Ce n'est donc pas la GUI qui informe la DAL de la chaîne de connexion (à travers la BLL), mais l'application elle-même au départ.
    Ensuite l'UI consomme les méthodes de la BLL, et la BLL consomme les méthodes de la DAL à travers l'instance DAL du contexte de travail. Mon contexte contient une instance de la DAL, ce qui correspond à ton utilisation en shared mais plus dans le sens objet à mon gout, et d'autres choses.
    Note : mon application est décompée en couche logique, pas sur des serveurs différents.
    J'avais essayé de faire un chef d'orchestre applicatif ou chaque couche emettaient seulement des évènements, ce qui rendrait les couches totalement indépendantes les unes des autres, mais c'est très vide devenu

    Il me semble que spring fourni une réponse, (qui peut correspondre à ce que tu souhaites) il faudrait voir dans le cours de serge tahe (en C#) apprentissage du langage C# à partir du chapitre 4 il aborde le sujet, je n'ai pas eu le temps d'approfondir.

    Citation Envoyé par Kropernic Voir le message
    Cela parait tordu et il doit y avoir moyen de faire mieux mais, sur le fond, je commence à croire que c'est la voie à suivre car...
    La façon dont je procéde est une approche personnelle pas forcément le mieux.
    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.

Discussions similaires

  1. Réponses: 52
    Dernier message: 27/02/2015, 15h14
  2. A propos des projets d'installation
    Par teddyalbina dans le forum Visual Studio
    Réponses: 1
    Dernier message: 03/01/2012, 18h59
  3. Gérer des paramètres globaux dans un projet python.
    Par Narann dans le forum Général Python
    Réponses: 4
    Dernier message: 08/06/2011, 17h47
  4. Réponses: 4
    Dernier message: 22/12/2010, 12h04
  5. Parametrage des options de projet
    Par ares7 dans le forum EDI
    Réponses: 7
    Dernier message: 22/07/2002, 15h33

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