Bonjour,
après de nombreuses lectures où je trouve différentes réponses, je tente ma chance sur le forum pour avoir des éclaircissements.
je développe une application en suivant une architecture 3 tiers.
De ce que j'ai compris:
la couche UI ne traite que l'interface graphique
la couche BLL fait le lien entre les deux couches et traite les objets métiers
la couche DAL ne traite que les accès à la base.
Par contre, je ne comprends pas bien ce que la DAL doit renvoyer concrètement. Vaut-il mieux renvoyer une datatable ou équivalent qui sera traitée par la couche BLL pour créer ses objets UserBLL? ou bien renvoyer une liste d'objets de la couche BLL correspondante?
Si demain je rajoute une ou plusieurs colonnes dans ma table utilisateurs, pour les prendre en compte, je ne voudrais pas intervenir dans toutes les couches pour l'instanciation de mon objet, seulement sur la couche BLL. Après peut être aussi sur ma couche DAL suivant la requête
Pour être plus concret voici un exemple sur lequel je suis parti:
ma DAL
ma BLL:
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
18
19
20
21 public class userDAL{ public userDAL(){ ... }; public List<UserBLL> getUsersFromDB(){ List<UserBLL> users = new List<UserBLL>(); String req = " SELECT name,firstName FROM ...."; using....{ using(MySqlDataReader myReader = myCmd.ExecuteReader()){ while(myReader.Read()){ UserBLL u = new UserBLL(); u.Name = myReader["name"].toString(); u.FirstName = myReader["firstName"].toString(); users.add(u); } } } return users; } }
mon ui:
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 public class userBLL{ public String userName {get;set;} public String userFirstName {get;set;} public UserBLL(String name, String firstName){ this.userName = name; this.userFirstName = firstName; } public static List<UserBLL> getList(){ UserDAL users = new UserDAL(); return users.getUsersFromDB(); } }
Je vous remercie pour vos bons conseils.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public MainForm(){ List<UserBLL> myUsers = UserBLL.getList(); .... }
Partager