Unleashing Clean Architecture in .NET 8 - Jason Taylor - Copenhagen DevFest 2023
HTML-код
- Опубликовано: 27 сен 2024
- Unleashing Clean Architecture in .NET 8: Exploring the Clean Architecture Solution Template
Join us on a captivating exploration of Clean Architecture in the dynamic world of .NET 8. In this session, we deep dive into the Clean Architecture Solution Template, an open-source .NET template that propels solution development to new heights.
Discover the seamless integration of Angular or React with ASP.NET Core Minimal API, as we guide you through the creation of a new solution. Delve into the template's impressive range of features, including built-in support for validation, mapping, Open API, authentication, testing, CI/CD, and even IaC. With this comprehensive toolkit at your fingertips, you'll gain the ability to build scalable, maintainable, and future-ready applications.
Whether you're a seasoned .NET developer seeking to elevate your skills or an aspiring architect looking to embrace modern software development principles, this talk provides practical insights and hands-on demonstrations. Join us to unlock the true potential of Clean Architecture in .NET 8, revolutionize your workflow, and create remarkable applications that stand the test of time.
Tremendous amount of value delivered here through this template
exceptional work....
Wonderful. Much appreciated.
Good presentation and tool. Well done! The upgrade part is the heart of this template, without that feature too risky.
This is awesome work. Thanks
Wow. Just wow. Great Work
What do you think about splitting the Infrastracture in two class libraries:
- Persistence
- Infrastracture
Persistence is dedicated only to the Database, and Infrastracture is dedicated to the storage.
By the way, great work, would be awesome tho to have a shorter and easier version of that Clean Architecture, like without events, behavrios, and many other things which are not present in most projects, but I guess you introduce what you is useful to you, so it's kinda ok to start from that and maybe each one personalize how he prefers
Is there a way to implement your clean architecture as server side application. Is MVC still relevant?
How EF migration works, could you please little bit explain
This is really AWESOME work. This is how projects should be done. Simply AWESOME. I would like to work on this with Vertical Slice architecture.
I really thought this talk is about software architecture 😒
yeah, more like look at my template
Sorry for the confusion; this talk is about exploring the Clean Architecture solution template.
The name is a pure click-bait. Not nice.
Well, I think this demo by the template author is much more helpful than the boring discussion of Clean Architecture per se.
What terminal color theme is this? It makes reading the file structure so much easier? Also what git terminal plugin is he using if anyone knows?
Most likely he is using ohmyposh (a prompt theme engine), but i dont know what exact theme.
What I want to know is how fast is .net 8 compilation speed and building process is compared to .net 7?
Why?
@@oleggavrilov7083 b/c for simple application I find the speed slow. I have looked into it compared to other frame works and languages it slower than go c/c++ and other languages. There are other languages which net and c# is faster. The best part of .net and c# it comes with all the tools and abstract away for you and don't have to make server from scratch like go and c++ where they don't come with a pre built server in them.
It's time to retire Clean Architecture. Way too much boilerplate to do something.
Let's make software simpler again by embracing Vertical Slice Architecture.
Maybe I'm wrong, but Boilerplate seems to be the antithesis of Clean Architecture.
Agreed. I have recently start using Vertical Slice Architecture. And it really nice to get back to simpler code with much better cohesion while keeping a check on decupling.
@@JulianSildenLanglo Clean architecture gives me anxiety just looking at those gazillions of abstractions through layers. Takes fun out of development.
And NO, Boilerplate code IS NOT the antithesis of clean architecture.
Well, you can apply Clean Architecture to Vertical Slice architecture as well. But I too find it way to overcomplicated for most projects. While the idea of decoupling is nice, in general this can be simplified by just making sure infrastructure and logic are separated. Personally, I like the idea of A-Frame architecture, where the idea is that Logic and Infra live as peers under the Application layer, making managing dependencies easier. Bonus effect of this is that Logic can be written without side effects (So take out your functional programming hat!).
In any good architecture you have to combine verticalization (which is an extremely important concept that arguably goes hand in hand with concepts like Screaming Architecture and feature folders) with some degree of higher level design. Vertical slice architecture is a simple concept that helps to navigate the design and development process of everyday features, and clean architecture is a somewhat more detailed concept that helps to build higher level architectural pieces, in which you can then place your verticalized implementations.
Also, in a lot of vertical slice implementations (particularly when using MediatR) there is plenty of boilerplate as well :)
One big, recurring problem in software development is that for some hard to explain reason people always want to use a single tool for everything, they do it until their nose bleeds, and then they start proclaiming that the given tool is a complete abomination, switching to another tool and starting the same process all over again. This was done with OOP, with Clean Code, with microservices, with clean architecture, with DDD, with serverless, etc.
half of the presentation is advertising for azure
I mean .NET and Azure go hand in hand. You're building in Microsoft their framework, why not use their hosting service. I think 95% of the .NET devs out there host their shit on Azure and it's for good reasons
I'm goning to die on this hill someday... NDC, please distribute your videos in 21:9 format. It doesn't matter for people with 16:9, they either get the branding on top and bottom (with the current distribution) or they get black bars (with 21:9 distribution). But for those of us with 21:9 screens, we get a larger presentation window with 21:9 videos instead of black bars on each side with 16:9.
So you created class and methods that corresponds to each endpoint. Isn't that just a controller? Why would you overcomplicate that with mappers to minimal API if you can just create controllers?
Controllers have overhead than minimal api endpoints don't have.
I obsessed over how best to organise the endpoints and discussed this during the talk. In short I'm using Minimal API for speed and simplicity and I'm grouping related endpoints into a group file since this seemed to be simple given that each endpoint is very small.
any plans to add Blazor UI support?
jump to the questions at the end for the answer. hint see RapidBlazor repro
excellent, you injected dbContext to application layer in run time without adding reference to infrastructure layer. so no need to repositories.
I have to say Wonderful!!!
Should the random setup and teardown CLI scripts not be in something more standard like Terraform?
Yes, I would like to add support for Terraform in addition to Bicep.
Bicep is one of the standards when it comes to Azure.
Great effort for building that "template". Thanks for sharing your effort to the community. Though it seems pretty advanced.
where to het such terminal?
Can we implement really clean architecture by throwing .NET into the bin really really hard? Then kick the bin into mount doom for good measure
WTF are you talking about? Explain.
Likely a Java dev who loves writing getters and setters in 2024…
@@dvanrooyen1434 Last time I touched java was java 6 and the last time I touched .CRAP was 3.5. Never again
@@dvanrooyen1434 Most probably yea. The only people I know that hate on .NET come from the old days or are Java devs. Anyone that has used .NET core knows how amazing it is
So the dotnet bros always said that C# projects taking at least five times as long and ten times as much code as other languages/frameworks is OK because you get better architecture (that you still want to rewrite every few years, if you can afford it) and now you say finally with C# you can finally achieve "clean architecture"?
This is wonderful, Great and awesome work. Thanks you so much :)