DAL / BLL et Client / Serveur: Si l'utilisation du client BLL ou DAL objets pour la présentation? Ou peut-être une autre couche (objet de transfert de données?)

StackOverflow https://stackoverflow.com/questions/3678824

Question

J'écris un système client / serveur. Le serveur a une conception DAL / BLL. Le client est responsable de la présentation des objets de données et en fournissant les boîtes de dialogue et assistant pour permettre à l'utilisateur de mettre à jour ces objets (à savoir l'ajout / la modification d'un utilisateur).

Au départ, je pensais que je vais juste faire les objets DAL ont un objet fournisseur de données universel afin qu'ils puissent être utilisés par le client ainsi que le serveur. Par exemple, lorsque l'objet de données est utilisé par le serveur, la base de données est le fournisseur de données; lorsque l'objet de données est utilisé par le client, le serveur est le fournisseur de données.

Ainsi, un objet se change à la couche de présentation, par exemple un « utilisateur »: user-> setName ( « Fred »), et engage alors comme ça user-> commit (), la méthode commettras appelle les années de fournisseur de données engager procédé, qui code alors l'objet et l'envoie au serveur. Le serveur puis « décore » avec l'objet de la couche d'affaires et porte de là.

J'ai actuellement ce travail comme un prototype, avec le DAL objets définis dans un projet partagé qui obtient utilisé par le client et le serveur. Le serveur injecte alors il est fournisseur de données (qui utilise la base de données), et le client injecte un fournisseur de données qui utilise le serveur.

Je me demande si cela semble une approche raisonnable? Je me demande si je besoin d'une autre couche plutôt que d'avoir les objets DAL directement exposés au client. Peut-être une couche d'objet tranfert de données, ce qui me donnerait 3 couches:. Objets d'accès aux données, objets de logique métier et les objets de transfert de données

Merci.

Était-ce utile?

La solution

Il est pas une bonne idée d'exposer des objets « internes » comme les objets utilisés / retour acheter DAL. Mieux garder tous les objets cachés internes du client et un ensemble complet d'objets pour la communication client-serveur. Il est peut-être un travail supplémentaire la conversion d'un objet à un autre, mais fera la mise à niveau du système beaucoup plus facile dans le cas où le serveur et le client ne mettez pas ensemble.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top