Unit Of Work Pattern Nedir?

Abdullah Öztürk
2 min readDec 27, 2020

--

Merhaba Srkadaşlar,

Bu makalemde generic repository ile Unit of Work tasarım deseni nasıl kullanılır , ne işe yarar gibi konularını işleyeceğiz.

Generic Repository : Oluşturduğumuz bu sınıf , veritabanında karşılığı olan tüm tablolar için genel bir CRUD işlemlerini yapabilmemizi sağlar. Bu sayede kod okunabilirliğini arttırmışken DRY (Don’t Repeat Yourself) yazılım geliştirme ilkesini de çiğnememiş oluruz.

Unit Of Work : Veritabanı ile ilgili tüm işlemlerin tek kanaldan yapılmasını sağlayan ve yapılan tüm işlemlerin hafızada tutularak toplu halde gerçekleştirilmesini sağlayan bir tasarım desenidir.

O zaman gelin , beraber altyapıyı kuralım. Öncelikle çalışmak istediğimiz klasörde terminali başlatıp aşağıdaki komutu girerek “UnitOfWorkApp” adlı bir konsol uygulaması oluşturuyoruz.

dotnet new console -n UnitOfWorkApp

Solution içerisinde 2 adet klasörümüz bulunmakta. Bunlardan biri model sınıflarımızın olduğu “Entities” klasörü , diğeri de veritabanı ile ilgili sınıfların olduğu “Data” klasörümüz. Makale bitiminde aşağıdaki gibi bir hiyerarşik yapı oluşturmuş olacağız.

“Entities” klasörüne gelip model sınıflarımızı oluşturmaya başlayalım.

“Data” klasörüne geçelim ve context sınıfımızı yazalım .

“Data” klasörünün içerisinde repository sınıfımızı yazalım.

Aynı klasörün içerisine “UnitOfWork” klasörü açalım ve gerekli sınıfları yazalım.

Şimdi ise veritabanını oluşturması için Package Manager Console’u açıyorum ve sırasıyla aşağıdaki komutları giriyorum.

Enable-Migrations 
Add-Migration Init
Update-Database -verbose

Dikkat : Migration işlemi yaparken hata alırsanız EntityFrameworkCore.Tools ve EntityFramework.Design paketlerinin yüklü olduğundan emin olunuz.

Artık genel altyapıyı kurduk. Gelin beraber ana sınıfımızda testimizi yapalım.

Bu makalemde temel düzeyde unit of work tasarım deseninin kurumsal mimaride nasıl implemente edileceğini gördük.

Projenin github linkine buradan ulaşabilirsiniz.

--

--