15 Ağustos 2023 Salı

DAPPER FRAMEWORK İLE ASP.NET Core API KULLANIMI




DAPPER FRAMEWORK İLE ASP.NET 

Core API KULLANIMI 

StackOverflow ekibi tarafından geliştirilen açık kaynaklı bir Micro-ORM aracı Dapper ile ASP.NET Core API ile basit bir uygulama yapmadan önce Dapper in avantajlarına ve neden kullanılması gerektiğine bir bakalım;

Dapper'ın Özellikleri

Performans Odaklı: Dapper, veritabanı işlemlerini hızlı ve etkili bir şekilde gerçekleştirmek amacıyla tasarlanmıştır. Diğer ORM araçlarına kıyasla daha düşük bellek tüketimi ve daha hızlı sorgu çalıştırma yeteneği sunar.


Minimal Sözdizimi: Dapper, basit ve anlaşılır bir sözdizimi kullanır. SQL sorgularını doğrudan kullanabilir ve parametreleri kolayca ekleyebilirsiniz.


SQL Enjeksiyonu Koruması: Parametre kullanımı sayesinde Dapper, SQL enjeksiyonu riskini azaltır. Parametreleri otomatik olarak sağlamlaştırır ve güvenli veritabanı sorguları oluşturmanıza yardımcı olur.


Esnek Nesne Eşleme: Dapper, SQL sonuçlarını .NET nesnelerine otomatik olarak eşleyebilir. Veritabanından alınan sonuçları, sınıflarınıza kolayca dönüştürebilirsiniz.


Birden Çok Sonuç Desteği: Dapper, birden çok sonuç seti döndüren sorguları da destekler. Bu özellikle stored procedure'larla çalışırken faydalıdır.


İşlem Desteği: Dapper, işlem (transaction) yönetimini destekler. Birden fazla sorguyu tek bir işlem içinde yürütebilir ve işlem başarısız olduğunda geri alabilirsiniz.

Dapper'ın Neden Kullanılması Gerektiği


Performans ve Hız: Dapper, doğrudan SQL sorgularını kullanarak veritabanı işlemlerini gerçekleştirdiği için diğer ORM araçlarına kıyasla daha hızlı çalışabilir.


Kontrol ve Esneklik: Dapper, geliştiricilere veritabanı işlemlerinde daha fazla kontrol ve esneklik sunar. Özel SQL sorgularını kolayca oluşturabilir ve performans optimizasyonları yapabilirsiniz.


Hafif ve Basit Kütüphane: Dapper, minimal bir kütüphanedir ve uygulamanıza ağır bir yük getirmez. Kullanımı basittir ve hızlı bir şekilde entegre edilebilir.


Varolan Uygulamalarla Uyumlu: Dapper, varolan .NET uygulamalarına kolayca entegre edilebilir. Daha önce ADO.NET kullandıysanız, Dapper'ı benimsemek kolay olacaktır.


SQL Odaklı Çalışma: Eğer SQL bilginiz varsa veya özel sorgularınız varsa, Dapper size bu sorguları kullanma esnekliği sağlar.

Sonuç olarak, Dapper, hızlı ve performans odaklı bir veritabanı erişim kütüphanesidir ve özellikle veritabanı işlemlerinde performans ve kontrol önemli olduğunda tercih edilebilir.

-----------------------------------Uygulamaya geçelim ----------------------------------------

API uygulamasını oluşturmadan önce Database tablosunu oluşturup içine birkaç veri girelim.


DataBase tablosunu oluşturduktan sonra API projemizi oluşturmaya geçebiliriz.
Visual Studioda geçtiğimiz günlerde .Net8 geldi fakat ben .Net7 ile projemi oluşturuyorum .




Görselde de görüldüğü gibi "denemeapi" adında bir API projesi oluşturdum.



Daha sonrasında nuget paket yöneticisinden dapper paketini projemize yükleyelim.

Package Manager Console kullanıyorsanız PM> Install-Package Dapper komutuyla da yükleyebilirsiniz.

Biz kendi model ve controllerimizi yapacağımız için önce database tablomuza karşılık gelen modelimizi oluşturalım.



Projede Entitis adında bir klasör oluşturup onun içine de; User.cs classımızı oluşturalım.


Modelimizi oluşturduktan sonra sıra geldi connection string tanımına.



Appsettings.json dosyasında görseldeki gibi stringimizi yazalım kaydedelim.



Helpers Adında bir klasör daha oluşturalım. içine de ; ConnectionHelper.cs adında bir class oluşturalım.



CreateSqlConnection metodu, SqlConnection sınıfından instance döndürür. Böylece database erişebiliyoruz.



Program.cs’e dosyasında; ConnectionHelper’ı singleton olarak tanımlayalım ki ; CreateSqlConnection metodunu classlarda Dependency Injection ile kullanabilelim.


Repository kısmına geçiyoruz...
bir klasör daha oluşturup adını Interfaces koyalım. İçine de IUserRepository diye bir interface oluşturalım.



Sonrasında bir klasör daha bunun adı da Repositories olsun içinde de UserRepository diye bir class oluşturalım.



Az önce yaptığımız gibi Program.cs’e dosyasında; UserRepository ve IUserRepository’i scoped olarak ekleyelim.




Şimdi sql sorgumuzu yazmadan önce IUserRepository açalım ,GetUsers ve GetUserById metodumuzu yazalım.




Görselde de gördüğünüz üzere GetUsers methodu içerisinde basit bir select sorgusu yazdık ve Dapper’ın Query extension methodunu çağırdık. Query ile bir sorguyu execute edebilir ve dönen sonucu mapleyebiliriz.

GetUserById metodumuzda sorguyu çalıştıran ve dönen ilk sonucu eşleştiren QueryFirst metodumuzu çağırdık.



Mevcut Controllers klasörümüzde; UserController oluşturalım.



Ve hazır.! projemizi ayağa kaldırabiliriz F5 ile çalıştırdığımızda swagger ile açılacaktır.







Yorum Gönder

Görüşlerinizi belirtin :

Start typing and press Enter to search