Clean Architecture with ASP.NET Core 3.0 - Jason Taylor - NDC Sydney 2019

preview_player
Показать описание
The explosive growth of web frameworks and the demands of users have changed the approach to building web applications. Many challenges exist, and getting started can be a daunting prospect. Let's change that now.

This talk provides practical guidance and recommendations. We will cover architecture, technologies, tools, and frameworks. We will examine strategies for organizing your projects, folders, and files. We will design a system that is simple to build and maintain - all the way from development to production. You leave this talk inspired and prepared to take your enterprise application development to the next level.

Check out more of our talks, courses, and conferences in the following links:
Рекомендации по теме
Комментарии
Автор

Table of contents
00:14 Clean Architecture
5:18 Domain Layer
12:18 Application Layer
30:15 Infrastructure Layer
43:50 Presentation Layer
1:00:19 Next Steps (Clean Architecture Template)

datnt
Автор

This is pure gold. A really solid architecture. I'm going to be using this in all my future projects. Thank you!

themelc
Автор

Havent been this attentive listening to a talk for a really long time.
Love this project template, thank you.

sechabamotaung
Автор

I am amazed how good is this Onion (Clean) architecture! I have experience working with CQRS in a similar way, where we have our custom http pipeline (In that time there was no MediatoR) and I was furious why are we doing it. But as my experience was growing I had an "Aha!" moment when the puzzles matched. Our enterprise is still using some "old" tech but privately I am sold to this architecture. The ability to automatically read all your endpoints (with DTO-s and ViewModels) and build TypeScript Services for accessing backend was an eye-opener for me. Because in the past I was spending too much time writing TS services to match backend endpoints. Thank you Jason for explaining whole solution and pointing out the real stuff!!! Keep up the good work! Greetings from Croatia!

TheMiamiVice
Автор

GREAT TUTORIAL AS ALWAYS! This channel is providing so much value. Keep up the good work!

CodeSbyAniz
Автор

I'm a beginner yet, but I want to ask a question.

Diagrams describing clean architecture explain that every layer outside the domain should refer only to the application layer.

The ASP.NET Core project in the presentation layer seems to reference the infrastructure layer to register the dbcontext class in the IoC Container. Isn't that wrong? If this is true then the asp.net core project needs to refer to each layer and register their services, isn't that a violation?

aslanamca
Автор

Amazingly clear and useful content. Congrats!

sen.alexandru
Автор

If you think that audio is ok, it is not. Just double it in the future.

fnerf
Автор

Why the Application Layer is accessing the DBContext? This doesn't responsibility of Infra layer?

odairto
Автор

Thanks for much your best explanation on clean architecture

IshA-przi
Автор

Whats difference bw ddd and clean architecture ?
I find a lot in common..

Endomorphism
Автор

Does not the fact that Application project references Microsoft.EntityFrameworkCore package make application layer dependant on infrastructure concerns?

ladislavmacejak
Автор

Why you use meditR in application layer? Application layer is depends on meditR, is it clean architecture uncle bob?
I'm confused.

shayankamalzadeh
Автор

Domain contains enterprise logic vs application contain business logic at the very beginning of the video. Can someone understand what he really mean?

trongphan
Автор

I know this is old, but this confuses me with the key point "No layers depend on Infrastructure layer...". It contradicts what is implemented in the demo solution. The Web UI project depends to Infrastructure project.

jonperada
Автор

who gave this a thumbs down? its really good!!

SuperDranger
Автор

Grate presentation, but for me it's still black area how to customize AplicationUser (f.e FirstName, LastName, Bio, Picture). How and where to deal with this (will it be IdentityDB or ApplicationDB). Looks like it should be part of Domain and Application but ApplicationUser in infrastucture...

SuperCustomer
Автор

Great presentation! I like the way you use the Chain of Responsibility pattern to conform to the Open-Closed Principle. But don't you think the use of MediatR seems invasive in the application layer?
I also find the validation with annotations more readable, and I don't think they pollute our business objects since they're from a standard library.

younesk
Автор

Yay!!!! The sound is fixed!! Thumbed up immediately! Thanks for the great talk Jason, I love your teachings.

jameshoiby
Автор

This architecture has been a while in software engineering and it's called ONION architecture.

I would not say that CQRS is simple to implement. I agree that the idea behind it is simple. However, it implies that you are going to have message queue and materialized views in case you have relational database what makes application really complex if you want to apply CQRS pattern everywhere. Apart from that there is latency between when command persist changes to store and when changed data available for queries. CQRS should be applied wisely and not for each operation in the system.

What I also don't like is how automaper is used. You get direct dependency on Automapper in query and command classes. What if you want to replace automapper with something else in future.

aiboltoleu