DAL / BLL e client / server: qualora l'impiego client BLL o DAL oggetti per la presentazione? O forse un altro strato (oggetto di trasferimento dei dati?)

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

Domanda

Sto scrivendo un sistema client / server. Il server ha un design DAL / BLL. Il cliente è responsabile per la presentazione degli oggetti dati e fornendo finestre di dialogo e wizard per consentire all'utente di aggiornare questi oggetti (cioè l'aggiunta / modifica di un utente).

Inizialmente ho pensato mi limiterò a fare gli oggetti DAL dispongono di un oggetto fornitore di dati universale in modo che possano essere utilizzati dal cliente, così come il server. Per esempio, quando l'oggetto di dati viene utilizzato dal server, il database è il provider di dati; quando l'oggetto di dati viene utilizzata dal client, il server è il provider di dati.

Quindi, un oggetto viene modificata a livello di presentazione, ad esempio, un "utente": user-> setName ( "Fred"), e poi si impegna in questo modo user-> commit (), il commit chiamate di metodo del fornitore dei dati metodo, che poi codifica l'oggetto e lo invia al server commettere. Il server quindi "decora" con l'oggetto del livello aziendale e svolge da lì.

Al momento ho questo lavoro come un prototipo, con il DAL oggetti definiti in un progetto condiviso che viene utilizzato sia il client e il server. Il server quindi si inietta del fornitore dei dati (che utilizza il database), e le inietta cliente un fornitore di dati che utilizza il server.

Mi chiedo se questo sembra un approccio ragionevole? Continuo a chiedermi se ho bisogno di un altro strato piuttosto che avere gli oggetti DAL esposti direttamente al cliente. Forse un livello di oggetto di dati tranfer, che mi avrebbe dato 3 strati:. Data Access Objects, oggetti logica di business, e gli oggetti di trasferimento dati

Grazie.

È stato utile?

Soluzione

Non è una buona idea di esporre 'oggetti interni' come oggetti usati / restituito acquistare il DAL. Meglio tenere tutti gli oggetti interni nascosti da parte del cliente e avere un set completo di oggetti per la comunicazione client-server. Potrebbe essere un po 'di lavoro extra convertire un oggetto all'altro, ma renderà l'aggiornamento del sistema molto più facile nel caso in cui server e client non aggiornare insieme.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top