2012-09-20 19 views
10

Utilizzo una semplice architettura a 3 livelli. In questo sto usando le classi DTO per comunicare tra UI, BL e DL. Quindi c'è un modo migliore per la comunicazione tra i livelli? o questa è la strada giusta?Uso di DTO nell'architettura a 3 livelli

+0

definire "comunicare" – jgauffin

risposta

8

DTO, Oggetto di trasferimento dati, è il concetto di livello di distribuzione, utilizzato durante il trasferimento di dati tra i consumatori e il servizio. Quindi, se non pubblichi alcun servizio, esci da DTO.

Per rispondere alla tua domanda, dipende anche dalla complessità della tua applicazione. Se è semplice, basta usare l'operazione CRUD, o puoi anche usare DataTable, DataSet per la comunicazione.

Altrimenti, Entità del dominio da DDD è l'oggetto principale per la comunicazione tra livelli: Livello accesso dati, Livello di logica aziendale e Livello presentazione.

Fondamentalmente, ci sono alcuni diversi tipi di oggetti in applicazione:

  1. DTO, utilizzare quando si servizi pubblici, oggetto principale per la comunicazione tra consumatori e il vostro servizio.
  2. Visualizza modello, oggetto nel livello presentazione per supportare l'interfaccia utente.
  3. L'entità di dominio proviene dal livello della logica aziendale per contenere la logica aziendale.

stare attenti con il termine:

  1. Livello: significa fisico, come database server, web server.
  2. Livello: significa livello logico: Livello di persistenza, Livello di logica aziendale, Livello di accesso ai dati.
7

Leggi questo tutorial è molto informativo. Ti aiuterà a decidere è DTO giusto per il tuo scenario.

+0

Grazie, il miglior tutorial DTO che ho letto. Tentare di riassumere: le DTO sono ottimali da una prospettiva di disaccoppiamento, separando il livello di presentazione dal livello aziendale. Ma può essere una vittoria di Pirro; la creazione di centinaia di classi DTO appesantisce il progetto e genera un sovraccarico. L'autore afferma che l'utilizzo di DTO dipende dai dettagli del progetto. Propone una via di mezzo pragmatica in cui gli oggetti entità possono essere referenziati nel livello di presentazione. – Gruber

1

Oltre alla risposta @ Talha, consiglierei questo article. È orientato all'EF, ma i concetti descritti qui sono comuni.