A convention-based object-to-object mapper and transformer for .NET
AutoMapper uses a fluent configuration API to define an object-object mapping strategy. AutoMapper uses a convention-based matching algorithm to match up source to destination values. Currently, AutoMapper is geared towards model projection scenarios to flatten complex object models to DTOs and other simple objects, whose design is better suited for serialization, communication, messaging, or simply an anti-corruption layer between the domain and application layer.
Version 2 introduced several features and had some breaking changes.
Version 3 was focused on a separation for platform deployments, code comments and LINQ projection
Version 4 was released in August 2015, it introduced support for a wide variety of platforms, and consolidated the assemblies so that each platform only referenced one assembly.
Version 5 was released in mid 2016, speed was improved, new initialization methods were introduced and the former ability of modify configurations at runtime was removed (as this could cause problems)
Version 6 was released in 2017, among other changes reverse-mapping support was increased.
Version 7 was released in 2018 and contained some breaking changes and an explicit netstandard 2.0 target.
Version 8 was also released in 2018 and it too has breaking changes (to simplify configuration options, an upgrade guide is provided). It also introduces Value Converters, which provide the ability to define reusable mappers scoped to individual members.
Version 9 was released in 2019, it removed the static mapper (Mapper.Map)
and dynamic mapping. Major breaking changes are covered in the upgrade guide
Version 10 is a 2020 release, the upgrade guide indicates changes largely increase the user friendliness of the library with no major breaking changes listed.
Resources
Tutorials