Pergunta

Quais são as vantagens e desvantagens de DTOs de uma perspectiva de desempenho do site? (Estou falando no caso em que o banco de dados é acessado em um servidor de aplicativo diferente para o servidor web -. E o servidor web pode acessar o banco de dados diretamente)

Foi útil?

Solução

DTO não são uma preocupação desempenho. Eu acho que o que você está perguntando é as implicações de desempenho de hierarquização. Em particular, usando uma camada de aplicativo entre o seu nível Web (servidor web) e camada de dados (banco de dados).

Geralmente, as implicações são que a latência é aumentado (você tem roundtrips rede extras), mas você ganhar alguma capacidade adicional através da divisão da carga entre máquinas.

Outra razão comum (novamente, não desempenho) que as pessoas iriam fazer isso é permitir-lhes para colocar o servidor web na DMZ, mantendo os servidores de aplicativos e banco de dados dentro do firewall.

Outra razão potencial (não cumprimento) é a capacidade de ligar várias interfaces de usuário em cima de uma única aplicação. Eu fiz isso em projetos anteriores com grandes resultados (onde o negócio exigia).

Além disso, não subestime o trabalho necessário para manter uma arquitetura dessa natureza. É mais trabalho do que uma solução não-hierárquico, portanto, apenas usá-lo se você antecipar precisar dele.

Dito isto, o uso de DTOs não exigir a utilização de Tiering.

A melhor descrição que eu encontrei de hierarquização vem do livro de Martin Fowler, Padrões de Análise. Há uma pequena secção na parte de trás em fachadas de aplicação e hierarquização.

Apenas para reiterar a resposta anterior, DTOs não são uma preocupação desempenho. É apenas uma classe sem métodos usados ??para fornecer isolamento entre as várias partes de sua aplicação.

Eu também sugerem pegar outro livro de Martin, padrões de arquitetura de aplicações corporativas. O "padrão" DTO é documentado lá.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top