Arquitetura do Aplicativo de Serviços Móveis do Azure

Estou tentando reunir uma arquitetura para um Aplicativo Universal do Windows, aproveitando os Serviços Móveis do Azure. É um aplicativo LOB e precisará lidar com 100-250 tabelas \ online offline. Atualmente, o Mobile Services não suporta objetos complexos aninhados, portanto, no lado do serviço, mapeei a maioria das minhas tabelas diretamente da estrutura da entidade.

A questão que tenho é se devo usar uma camada separada para reconstituir os DTOs ou se devo fazer isso durante toda a camada de serviço e o modelo de exibição. Minhas principais preocupações são o isolamento de responsabilidade (equipe grande) e a sobrecarga de desempenho do mapeamento adicional.

Não tinha reputação de adicionar uma imagem, aqui está o link para o modelo.

Um exemplo seria um objeto Person com uma coleção de endereços anexados. Eu tenho três objetos DTO: um para a pessoa, um para o endereço e outro para o relacionamento de muitos para muitos. Se eu estiver mapeando diretamente para o modelo de visualização, eu precisaria de um serviço de endereçamento para procurar o endereço de uma pessoa específica.

Se eu inserir uma camada extra de "Modelo", meu serviço retornará o Modelo de Pessoa com uma coleção de endereços. Parece um pouco errado ...

questionAnswers(1)

yourAnswerToTheQuestion