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 :

Quelques conseils de POO et questions sur la BLL [Débutant]


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut Quelques conseils de POO et questions sur la BLL
    Bonjour à tous,
    Je me pose une question d'ordre philosophique. J'ai plusieurs collections d'object qui ont toutes des interactions entre elles.
    Je présente un exemple simple parmis tant d'autres pour comprendre et vous verrez ou je veux en venir : si je supprime un objet de collection1 je doit aussi supprimer un ou plusieurs objets de collection2 et bien sûre il y a plusieurs façon de faire :

    1) la méthode (non POO) qui consiste à exécuter les opérations dans le corps du programme principale (en dehors des classes), je la présente mais il n'y a pas grand chose à dire dessus puisque je ne l'utilise pas (ou plus) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Main
       Collection1.Remove(Key1)
       Collection2.Remove(ObjetA)
       Collection2.Remove(ObjetB)
    End Sub
    2) Méthode avec référence à un parent (en l’occurrence une classe Projet), (Je fait abstraction des New et je simplifie l'écriture code pour pas trop charger la lecture) :
    Tous mes objets et toutes mes collections font référence à "Projet", cela facilite toutes mes interactions puisque "Projet" référence toutes les collections.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Public Class Projet
       Public Property Collection1 as Collection1
       Public Property Collection2 as Collection2
    End Class
     
    Public Class Collection1
       Public Parent as Projet
       Public Sub Remove(Key as Integer)
          me.Projet.Collection2.Remove(ObjetA)
          me.Projet.Collection2.Remove(ObjetB)
       End Sub
    End Class
     
    Public Class Collection2
       Public Parent as Projet
    End Class
    Je pense que c'est déjà un peu plus POO sauf que je "décore" mes classes de collections avec des méthodes pour implémenter de la logique métier dans mes classes.

    et c'est la que cela me chagrine car beaucoup d'ouvrage conseil de créer une BLL, oui mais en gros c'est quoi une BLL ? C'est une classe unique que j'implémente avec une centaine de méthode pour gérer toute la logique métier ? Je sais par expérience que ce n'ai pas bon du tout de mettre beaucoup de code au même endroit. Perso je résonne beaucoup par "Qui est responsable de quoi ?" et mon code s'en retrouve "éclaté" en plein de petites méthodes rangés dans les bonnes classes.
    Je parle surtout de mes collections d'object, est ce que celles ci ne représentent pas déjà ma BLL que je pourrait mettre dans un Namespace BLL ?
    (Mes objets, eux, sont moins impactés par ces interactions, on peux dire qu'ils ressemblent à des DTO je pense.)

    Malgré cette question sur la BLL, j'utilise justement aussi (en plus de la méthode 2) une BLL mais pas pour ma logique métier, elle me sert juste à centraliser tous les messages (Events) qui proviennent de mes objets et de mes classes pour jouer le rôle d'interface avec l'UI.

    Alors ou est la vérité ? Est ce que vous pensez qu'il y a un truc qui m’échappe dans mon résonnement ? je pose la question car j'ai tous le temps cette idée de BLL unique en tête et ça m’empêche d'avancer sereinement...

    Merci beaucoup de m'avoir lu et j’espère que j’aurais quelques réponses.
    Merci à vous d'avance.

  2. #2
    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 BasicZX81,

    Pour ma part nous avons tous bien séparé entre BLL, DAL, DTO et GUI dans des projets bien séparés.

    La GUI ne voit que la BLL et la BLL voit la DAL et les DTO.

    La BLL contient bien les objets métiers et la gestion des collections que j'ai placé dans des "repository" propre à chaque objet métier.

    Dans ces "repository" j'ai placé toutes les méthodes d'accès aux données et de gestion de collection. J'ai mis ces fonctions et collections en "Shared" ce qui permet de ne pas avoir d'objet four-tout vu que chaque repository gère ces propres données.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour et merci Sankasssss,
    Çà me réconforte dans l'idée que j'avais. Il faut absolument que je m’enlève de la tête que la BLL est une class
    Donc ce que je fait me semble bon.

    J'en profite pour remercier tous les gens ici qui donnent de leurs temps pour aider les autres. J'ai beaucoup d'années de programmation en tant qu'amateur mais je ne fait de la POO que depuis 1 an ou 2 et je dois dire que c'est un autre monde qui ouvre énormément de possibilités....
    A force d'en vouloir j'ai eut des infos précieuses sur ce site et je me sent de plus en plus autonome donc merci à vous....

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir BasicZX81,

    Un grand merci à ceux qui font vivre cette communauté et nous en faisons tous partie

  5. #5
    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
    L'utilisation des DTO/POCO, DAL, BLL est un domaine bien compliqué. J'en ai lu des discussions à ce sujet et je ne suis toujours pas sur de faire vraiment correctement les choses non plus mais ça fonctionne à merveille et notre code est bien structuré.
    Grace à un nommage précis de notre base de donnée nous avons créé un parseur qui créé automatiquement toutes les classes de ces différentes couches, ça simplifie bien les choses pour les nouveaux gros projets.

    Sinon, c'est toujours un plaisir de répondre à une demande claire et précise où l'on voit qu'il y a de la recherche.
    C'est en s'entraidant et discutant que nous apprenons, révisons et nous corrigeons

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

Discussions similaires

  1. Quelques questions sur les threads
    Par benj63 dans le forum C++Builder
    Réponses: 28
    Dernier message: 21/11/2005, 13h27
  2. Réponses: 19
    Dernier message: 21/10/2005, 19h24
  3. Quelques questions sur la mémoire
    Par Gruik dans le forum C
    Réponses: 6
    Dernier message: 17/11/2004, 14h38
  4. Quelques question sur Win 32 Appli
    Par lvdnono dans le forum Windows
    Réponses: 5
    Dernier message: 15/06/2004, 12h37
  5. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 21h23

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