Bonjour,
je suis en train de développer un site web (asp.NET/c#) et je pense que je vais respecter l'architecture 3 tiers car je devrais utilisé mes classes dans d'autre programme.
Bon mon problème est de comprendre l'architecture 3 tiers et de la mettre en application. J'ai donc plein de questions car plus je lis des docs sur le forum et sur google et plsu je m'embrouille ... Voici mes questions
- J'ai eu l'impression que l'architecture 3 tiers représenté 2 choses en meme temps, des fois une architecture physique client->serveur->BD, et des fois fois une architecture logicielle composé de trois couches (présentation, métier , accès aux donnés)... Ai-je bien compris, est ce bien 2 choses complètement distincte?
- Comment les différentes couches doivent elles etre séparé dans le code? Dans mon cas j'aurai dit : la couche présentation = mes aspx avec le code behind qui appelle ma couche métier, la couche métier = un namespace (package) qui va utiliser la couche accès aux données, la couche accès aux données = un namespace???? ou alors je fais juste une classe dans la couche métier qui fera tout les accès à la base?
- Est-ce que la base de données(physique) se place dans cette architecture? Les procédures stockées font-elle partie de la couche accès aux données?
- [difficile de me comprendre]
Comment la couche métier communique avec la couche accès aux données? Admettons que j'ai un objet "dr" de type "Driver" (avec un nom, un numéro, une date et une image). Je veux faire une méthode qui met cet objet en base. Comment procéder?
- Premiere supposition : Je fait une méthode dans la classe Driver "toDataBase" qui va appelle la méthode "addDriver" de ma classe BD en passant en argument tout les champs de mon driver (sachant qu'en réalité il ya énormément de champ donc c'est super lourd )
- Seconde supposition : Je fait une méthode addDriver dans ma classe BD qui va prendre en argument un driver et qui va se chargé elle meme d'extraire les attributs du driver et de les mettres en base. Ceci impliquerait que la couche "accès aux données utilisent la couche "métier" et pas l'inverse!
[/difficile de me comprendre]- Admettons que je veuille récupérer la liste des drivers existant dans la base. Ou dois-je créer la méthode qui va me récupérer cette liste de driver? Dois-je faire une classe Drivers qui contient tout les drivers??
- L'architecture 3 tiers ne risque t'elle pas de faire fortement chuter les performances en multipliant les accès à la BD? Vu que je suis dans un site web je travaille en mode connecté (car le mode déconnecté m'obligerais à recharger ma base à chaque fois que la page web se recharge) chaque appel à une fonction de ma couche "acces aux données" équivaut à au moins un appel à la base!
Merci beaucoup beaucoup d'avance
Partager