Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Dapper Execute ile INSERT, UPDATE, DELETE: Etkilenen Satırlar ve Yeni Id
Execute ile INSERT, UPDATE ve DELETE çalıştırıp etkilenen satır sayısını okuyor, yeni id'yi RETURNING ve last_insert_rowid() ile alıyoruz; SQL Server OUTPUT ve PostgreSQL RETURNING farkına bakıp listeyle Execute'un neden bulk olmadığını ölçüyoruz.
Dapper ile Parameter'lar ve SQL Injection: Güvenli Sorgunun Kuralları
String birleştirmenin neden SQL injection'a kapı açtığını gerçek bir saldırıyla görüyor, ardından anonymous object, DynamicParameters, IN @Ids list expansion, DbString ve $ önekini inceliyoruz; ORDER BY @Column gibi sessiz tuzaklarla.
Dapper ile Tek Satır Sorguları: QueryFirst, QuerySingle ve ExecuteScalar
QueryFirst, QueryFirstOrDefault, QuerySingle ve QuerySingleOrDefault'u sıfır, bir ve çok satırla yan yana çalıştırıp hangi exception'ı ne zaman fırlattıklarını görüyoruz; default(T), nullable tipler ve ExecuteScalar<T> tuzaklarıyla.
Dapper ile Query ve Mapping: Kolonlar Property'lere Nasıl Map Edilir?
Query<T>'nin kolonları property'lere nasıl map ettiğini görüyoruz: büyük-küçük harf duyarsız mapping, sessizce atlanan kolonlar, NULL ve varsayılan değerler, MatchNamesWithUnderscores ve cache tuzağı, dynamic sonuçlar, record'larda constructor mapping'i.
Dapper Nedir? ADO.NET'in Üzerindeki İnce Katman ve İlk Sorgu
Dapper'ı ADO.NET üzerine eklenen extension method'lar olarak tanıyoruz: micro-ORM ne demek, EF Core ile ne zaman hangisi, .NET 10 + Dapper 2.1.89 + SQLite kurulumu, ilk Query ve 1.x'ten Dapper.AOT'ye kısa tarihçe.
EF Core ve Mimari: Repository, CQRS'in Okuma Tarafı ve Dapper'a Geçiş
Generic repository'nin WHERE'i nasıl sessizce belleğe taşıdığını gerçek SQL ile görüyor, DbContext'in zaten bir unit of work olduğunu tartışıyoruz. Aggregate'e özel repository, CQRS okuma tarafında projection ve aynı connection ile transaction'ı paylaşan Dapper ile kemik yapıyı tamamlıyoruz.
Entity Framework Core Nedir? ORM Fikri ve EF Core'un Mimarisi
ORM'in neden var olduğunu düz ADO.NET kodundan yola çıkarak görüyoruz: EF Core'un DbContext, model, provider ve change tracker parçaları, SQLite ile SQL Server'ın aynı LINQ'ten ürettiği farklı SQL, EF6 ile EF Core farkı, Dapper karşılaştırması ve serinin kurgusu.