DTOs

Na criação de uma aplicação, a recomendação mais ouvida é a separação das responsabilidades entre as camadas do sistema. Hoje em dia existe diversos padrões de projetos que auxilíam na implementação desse processo. Porém, há casos em que o uso simples da abstração de camadas não é suficiente pra garantir um bom desacoplamento entre diferentes partes do sistema, e é nesse contexto que podemos usar o automapper.

O AutoMapper é uma biblioteca utilizada para mapear objetos. Ele ajuda a resolver esse problema ao automatizar o mapeamento entre diferentes objetos de diferentes camadas, como entre entidades de bancos de dados e objetos de transferências de dados (DTOs). Isso facilita o desenvolvimento ao reduzir a quantidade de código manual para conversões, promovendo um maior desacoplamento e flexibiliade do projeto.

Propósito

Foi criado para desenvolver um problema enganosamente complexo, que é o mapeamento de um objeto para outro. Esse tipo de tarefa geralmente é chata e tediosa, então esta pequena biblioteca foi criada para resolver essa situação e forma simples.

Sem AutoMapper:

var dto = new ClienteDTO {
	Nome = cliente.Nome,
	Idade = cliente.Idade
};

Com AutoMapper

var dto = _mapper.Map<ClienteDTO>(Cliente);

Desse modo você evita escrever o código manualmente, facilitando o processo de conversão.

Instalação

Para utilizar esta biblioteca precisamos adicioná-la via NuGet

install-package automapper