Domanda

Quali sono i vantaggi e gli svantaggi dei DTO dal punto di vista delle prestazioni del sito web?(Sto parlando nel caso in cui si accede al database su un server app diverso dal server Web e il server Web potrebbe accedere direttamente al database.)

È stato utile?

Soluzione

I DTO non sono un problema di prestazioni.Penso che ciò che stai chiedendo siano le implicazioni sulle prestazioni del tiering.In particolare, utilizzando un livello applicazione tra il livello Web (server Web) e il livello dati (server database).

In genere, le implicazioni sono che la latenza aumenta (si hanno viaggi di andata e ritorno di rete aggiuntivi), ma si guadagna capacità aggiuntiva suddividendo il carico tra le macchine.

Un altro motivo comune (di nuovo, mancata prestazione) per cui le persone lo farebbero è consentire loro di posizionare il server Web nella DMZ mantenendo i server dell'applicazione e del database all'interno del firewall.

Un altro potenziale motivo (mancate prestazioni) è la possibilità di collegare più UI a una singola applicazione.L'ho fatto su progetti passati con ottimi risultati (dove l'azienda lo richiedeva).

Inoltre, non sottovalutare il lavoro necessario per mantenere un'architettura di quel tipo.È più impegnativo di una soluzione non a livelli, quindi utilizzalo solo se prevedi di averne bisogno.

Detto questo, l’uso delle DTO non richiede l’uso del Tiering.

La migliore descrizione che ho trovato del tiering viene dal libro di Martin Fowler, Analysis Patterns.C'è una piccola sezione nella parte posteriore sulle facciate e sui livelli delle applicazioni.

Giusto per ribadire la risposta precedente, i DTO non rappresentano un problema di prestazioni.È solo una classe senza metodi utilizzata per fornire l'isolamento tra le varie parti dell'applicazione.

Suggerirei anche di prendere l'altro libro di Martin, Patterns of Enterprise Application Architecture.Il "modello" DTO è documentato lì.

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