Bonjour à tous,
Je suis en train de développer une application en WinForms (C#) mais peu importe le langage en fait car j'ai besoin d'aide pour l'architecture de l'application.
Je vous explique : ma couche d'accès aux données (DAL) me retourne des objets simples (POJO en Java) du type : Commande (données membres : id, numéro, date de commande, etc) ou LigneCommande (id, Article, Nombre, etc). Donc, par exemple, j'ai une méthode (au niveau de la couche DAL) "chargeCommande(int id)" qui me retourne un objet Commande. Jusque là tout va bien, tout est séparé proprement avec des interfaces et une factory.
Le problème vient au niveau de la communication entre la couche présentation et la couche métier (BLL).
Exemple: au niveau de ma couche présentation, lorsque je supprime une ligne de commande, j'affiche toujours cette ligne de commande à mon utilisateur mais je lui grise pour lui montrer qu'elle est supprimée (inutile de vouloir changer cela car c'est une contrainte de mon cahier des charges :-)). Le problème, c'est qu'au niveau de mon objet LigneCommande, je ne peux pas lui stocker cette information (objet supprimé et à supprimer dans la base de données lorsque l'utilisateur enregistrera). Idem lorsque je fais des modifications au niveau d'une ligne de commande, j'aimerai mettre un flag pour lui dire, par la suite, de sauvegarder cette LigneCommande dans ma base de données (inutile de re-sauvegarder les LigneCommande non modifiée). Je prend deux exemples simples mais j'ai besoin d'ajouter d'autres infos sur mes objets de base pour la gestion de mon interface.
Donc comment faire ? J'ai lu qu'il y avait des possibilités avec des DTOs mais je n'ai pas trouvé d'exemples à ce sujet.
Pouvez-vous me dire comment vous faites de votre côté ?
J'espère avoir été clair et je vous remercie par avance de vos réponses !
Bon w-e à tous
Luc
Partager