Dapper Repository Kullanımı ve Örnek Proje – 3

Şimdi de gelin başlangıç tabloları ve verileri ile veri tabanımızı ve Data katmanımızın içeriğini oluşturalım. Bu aşamada öncelikle veri tabanında ne gibi işlemler yaptığımı kısaca anlatıyor olacağım. Ancak projenin en alt kısmında Github hesabıma ulaşan bir link göreceksiniz. O bağlantıya tıklayarak projeyi GitHub üzerinden çekebilirsiniz. Ayrıca projenin ana dizininde en güncel veri tabanı SQL koduna da görebilirsiniz. Şimdi veri tabanımıza geçelim. Öncelikle veri tabanımızda şimdilik iki adet tablo kullanacağız. Bunlardan birincisi kullanıcıları tutacağımız “Users” tablosu. …

Dapper Repository Kullanımı ve Örnek Proje – 2

Evet Arkadaşlar, bir aradan sonra projemize artık start verelim istedim. Özellikle bundan sonra daha hızlı ilerleyerek katmanlı mimari ile projemizi nasıl hayata geçireceğimizi görüyor olacağız. Öncelikle lafı fazla uzatmadan yeni bir .net core proje açarak işimize başlayalım. Özellikle görseller ekleyerek altlarına da açıklamalar yazarak ilerlemek istiyorum ki daha anlaşılır olsun. Lütfen takıldığınız bir husus olur ise yorum kısmından sormayı unutmayın. Visual Studio üzerinden “File > New > Project” diyoruz. Buradan ASP.NET Core Web Application seçiyoruz …

Dapper Nedir? Farkları Nelerdir?

Son zamanlarda bir projemde kullanmak üzere farklı ORM’ler üzerinde çalışmaktayım. İşte bu yazımda bunların sonuncusu olan Dapper hakkında bilgi vermek istiyorum. PetaPoco, EntityFramework, Fluent NHibernate ile ilgili yazılarımı da dilerseniz okuyabilirsiniz. Şimdi geçelim nedir bu Dapper ve farkları nelerdir?… Dapper Nedir? Aslında temelde Ado.Net tabanlı olan ve size sadece modelleme yaparak hızlı kodlama imkanı sağlayan bir ORM. Tabi bu kadar kısa ve net özetleyerek bundan ibaret olduğunu düşündürmek istemem. Özellikle performans olarak gerçekten ado.net’i aratmayacak …

PetaPoco Nedir?

PetaPoco Aslında epey süredir bir çok developer tarafından kullanılan güzel bir ORM yapısı. Kendine has bir Database Engine’i olsa da aslen kullanımı gayet basit ve kolay. Github veya benzeri platformlarda bulabileceğiniz bir mimariye sahip olsa da, aslen mimarisinde bir değişiklik yapma ihtiyacınız yok ise sadece DLL’ini de indirip kullanabileceğiniz bir ORM. Yine de indirmek isteyen olursa diye ben de linkini paylaşmakta fayda görüyorum; https://github.com/CollaboratingPlatypus/PetaPoco Performans Performans açısından birçok noktada Entity Framework’ün önüne geçebilmekle birlikte Fluent NHibernate ile …

EntityFramework vs Fluent NHibernate

Başlıktan da anlaşılacağı üzere bu testimde kendi bilgisayarımda EF ve FNHibernate’i karşılaştırdım ve performans grafiğini çıkardım. Bahsi geçen işlemleri elimden geldiğince aynı datalar üzerinde uygulamaya çalıştım. Şimdi işlem işlem performans sonuçlarını görelim isterseniz. Not: Tüm işlemler BULK(Toplu) olarak yapılmıştır. Yalnızca adet olarak “tekil” belirtilen işlemler tek başına yapılmıştır. INSERT İŞLEMİ Adet 10.000 Entity Framework 26.576 ms Fluent NHibernate 4.695 ms Adet 25.000 Entity Framework 185.167 ms Fluent NHibernate 9.251 ms Adet 1.000.000 Entity Framework 34.275.210 …

ORM Yapıları, Eksi ve Artıları

ORM Yapıları ORM Nedir? Ne İşe Yarar? ORM yapılarını sanırım bir çoğumuz duymuşuzdur. Object Relational Mapping-İlişkisel Nesne Eşleştirme’nin kısaltılmışı olarak biz developer’ların hayatına çok çok uzun olmayan bir zaman önce giren ve işlerimizi gerçek anlamda kolaylaştırmaya dönük yapılar. Eskiden hatırlayın; bir kayıt üzerinde işlem yapmak ve/veya binlerce kayıt üzerinde işlem yapmak için satırlarca SQL komutu girmek zorundaydık. İşte, bir birinden farklı bir çok ORM yapısı ile bu sorgular çok ama çok kısalmış durumda artık. Peki bu …

EntityFramework Stored Procedure Çalıştırma

EntityFramework için bizi Ado.Net’in standart mekanizması olan SqlCommand’lar, SqlConnection’lar deryasından kurtaran en büyük nimet demek yanlış olmaz. Faydaları saymakla bitmez, karmaşık sogulardan, sürekli bağlantı açıp kapatmaktan ve gibi gibi bir ton angaryadan. Geri dönüş tiplerini belli şartlar altında ayarlayabilmek, gereksiz sorgulardan veritabanımızı soyutlayabilmek, Insert, Update, Delete gibi işlemlerimizi çok daha Object Oriented hale getirmek gibi bir sürü konu sayabiliriz. Elbette kimine göre ufak tefek kimine göre biraz daha büyük çaplı sayılabilecek bazı performans sıkıntılarıyla karşımıza …