İçeriğe geç

MediatR Pattern ve CQRS nedir?

CQRS :Command Query Responsibility Segregation yani commandlar ile queryleri ayır neden? çünkü commandlar ve querylerin kullandığı dto objeleri birbirinden farklıdır. örneğin personel kaydettiğini düşün adı ve soyadını dbye ayrı ayrı gönderirsin. ama çekerken yada listede adisoaydi birlikte gösterebilirsin. bu nedenle kullandığın DTO lar aynı olursa fazladan kullanılmayan alanlar olacak rest apilerde buda karmaşıklığa yol açacak.

bir diğer nedeni de sisteminizde çok fazla query çekiliyorsa bunları ayrı apiye almakta fayda querylerin çokluğundan dolayı insert ve updatelerin etkilenmesini istemeyiz. aynı şekilde insert ve updateler transactional işlemler olduğundan dolayı apiyi yavaşlatır ve querylerinde yavaş çalışmasını sağlar. ayır kardeşim bunları rahatlar.

MediatR ne işe yarıyor eğer CQRS yapısını elle kendin yazarsan hangi handera hangi controller gidecek diye el yordamıyla kendin ayarlaman gerekir. MediatR ile tasarlarsan yapıyı controllerin içine sadece await _mediator.Send(requestModel); gibi bir satır şey yazıp geçersin o arkada hangi hadlera gittiğini bulur. arkadaş şu makalede güzel açıklamış.

https://www.gencayyildiz.com/blog/cqrs-pattern-nedir-mediatr-kutuphanesi-ile-nasil-uygulanir/

 public async Task<R> Handle(IdentifiedCommand<T, R> message, CancellationToken cancellationToken)
        {
           
                    var result = await _mediator.Send(command, 

                    return result;
         
        }

Tarih:Uncategorized

2 Yorum

    • Asıl biz teşekkür ederiz bu kadar güzel bilgileri bizimle paylaştığınız için.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir