Implementing the Clean Architecture in .NET Core - Ian Cooper

preview_player
Показать описание
What is the clean architecture and how you would build one in .NET?

Recently Bob Martin has categorized a set of architectures, including hexagonal architecture, onion architecture and screaming architecture as 'the clean architecture' - a layered architecture of concentric circles with a strong emphasis on separation of concerns. This architecture has become popular because of its amenability to modification as an evolutionary architecture and its support for practices such as TDD.
In this presentation we will discuss the clean architecture and its benefits.

More than that, in the bulk of the presentation, we will show you how to implement a clean architecture in .NET. From first steps to working code, we will show you the moves required to embrace this approach, and introduce you to some of the OSS libraries that can help you get there.

All examples will be in .NET Core.

NDC Conferences
Рекомендации по теме
Комментарии
Автор

This was awesome! I really understood why these patterns exist and how they evolved naturally.

Huffman_Tree
Автор

6:39 when he said we are reinventing and every thing was there from smartTalk my heart bled.

Endomorphism
Автор

Drivers in Oslo really need to chill out 😆

leakyabstraction
Автор

Nice talk. Do you have a link where we can get the code?

edulopezm
Автор

What extension was he using in VsCode to send and receive API requests?

warrenbuckley
Автор

Can someone explain to me how the tests.http file works? Those send request links, etc. I've never seen that.

mattmarkus
Автор

46:30 "although databaes have already killed that model for us". Using a database does not require that you give clients open access to the underlying implementation (ie, the tables). You can absolutely have encapsulation in a database. Use views. Use stored procedures. Use functions. Restrict access to base tables with permissions. Look, the encapsulations semantics of

class C { private int derp; public int getDerp() => derp; }

are exactly the same as

create table C(derp int);
create procedure getDerp as select derp from C;
deny select on C to <whoever>
grant execute on getDerp to <whoever>

allmhuran