Dapper ORM Nedir?

Dapper ORM Nedir? sorusunun cevabını öğrenmeden önce ORM'i hatırlayacak olursak;

"Nesne yönelimli programlama(OOP) ile veri tabanımız arasında bağ kurar ve veri tabanı yönetimini yapabilmeyi sağlar. Veri tabanımızda oluşturulan her bir tabloya karşılık kod tarafında bir sınıf oluşturma işidir."
Kod tarafındaki nesne <=> Veri tabanındaki nesne

Dapper ise Stack Overflow yazılımcıları tarafından .NET için geliştirilen bir ORM aracıdır. Açık kaynak olarak geliştirilmiştir. Bkz: Github Dapper için King of Micro ORM denilmesinin sebebini aşağıdaki görsele bakarak anlayabiliriz.

Hız bakımından Dapper'in diğer ORM ile karşılaştırılması
     
       Temel Özellikleri
  • Entity Framework, NHibernate gibi diğer ORM'lere göre hızlı bir şekilde veri tabanı sorgularını çalıştırır ve sonuç döndürür.
  • CRUD işlemleri yapabiliriz.
  • Entity Framework'e ait CodeFirst yaklaşımındaki gibi veri tabanı oluşturma işlemi yapmaz.
  • IDbConnection interfacesi veri tabanı işlemlerini yapmak ve bağlantı oluşturmak için Dapper extend etmiştir.
  • Asenkron işlemleri destekler. Async methods
  • ADO.NET tabanlıdır bu yüzden ADO.NET sorgularını yapabiliriz.
  • ADO.NET'teki SqlDataReader ile yapılan işlemlerin aynısını Dapper ile kod kalabalığını azaltmak amacıyla yapabiliriz.
  • Liste döndürecek sorgular için Linq yapısını kullanabiliriz. (ToList() metodu)
  • Basit ve hızlıdır.  
  • Dapper metotlarında parametre tanımlama özelliği vardır. Sorgularımızda parametre kullandığımızda SQL Injection'dan korur.
  • Modelleme yaparak hızlı kodlama imkanı sağlar.
  • SqlConnection nesnesiyle beraber Dapper metodlarını kullanarak queryleri daha kolay bir şekilde yazabiliriz. 
Dapper'i kullanabilmek için Nuget Package Manager'dan Dapper'i yüklememiz gerekir.
                                            

Dapper öğrenmek için yararlandığım kaynak olan Dapper Tutorial web sitesinin linkine buradan tıklayarak örneklere erişebilirsiniz.

Dapper konusunda yazdığım yazılar, vakit buldukça paylaşmaya devam edeceğim.
  1. Execute Methods
  2. Query Methods
  3. Multi Mapping
  4. ExecuteScalar 
  5. ExecuteReader
  6. Stored Procedure
  7. Dapper - Asenkron İşlemler (Dapper Async)
Aşağıdaki Github linklerinde bütün örneklere ulaşabilirsiniz. 

.NET 5 ile geliştirilen örnek repo: DapperCoreTutorial
Not: Repodaki projeler .NET 6'ya geçirildi.

.NET Framework ile geliştirilen örnek repo: DapperORMUsage

Yorumlar