mapster-mapeador-de-clases-de-alta-velocidad-para-net

Mapster, mapeador de clases de alta velocidad para .NET

Mapster es una librería Open Source para mapear objetos en .Net centrada en la facilidad de uso y en la alta eficiencia.

Mapear objetos es una necesidad común en la programación, y que obliga a crear mucho código repetitivo y con poco valor añadido (boilerplate).

Para realizar este proceso de forma más agradable existen muchas librerías siendo la más popular, seguramente, el conocido AutoMapper.

Mapster es una alternativa que destaca tanto por su facilidad de uso, y su diseño centrado en una alta velocidad y bajo consumo de memoria.

Para emplear Mapster no necesitamos crear ningún tipo de configuración previa. Funciona a través de métodos de extensión, por lo que el mapeo de una entidad a una nueva instancia de otra clase es tan sencillo como hacer

var destObject = sourceObject.Adapt<Destination>();

O, para mapear a una instancia ya existente

sourceObject.Adapt(destObject);

Así de sencillo. Cabría pensar que esta ausencia de configuración tiene una penalización en el rendimiento, pero no es así.

Mapster resulta extremadamente rápido, a la vez que mantiene un consumo mínimo de memoria, incluso varios órdenes de magnitud por encima de alternativas como AutoMapper.

Por supuesto, Mapper no solo realizar conversiones entre objetos simples, si no también colecciones, objetos compuestos, o casi cualquier situación que podamos necesitar. Además, dispone de una gran cantidad de características adicionales, como mapeos personalizados, acciones antes y después del mapeo.

Por otro lado, la eficiencia puede mejorarse incluso más con la inclusión de https://github.com/dadhi/FastExpressionCompiler, llegando a ser muy similar al rendimiento obtenido con un mapeo “a mano”.

Por si todo esto fuera poco, también es posible añadir ExpressionDebugger para poder debuggear dentro del mapeo sin perder eficiencia, y resolviendo una de las mayores desventajas de usar librerías de mapeo automático.

Mapster está disponible para añadir cómodamente a nuestro proyecto a través de un paquete Nuget, y es compatible con .Net Framework y .Net Standard.