.Net Core CQRS + MediatR | CQRS Pattern | Mediator Pattern

  Рет қаралды 19,883

Tech Buddy

Tech Buddy

Күн бұрын

Пікірлер: 47
@muzluballi
@muzluballi Жыл бұрын
Hem bu video hem de onion mimarisi videoları için teşekkürler, emeğinize sağlık
3 жыл бұрын
Uzun zamandır sizden dinlemeyi beklediğim konu. Bugün yarın mutlaka uygulayarak izleyeceğim. Teşekkürler!
@beyazbiyaz
@beyazbiyaz 2 жыл бұрын
Zor bir konu ama gayet sade ve anlaşılır anlatılmış.
@boraozgur5183
@boraozgur5183 2 жыл бұрын
Çok güzel bir anlatım olmuş emeğinize sağlık hocam
@ozkankoru606
@ozkankoru606 3 жыл бұрын
Çok iyisin yaaa aradığım bütün bilgiler kanalında mevcut ağzına yüreğine sağlık
@TechBuddyTR
@TechBuddyTR 3 жыл бұрын
Çok teşekkür ederim. İyi Seyirler
@muhammedmustafavanl9463
@muhammedmustafavanl9463 3 жыл бұрын
her zamanki gibi kaliteli bir video daha
@TechBuddyTR
@TechBuddyTR 3 жыл бұрын
Çok teşekkür ederim. Anlaşılması zor konulardan birisi bu cqrs pattern. Umarım faydalı olmuştur
@mustafakoca99
@mustafakoca99 Жыл бұрын
Tesekkurler, güzel anlatılmış
@aog.tr.6828
@aog.tr.6828 2 жыл бұрын
Teşekkürler. Çok faydalı oldu.
@Yağız_Kerem
@Yağız_Kerem 2 жыл бұрын
Teşekkürler hocam
@DevHuseyinOzcan
@DevHuseyinOzcan 9 ай бұрын
Elinize sağlık güzel anlatım 👌
@hikmetfazila6299
@hikmetfazila6299 Жыл бұрын
emeğinze sağlık hocam
@mstfylmz
@mstfylmz Жыл бұрын
İçerik gerçekten kaliteli. Türkçe kaynak olarak daha iyisi yok :D Bir sorum var hocam. Post isteği gönderdiğinizde yada command isteği diyelim. Geriye createdEntity'i döndürme durumuna olmaması gereken bir durum dediniz. İnternette bazı kaynaklara baktım onlar createdEntity'i dönmüşler. Bunun gibi çok durumla karşıkaşıyorum. Mesela CleanArchitecture da bazı örneklerde Infrastructere a Domain referans verilmiş bazılarında verilmemiş. Kaynaklara baktığımda verilmediğini anlıyorum. Bu ve bunun gibi bilgilerin doğruluğuna vs. Tarzında da video çekebilir misiniz ? Teşekkürler. Saygılarımla.
@sabitkondakc9147
@sabitkondakc9147 3 жыл бұрын
Güzel içerikler üretmişsiniz, çalışmalarınızın devamını temenni ederim, bu konu hakkında nacizane bir sorum var. Anlatımda da bahsettiğiniz gibi genellikle CQRS farklı iki assembly üzerinden tasarlanıyor; Command için T-SQL kullanırken Query için NoSQL veya PostgreSQL kullanmak mümkün mü? böyle bir senaryoda View oluşturmak mümkün mü?
@TechBuddyTR
@TechBuddyTR 3 жыл бұрын
Write ve read için ayrı db ler kullanmakta sorun yok, hatta cqrs bizi buna teşvik ediyor ama buradaki problem veritabanlarının senkronize olması. Eğer write işleminden sonra db lerin sync olmasıno garanti ediyorsanız read tarafında ne kullandığınızın pek bir önemi kalmıyor. EventSourcing burada kullanılan pattern oluyor genelde ve EventStore aracı bu iş için biçilmiş kaftan. Read tarafında kullandığınız db ye göre istediğiniz view leri oluşturabilirsiniz, sonuçta veri tek db den geliyor. Daha kolay viewler oluşturabilmek için ise CouchBase tercih edilebilir nosql db olarak.
@sabitkondakc9147
@sabitkondakc9147 3 жыл бұрын
@@TechBuddyTR Detaylı cevabınız için teşekkür ederim.
@aslanamca8225
@aslanamca8225 3 жыл бұрын
Her proje çok büyük, karmaşık ve çok trafik alan bir uygulama olmuyor. Hatta çoğu proje olmuyor. Buna rağmen bazı insanlar hiç gerek olmamasına rağmen sağda solda okuduklarına özenerek microservice yapmaya ve farklı farklı mimariler alt yapılar kullanmaya çalışıyor. Benim sorum şu; daha küçük ve geleneksel monolith projelerde Clean Achitecture + CQRS kullansak fazla abartmış olur muyuz? Özellikle CQRS için illa 2 tane veritabanı kullanmak zorunda mıyız? Daha fazla kod yazılmasına rağmen command ve query'leri bölmesi ve her birinin kendi handler'ı olması bana daha solid geliyor.
@TechBuddyTR
@TechBuddyTR 3 жыл бұрын
Mikroservise geçmek büyük bir karar. Basit monolith uygulamaların eğer çok büyük değillerse mikroservislerden daha mantıklı olduğu bir sürü senaryo var. Over engineering diye geçiyor bu. YAGNI diye bir ilke var. You aren't gonna need it. Kullanmayacaksan o özelliği geliştirmeye gerek yok. CQRS için 2 veritabanı olması gerekmiyor elbette. Ama asıl kullanım ama bu yönde. Küçük uygulamalarda CQRS kullanmak ve hepsinin handler larını ayırmak keyifli olabilir ama bu sayının çok çok artmamasına dikkat etmek lazım aynı proje içinde.
@abdulkadirkg
@abdulkadirkg 2 жыл бұрын
Salih hocam merhabalar, CQRS'de Create Command'larımızda DTO yerine doğrudan propertyleri mi tanımlamalıyız? mesela CreateProductCommand içerisinde ProductDto yerine ProductId, ProductName, Price şeklinde ayrı ayrı mı vermeliyiz? Bunun best practice'si bu mudur?
@TechBuddyTR
@TechBuddyTR 2 жыл бұрын
Evet property leri tanımlamalıyız. Çünkü bir nevi bir dto yaratıyoruz gibi düşünebiliriz dış dünyanın kullanması için.
@abdulkadirkg
@abdulkadirkg 2 жыл бұрын
@@TechBuddyTR teşekkür ediyorum, emeğinize sağlık.
@thesandboxgamingvideos
@thesandboxgamingvideos 8 ай бұрын
CQRS bir servisin methodlarını mediatr ile çağırırken istediğim nesneyi vererek sonuç alma doğru mu anlıyorum ? Her servis methodunu class lar böyle parçalamak ayırmak çok işçilik istiyor. Güzel miii değil miii çözemedim.
@TechBuddyTR
@TechBuddyTR 8 ай бұрын
CQRS'in amacı değil bu bahsettiğiniz. Bundan önceki tanım videosunu izleyebilirsiniz.
@canmertinyo
@canmertinyo 6 ай бұрын
tesekkurler
@ermekbakyt5507
@ermekbakyt5507 3 жыл бұрын
Udemyde full course dersleri cekseniz iyi olur!(seviniriz) anlatim tarziniz harika!!!
@TechBuddyTR
@TechBuddyTR 3 жыл бұрын
Çok teşekkür ederim ama udemy nin bir miktar çöplüğe dönüştüğünü düşünüyorum. Gerçekten kaliteli kursları bulması gayet zor. Hem de kendilerinin fiyat politikasını da pek tasvip etmiyorum. Şimdilik youtube dan devam etmek istiyorum. Katkıda bulunmak isterseniz Katıl Üyesi olabilirsiniz :-)
@by-Org
@by-Org 3 жыл бұрын
arkadaş dur ne udemy si ya
@ozguratilgan5105
@ozguratilgan5105 3 жыл бұрын
Üstad uzun zamandır Onion Mimariyi sizinki gibi güzel anlatan ilk defa rastladım. Teşekkür ederim. Ek olarak sizden Elasticsearch, RabbitMq ve gRPC konularını microservis mimarisi içerisinde aktarmanızı istiyorum ama özel istirhamım RabbitMq ve gRPC'yi bazı arkadaşların yaptığı gibi email gönderme gibi yavan örnekler ile değil farklı microservisler arasında crud ve transaction işlemleri sürecinde veri tutarlılığı gibi profösyonel düzeyde sizin kalitenizde aktarmanızı rica ediyorum. Saygılar...
@TechBuddyTR
@TechBuddyTR 3 жыл бұрын
Merhabalar, öncelikle çok teşekkür ederim elimden geldiğinde açıklayıcı anlatmaya çalıştım. Elastic, RabbitMq ve gRPC gibi kavramlar bildiğiniz gibi çok geniş kavramlar ancak en genişi ise Mikroservisler. MicroService mimarisinde Transaction bütünlüğü, Event-Driven yöntemi, CAP Teoremine bağlı olarak sistemin devamlılığını sağlamak ise çok daha karmaşık kavramlar. KZbin'da bir kaç video da anlatmak tüm bu kavramlar için haksızlık olur. Belki küçük küçük bahsederek başlanabilir ama yine de bahsettiğiniz gibi Profesyonel yöntemleri uygulamak ve bu uygulamaları açıklayıcı olacak şekilde anlatmak biraz uzun ve büyük bir iş. Ama RabbitMQ ve gRPC konularında bir kaç video hazırlamayı planlıyorum. En azından bazı kavramlara giriş yapmış oluruz daha sonra büyük projelerde kullanırken çok fazla açıklama yapmaya gerek kalmadan hızlıca ilerlenebilir. İlginiz için teşekkür ederim.
@ozguratilgan5105
@ozguratilgan5105 3 жыл бұрын
@@TechBuddyTR Üstadım en azından farklı Microservis’ler arasındaki CRUD ve transaction işlemlerinde en azından RabbitMQ kullanımına ve gRPC konularına değinirseniz bu bile önemli bir kapı aralayacaktır. İnanın webde tek Microservis üzerinden RabbitMQ anlatımları baya kastı😀. Dört gözle bekliyor olacağım saygılar sunarım.
@oguzhankomcu2031
@oguzhankomcu2031 2 жыл бұрын
Hocam şunu sormak istiyorum. Ben autofac ile oluşturacağım IOC konteynırımı hangi katmanda oluşturmalıyım ?
@seyhmusalatas1740
@seyhmusalatas1740 2 жыл бұрын
infrastructure
@tuncaydemirer
@tuncaydemirer 2 жыл бұрын
farklı bir sorum olacak. gerçek projelerinizde de id leri guid olarak mı veriyorsunuz. guid index lemelerde performans sorunları çıkarmıyor mu?
@TechBuddyTR
@TechBuddyTR 2 жыл бұрын
Merhabalar, Genelde Guid kullanmaya özen gösteriyorum. int ve Guid kullanmanın ikisinin de hem avantajı hem dezavantajı var. Şu linkte Guid kullanımı ile ilgili bazı bilgilere yer verilmiş. Index kullanmayı doğru bilirsek çok kötü bir performans kaybı olmuyor bizim için. dba.stackexchange.com/a/266
@tuncaydemirer
@tuncaydemirer 2 жыл бұрын
@@TechBuddyTR bu konuyu baya araştırdım. Database ler den makalelere kadar. Hangi projede nasıl kullanılmış şeklinde. Profesyonel kişilerin guid kullanımındaki fikirleri önemli oluyor. Int in dezavantajı nedir. tahmin edilebilir olması sizin için bir dezavantaj mıdır. Teşekkür ederim.
@TechBuddyTR
@TechBuddyTR 2 жыл бұрын
Evet tahmin edilebilir olması bir problem. Veritabanları veya tablolar arası veri taşıma işlemlerinde ise int ID kullanımı yine bir dezavantaj. Çünkü tabloda o alanın unique olması gerekiyor ama başka bir tablodan taşırken her iki tablonun kendi id leri çalışabilir. Veri taşıma bulk insert gibi konularda, sadece tablo bazında unique olması genelde baş ağrıtıcı olabiliyor
@tuncaydemirer
@tuncaydemirer 2 жыл бұрын
Peki CQRS ile oluşturulan ve db leri ayrılan bir projede primary key ler Guid mi tercih edilmeli. Data taşıma var ama birleştirme yok.
@yavuzcakmak7505
@yavuzcakmak7505 2 жыл бұрын
Merhaba, bu desing pattern’i kullandığım zaman projeme ne katmış olucam anlayamadım açıkçası. Kod okunabilirliğini arttırabilirim onun dışında aklıma gelen bir şey yok
@TechBuddyTR
@TechBuddyTR 2 жыл бұрын
katmanlar arası bağımlılık azalmış olacağı için, projenin büyümesi sırasında her katman kendi görevini yapacağı için, hem kod yazarken tek bir katmana yönelerek bölünmemiş olacaksınız hem de gerektiğinde istediğiniz bir katmanı denklemden çıkartıp yerine yenisini ekleyebileceksiniz çok hızlı ve kolay bir şekilde. Diyelim ki Infrasturcure katmanınızı değiştirerek, artık SQL server değil de Redis kullanacaksınız. Bu durumda değişiklikleri sadece infrasturcure katmanında yapmanız yeterli olacak. diğer noktalarda bir şey değiştirmeye gerek kalmayacak.
@gizemkarabas5878
@gizemkarabas5878 Жыл бұрын
@@TechBuddyTR Bu kadar ayrıntılı biçimde cevapladığınız için kendi adıma teşekkür ederim tam olarak ne avantajı olduğunu anlayamamıştım
@orhunsftdvp
@orhunsftdvp Жыл бұрын
tüm içtenliğimle söylüyorum yorum yapmak için değil H A R İ K A
@ertanylmaz7727
@ertanylmaz7727 Жыл бұрын
Med yerine Feature yazsaydın, o an bittiğim an dı...
@caglaryalcn8041
@caglaryalcn8041 2 жыл бұрын
hocam font size hariç her şey güzel.
@TechBuddyTR
@TechBuddyTR 2 жыл бұрын
Font'u da sonraki videolarda düzelttik :)
@caglaryalcn8041
@caglaryalcn8041 2 жыл бұрын
​@@TechBuddyTR Farkettim hocam eline sağlık :)
.Net Core Onion Architecture + CQRS + MediatR Full Video
49:26
Tech Buddy
Рет қаралды 16 М.
Onion Architecture | Soğan Mimarisi | Dotnet Core
18:24
Tech Buddy
Рет қаралды 14 М.
«Жат бауыр» телехикаясы І 26-бөлім
52:18
Qazaqstan TV / Қазақстан Ұлттық Арнасы
Рет қаралды 434 М.
Net Core Onion Architecture Demo
36:56
Tech Buddy
Рет қаралды 15 М.
WebApi: Etkili KUYRUK Yapısı | Background Service Queue
33:07
Tech Buddy
Рет қаралды 12 М.
.Net Core Exception Handling Middlewares | Dependency Injection
16:09
.Net Core BackgroundService | IHostedService
21:49
Tech Buddy
Рет қаралды 7 М.
Komutları ve Sorguları Birbirinden Ayıran Yapı: CQRS Nedir?
10:40
Ahmet Buğra Çakıcı
Рет қаралды 9 М.
What is DDD | Domain Driven Design
53:53
Tech Buddy
Рет қаралды 36 М.
Serilog ile Loglama | File - Console - Debug
35:32
Tech Buddy
Рет қаралды 11 М.
.Net Core RabbitMQ Client | Producer + Consumer | WinForm + Console
1:15:23
.Net Core Request Response Logging | Middleware
31:35
Tech Buddy
Рет қаралды 11 М.