AutoMapper, .NET platformunda nesneler arasındaki verilerin dönüştürülmesini (object-to-object mapping) kolaylaştıran açık kaynaklı bir kütüphanedir. 2009 yılında Jimmy Bogard tarafından geliştirilmiştir. Yazılım geliştirme sürecinde farklı katmanlarda kullanılan veri transfer nesneleri (DTO – Data Transfer Object) ve domain modelleri arasındaki dönüşümleri otomatikleştirerek, manuel kod yazma ihtiyacını en aza indirmektedir.
Neden AutoMapper'e İhtiyaç Duyarız?
Kurumsal uygulamalarda çoğu zaman veritabanı modelleri (entity) ile dış dünyaya açılan API modelleri (DTO) aynı değildir. Bunların elle dönüştürülmesi çok sayıda tekrar eden kod (boilerplate code) üretir. AutoMapper, bu dönüşümü tek bir konfigürasyon üzerinden yaparak; kod tekrarını azaltmakta, bakımı kolaylaştırmakta, hata riskini düşürmekte ve okunabilirliği artırmaktadır.
Çalışma Mantığı
AutoMapper, kaynak ve hedef sınıflar arasında bir eşleştirme (mapping) tanımı yapılmasını sağlar. Mapping tanımlandıktan sonra, kütüphane nesneler arasındaki alanları isim ve tür uyumuna göre otomatik olarak dönüştürmektedir.
using AutoMapper; public class User { public string Name { get; set; } public string Email { get; set; } } public class UserDto { public string Name { get; set; } } class Program { static void Main() { var config = new MapperConfiguration(cfg => { cfg.CreateMap<User, UserDto>(); }); IMapper mapper = config.CreateMapper(); var user = new User { Name = "Ferhat", Email = "ferhat@example.com" }; var userDto = mapper.Map<UserDto>(user); } }
Yukarıdaki kod örneğinde User sınıfında tanımlama yaptığımız Name ve Email değerini AutoMapper kütüphanesi ile otomatik olarak UserDto sınıfına eşleyebilmekteyiz.
Temel Özellikleri
AutoMapper kütüphanesinin temel özelliklerini şu şekilde listeleyebiliriz:
- Alan isimleri ve türleri aynı olan nesneler otomatik eşleşir
- Alan adları farklı olduğunda manuel konfigürasyon yapılabilir
- İç içe nesne yapıları otomatik dönüştürülebilir
- Listeler, diziler gibi koleksiyonlar da otomatik çevrilebilir
- Tek satırda çift yönlü mapping tanımlanabilir
- LINQ sorguları üzerinden direkt DTO’ya dönüşüm yapılabilir
Günümüzde Kullanımı
AutoMapper, günümüzde ASP.NET Core tabanlı projelerde en çok kullanılan kütüphanelerden biridir. Özellikle katmanlı mimarilerde yaygın şekilde tercih edilir. Visual Studio kod editörü içinde bulunan NuGet Paket Yöneticisi üzerinde kolayca erişilebilir ve açık kaynak topluluğu tarafından sürekli güncellenmektedir.