Practical Domain-Driven Design with EF Core - Hossam Barakat

  Рет қаралды 28,986

NDC Conferences

NDC Conferences

3 жыл бұрын

You have probably heard about Domain-Driven Design (DDD) and read about the benefits of building complex software applications with DDD, but struggled in applying DDD to your project especially with legacy code bases that have anemic domain models. In this session, we will cover the fundamentals of DDD with focus on the tactical patterns like aggregates, entities, value objects and domain events, how to use a pragmatic approach to craft a cohesive domain model, and finally how to leverage EF Core capabilities to persist the domain model into a relational database. By the end of this talk, you will be equipped with enough knowledge to apply DDD principles to both greenfield and brownfield projects without cluttering your domain model with dependencies on EF Core.
Check out more of our talks at:
ndcsydney.com
www.ndcconferences.com/

Пікірлер: 47
@Deathhead68
@Deathhead68 3 жыл бұрын
Love the content, really great to see a concrete example, particularly addressing your decision to stick with 1 model to be used by ef core and the domain. Keep it coming but upgrade the mic man! :)
@everyonesview
@everyonesview 3 жыл бұрын
The quality of the content here is so good that I'm completely oblivious to what's happening in the audio side of things. Good work, pal! Awesome.
@nickfotopoulos5323
@nickfotopoulos5323 3 жыл бұрын
Always record from the presenters side. Then if the stream isn't cooperating, you can upload a better recording later.
@HossamElDeen
@HossamElDeen 3 жыл бұрын
Thanks for the tip, I will try it next time.
@PaulSebastianM
@PaulSebastianM 3 жыл бұрын
@@HossamElDeen Please! Recording from the stream viewer's side is unacceptable for using as a learning material later. The compression and variable quality that can depend on the receiver's network speed and the streaming infrastructure's load, only makes your accent harder to ignore and long term listening and comprehension just... unbearable! :'(
@HossamElDeen
@HossamElDeen 3 жыл бұрын
@@PaulSebastianM the suggestion is more of a backup plan :) and yes it should be recorded with high quality. Thanks for your input 🙏
@KibbleWhite
@KibbleWhite 3 жыл бұрын
Yes, I tried listening but couldn't keep up due to the poor internet connection and audio artifacting. Sorry
@djchrisi
@djchrisi 3 жыл бұрын
I don't understand. Even fashion bloggers are able to use a proper mic, but apparently some top notch software dudes aren't.
@cuno2712
@cuno2712 3 жыл бұрын
I found that most of tech talk hosted by NDC have poor audio quality, i complain to them a lot of times but still the same. Btw this is great talk but non native english viewer will drop it because poor audio quality
@fieryscorpion
@fieryscorpion Жыл бұрын
Excellent talk. But would have been even better if you had used projects instead of folders for putting your Domain, Infrastructure, Application etc. Do you have an example for how to structure projects with the correct project references? Would love to see how you work with Infrastructure, entities, DTOs and so on.
@PaulSebastianM
@PaulSebastianM 3 жыл бұрын
41:13 Having a domain service (the one for sending notification emails when a new subscription has been created) inherit from an EFCore interface, which is part of the persistence layer, doesn't seem right to me. It seems like a coupling of core domain logic to the persistence layer...
@nemanja.djordjevic
@nemanja.djordjevic 2 жыл бұрын
DomainEventDispatcher is infrastructure service, not domain. I am more concerned having dependency on MediatR INotification interface within domain. But there is a solution to this, which I already used in production app.
@fredimachadonet
@fredimachadonet 3 жыл бұрын
Great talk Hossam. Thank you! :)
@HossamElDeen
@HossamElDeen 3 жыл бұрын
Thanks Fredi 🙏.
@SS-hp4op
@SS-hp4op 3 жыл бұрын
Excellent content. Thanks a lot.
@gen2prog
@gen2prog 3 жыл бұрын
Thanks for video. I learned a lot from it. Keep it up.
@naveddeshmukh9836
@naveddeshmukh9836 3 жыл бұрын
Amazing. I learned a lot.
@HossamElDeen
@HossamElDeen 3 жыл бұрын
Glad that you liked the talk
@user-fi9zg1fv7r
@user-fi9zg1fv7r 9 ай бұрын
Very good content , Please can you share the link to the repo
@fieryscorpion
@fieryscorpion 2 жыл бұрын
Great video, Can you please provide a link to the code repository? Thank you!
@radoslav07
@radoslav07 2 жыл бұрын
Can you share these DDD snippets? Are they resharper templates?
@PaulSebastianM
@PaulSebastianM 3 жыл бұрын
24:48 shouldn't CalculateCurrentPeriodEndDate be called CalculateFirstPeriodEndDate or CalculateBillingPeriodEndDateStartingFromNow? I mean that's what the code seems to do, calculate the end date for billing for the very first billing period, because the end date is always calculated starting from DateTime.UtcNow. To calculate the current period end date, you would need to start from the last period's end date.
@mhDuke
@mhDuke 3 жыл бұрын
cheers yabu hossam. جزيت عنا خيراً
@HossamElDeen
@HossamElDeen 3 жыл бұрын
آمين وإياكم
@khalidalasi2031
@khalidalasi2031 2 жыл бұрын
Thanks ya Hossam this is helpful and rich
@rafigeniuscs
@rafigeniuscs 3 жыл бұрын
Looking source code, please post the URL if its available on Git
@farhadshariat
@farhadshariat 3 жыл бұрын
thanks for great content ...for example why did you new subscribtion is that need for unit testing? cause events hold data of command and it save the changes in database I dont really get it though
@amrosaad9730
@amrosaad9730 3 жыл бұрын
Thank You.
@vitek0585
@vitek0585 3 жыл бұрын
Great example but the sounds quality is bad. Please share source code
@HossamElDeen
@HossamElDeen 3 жыл бұрын
Thanks for the feedback. HYG github.com/hossambarakat/Subscriptions-DDD
@vitek0585
@vitek0585 3 жыл бұрын
@@HossamElDeen 👍Thanks a lot)
@leifchen1522
@leifchen1522 3 жыл бұрын
where is the full code sample?
@mlukier
@mlukier 3 жыл бұрын
I've found it here: github.com/hossambarakat/Subscriptions-DDD
@watchchat
@watchchat 3 жыл бұрын
Audio is choppy
@IAmQwame
@IAmQwame 3 жыл бұрын
great content
@ravijsoni2477
@ravijsoni2477 2 жыл бұрын
I cannot see the project structure on the left in the vs code. Please share your github repo link, if you can. Thanks.
@martymcfly9396
@martymcfly9396 3 жыл бұрын
Content of the presentation is great, but unfortunately the quality of voice destroys the positive feelings.
@aneeshs9442
@aneeshs9442 2 жыл бұрын
great content , can you share the source code link
@johnmchale1
@johnmchale1 3 жыл бұрын
very poor audio, puts you off wanting to watch
@cai0
@cai0 3 жыл бұрын
yep.. was very interested in the subject, but gave up after 4 minutes.
@gedmoretta6825
@gedmoretta6825 3 жыл бұрын
The subject ie very interesting but the poor audio has put me off
@HossamElDeen
@HossamElDeen 3 жыл бұрын
Thanks for the feedback. Apologies for the audio quality :).
@AShahabov
@AShahabov 3 жыл бұрын
Bad audio(
@delysid604
@delysid604 3 жыл бұрын
Fix ur sound
@kevinmic9845
@kevinmic9845 2 жыл бұрын
عمل ممتاز ياخ حسام بارك الله فيك ممكن رابط الكود لان دقة الفديو غير واضحة
@shenth27
@shenth27 3 жыл бұрын
Bad audio quality..
Domain-Driven Refactoring - Jimmy Bogard - NDC London 2022
1:00:03
NDC Conferences
Рет қаралды 44 М.
Каха и суп
00:39
К-Media
Рет қаралды 5 МЛН
Clowns abuse children#Short #Officer Rabbit #angel
00:51
兔子警官
Рет қаралды 59 МЛН
Developing microservices with aggregates - Chris Richardson
1:09:50
SpringDeveloper
Рет қаралды 275 М.
Domain Driven Design: The Good Parts - Jimmy Bogard
58:39
NDC Conferences
Рет қаралды 219 М.
DHH discusses SQLite (and Stoicism)
54:00
Aaron Francis
Рет қаралды 55 М.
The Art of Discovering Bounded Contexts by Nick Tune
41:53
Change your habits: Modern techniques for modern C# - Bill Wagner
55:46
NDC Conferences
Рет қаралды 250 М.
Bob Nystrom - Is There More to Game Architecture than ECS?
23:06
Roguelike Celebration
Рет қаралды 195 М.
ASP.NET Blazor Radzen DataGrid CRUD - Clean Approach - Pt. 1
29:27
code with andre
Рет қаралды 959
Observer Pattern - Design Patterns (ep 2)
49:47
Christopher Okhravi
Рет қаралды 558 М.
Телефон-електрошокер
0:43
RICARDO 2.0
Рет қаралды 428 М.
WATERPROOF RATED IP-69🌧️#oppo #oppof27pro#oppoindia
0:10
Fivestar Mobile
Рет қаралды 19 МЛН
Здесь упор в процессор
18:02
Рома, Просто Рома
Рет қаралды 348 М.
Klavye İle Trafik Işığını Yönetmek #shorts
0:18
Osman Kabadayı
Рет қаралды 4,2 МЛН
Samsung Galaxy Unpacked July 2024: Official Replay
1:8:53
Samsung
Рет қаралды 23 МЛН