février
2006
un projet de développement est normalement composé de plusieurs modules. Souvent les projets sont assez complexe et il faudra travailler en équipe. Mettre tout le code (Accè à la base, requêtes, traitements, tests, …) dans un seul fichier form.vb risque de compliquer d’avantages les choses et lors d’une maintenance du code ou une évolution on risque de ne rien trouver, sans parler du fait qu’il faudra peut être modifier la même chose dans plusieurs endroits du code.
Notre modèle va comporter 5 couches logicielles :
- Présentation: Contient tous les composants graphiques du module composant l’interface homme-machine (fenêtres, contrôles utilisateur…) avec le code propre à l’affichage de leur représentation et de leur contenu.
Cette couche ne peut référencer que les couches «Référence» et «Application». Mettre le moins de code possible dans cette couche. - Application: Contient tous les contrôleurs de cas d’utilisation du module. cette couche assurent le liant entre les composants graphiques et les composants métier.
Cette couche ne peut référencer que les couches «Métier», «Persistance» et «Référence» - Métier: Contient tous les composants métier dont le module a la responsabilité. Ces composants métier ont en charge la gestion du cycle de vie des objets métier gérés par le module. Cette couche ne peut référencer que les couches «Référence» et «Persistance»
- Référence: Cette couche contient les objets de données pures qui transitent entre toutes les autres couches. Ces objets sont aussi parfois nommés DataValues ou DataObjects.
- Persistence: Contient les composants assurant le mapping entre les objets définis dans la couche Métier et les composants de stockage définis dans la base de Données.
Cette couche ne peut référencer que les couches «Référence» et la base de données. Concrètement, il s’agit de la seule couche ayant un lien avec la base de données.
Voila, tout le deal maintenant est de savoir quoi mettre dans chaque couche. Si c’est simple de savoir ce qu’on met dans la couche présentation et Persistence, le choix pour les autres couches est discutable.
A vous.
Effectivement pour faliciter (surtout si on travaille seul) on se contente de 3 couches logicielles mais je me suis toujours posé la question : comment ça se passe ces couches pour le web ? puisque j’ai 0 (zéro) expérience avec le web … les dll, les users contrôles, … c’est intriguant tout ceci !!
Je partage le meme avis que neo.51 la dessus, 3 couches: Couche acces aux donnees, metier et presentation (c’est aussi bcp plus simple de savoir quoi mettre dans quelle couche).
Je serai juste un peu plus categorique sur les interfaces: quitte a developper en n-tier autant le faire en creeant des couches independantes via l’utilisation de ces interfaces; du coup tu peux redevelopper n’importe quelle couche sans toucher au reste. Le top pour une appli qui se veut evolutive! (tu peux developper une version CD et Web avec la meme DAL et la meme couche metier, juste en changeant la couche de presentation ;))
et idéalement chaque couche implémente des interfaces et doit-être indépendante.
Pour mes projets j’ai cependant tendance à ramener tout ça sur 3 couches : Data, Metier, Presentation.
… voir même je fusionne data et métier dans les petits projets, quand j’utilise les datasets