Это видео недоступно.
Сожалеем об этом.
ASP.NET 6 REST API Following CLEAN ARCHITECTURE & DDD Tutorial | Part 1 - Project Setup
HTML-код
- Опубликовано: 15 авг 2024
- Link to the full playlist: • ASP.NET 6 REST API Fol...
Become a Patreon & get the source code: / amantinband
Follow me on 'em socials:
Twitter: / amantinband
LinkedIn: / amantinband
GitHub: github.com/ama...
What is this series?
We'll build a REST API following Clean Architecture & Domain-Driven Design principles completely from scratch.
We will use .NET 6, EF Core, and common patterns such as CQRS, unit of work, repository, mediator, and more 💪🏽
We'll also use some awesome open-source libraries such as MediatR, FluentValidation, ErrorOr, Throw, Mapster, and more.
The developing environment will be visual studio code & dotnet CLI only. We will use awesome vscode plugins for everything from sending HTTP requests to connecting to our SQL database, debugging, and peeking at JWT tokens.
We will code and refactor multiple times to tackle the many concepts I want to teach. When the series will be over, you'll have a good understanding and intuition on how to use these patterns & libraries in your industry-level applications.
How often will a new part come out?
Once or twice a week.
What are we doing today?
We'll set up the 5 projects following Clean Architecture, use some cool vscode extensions & start setting up some authentication stuff. We'll also understand how each layer registers its own dependencies in the dependency injection IoC.
#dotnet
00:00. What we'll be building
01:58. Clean Architecture in one sentence
03:36. Technologies we'll use
04:30. Disclaimers
05:22. Who the heck is Amichai?
06:00. Overview of today's video
06:20. Project setup
10:55. Code: Project overview
11:48. Making HTTP Request inside vscode using the REST Client plugin
14:01. Deleting all unnecessary code
15:40. Register & Login endpoint schema
16:46. Presentation Layer vs. Application Layer
18:31. Modeling the API contract
20:20. Register & Login endpoint in the Presentation Layer
24:35. Authentication Service in the Application Layer
30:48. Registering the AuthenticationService in the IoC Container
31:55. Dependency Injection in Clean Architecture
36:17. What's next?
This guy is going to heaven for sure
🤞🏼
No, Let him Live , Long Live Amichai 😢😭
no i do not think so, he is making it tooo complicated
@@mrt7948no... It's much simpler than anywhere else that's free
@@mrt7948 He is not...
I think I can be called "RUclips/Video tutorials veteran watcher" with more than a decade experience, and sir, allow me to tell you that you are right there at the summit amongst the best instructors I've ever met. Top-top-top class.
I liked and subscribed within 15 minutes of watching this video.
I'm humbled by your kind words Robert. Thank you ❤️
@@amantinband Can you list all the VSCode extensions used?
I'm a professional full stack dev since more than 20 years, I'm already into what you are going to explain in these video series but I think it's always good to listen and see how other devs work out there because, as yourself said, we are always learning all the time!
IMO a good developer never sticks to a DOGMA and never follows what other people consider a creed but instead challenge himself trying to sharpen his tools and shape his ideas, often even radically changing them, about how to architecture a system and experience on real projects gives lot of input about that.
At some point any dev will realise there is no silver bullet and each problem has lot of way to accomplish its goals, it's a matter of trading between a lot of aspects like team skills, available time, habits, current company technology stack, experience, etc...
But it's always GOLD to know as many strategical and tactical patterns out there so that one can make use of the "right" tool for the current job.
I like your way to explain because as a veteran I don't like to watch videos that spend a lot of time about basic stuff, maybe your audience target will narrow a bit but personally I like it.
I'll follow you along your path to see how you tackle most advanced and debated subjects (e.g. DDD serialization, repository pattern, CQRS, eventual event sourcing, docker & containerization, microservices and so on)
Good luck, you'll need a lot of time to do what you are aiming for!
What I really liked about the video is the work methodology that's inspired: work in small increments and test that everything works before you begin adding too much code that when it doesn't run you can't be sure what exactly is wrong, is it your code or is it something else, or find out that you have to refactor a lot because you missed a step like setting up something in infrastructure. And I think the explanations are simple enough that all junior level programmers should be able to understand.
Not quite tdd, but guess that makes sense
I totally agree, the methodology used to develop (and teach) in this video also allow learn the basics and then take the next step more confidently. I have seen others tutotorials about the same subject but in some points I get lost with the code and the concepts. Great Job Amichai!
You're one of the fewer people in RUclips that can explains clear architecture so well, and better, with hands-on. For sure you deserve much more subscribers that you have! Great job, Amichai!
Thanks, Bruno!
Totally agree!!!
I also agree!
After almost 30 hours of searching a good instructor for clean arch. I found all in one, keep it up
The best, concise, to-the-point, relevant and CLEAR communication!! above all, I really like the way you kept on showing the Diagram and linked it with the Code, that is where we are! I've never seen any .NET video instructors making such a clear and crisp connection to the Infographic vs Code!! great stuff! will definitely cover your entire course!! This is coming from a full stack .NET developer who has been dirtying hands for the last 15 years!! bravo! more power to you mate! love from Australia!
One of the greatest videos I've watched.
Clean, Direct to the point and not boring
There's precisely one channel for which I have the notifications on. And it's this one. Nowhere else have I found such an eloquent dive into DDD with CA.
I love this so much! I started w episode 13, then immediately jumped back to the start of the series. I'm also a 25+ yr. dev and this is hands down one of the best presentations I've ever seen! Take my subscribe and likes!
I was researching a lot about DDD and Clean Architecture. I must say this is the best course I've ever watched.
I'm eager to finish the whole course, I already watched a little bit of the further videos and I definitely loved what I saw.
You rock!
Right at the end of the video, when you said "this is my first video" that really blew my mind. This video is really polished and complete. Thank you bro. Subscribed as soon as I completed the video. Will be completing the whole series.
At last! No nonesense presentation. This is the best😉
Just to say brilliant is not enough. very high-level knowledge and resources you have shared in public. A person like me very much benefitted from your channel. Please keep sharing.
Thank you for this tutorial. I'm a junior developer and I'm using this video to study DDD in english. Sometimes, you speak fast but I can back the video and listen again.
Success in your channel.
Thank you for the simplicity and the way how to turn theoretical articles and courses into reel artifact
Awesome start! Finally finished this first video hands-on. Starting with the next one! Keep doing this same fantastic quality videos! Thanks.
Great explanation!
Much enlightening & informative!
Thanks so much Amichai
Dude, I love this. It's perfect for someone like me who doesn't get much out of general "how to code in C#" tutorials anymore but needs some guidance as to how to build actual applications. Thank you so much.
This is the best video I have seen about Clean Architecture. the diagram are very helpful. and to say that this is your first video on youtube? wow
As I just started exploring .net 6, it's a brilliant stuff and very helpful for me. thanks a lot and keep making more videos on further insights on this topic..
9:38 In Clean Architecture the Presentation Layer's dependency on the Infrastructure Layer is a runtime dependency, not a direct reference between the projects. In this case CA would use the Dependency Inversion Principle to invert the dependency between the two layers by making them both depend on an abstraction (an interface). This abstraction is defined in the Application (or Core Domain) layer. So instead of Presentation Layer => Infrastructure Layer, you do Presentation Layer => Abstraction
Right, there are multiple tricks we can do to avoid the project dependency as I did here. We'll cover at least two approaches in a future video. Thanks for adding this!
could you please explain what is runtime dependency, please ?
@@shreyshah4256 because you want to be able to decouple infrastructure from app core such that you only focus on business in the app core and not on how things are stored, retrieved and sent out on a network or whatever. So infra is a runtime dependency that gets injected based on an interface, an abstraction. When you decide you want to store your models in SQL, you inject the infra that implements that internally but exposes the same interface as for example another infra that stores data in flat files but also exports the same interface.
Gotcha, thanks for detailed explanation
Thanks for the clarification. I was questioning this as well since the Presentation layer should not have a reference to the Infrastructure.
Software architect here, I really like your way to present things. It's clear, concise, and SHORT. You really don't beat around the bush and go straight to the point. So take my like sir !
Loved your way of explanation from scratch....
Great tutorial! Thank you and I subscribed and very much look forward to more tutorials on your channel.
2 quick suggestions to make you tutorials even more awesome.
1. Add links to software and Nuget packages you use in the tutorial
2. Create chapters for distinct segments, e.g. Adding a Controller, wiring up DI etc.
That's great feedback. Thanks, Dmitri!
Every is just right, not to lengthy, not too short explanation. Great job! Looking forward to more videos
One of the most accurate and useful video tutorial on youtube! Keep it up, well done.
Seeing the master mind of "throw, error-or,..." at work, great. Thank you, for your amazing stuff.
Best comment ever ❤️😁
what is this “throw, error-or” and why is it great?
Great first vid! Really enjoy seeing the recommended extensions, use of the command line, and I know we didn't cover it in this vid, but you mentioned storing environmental variables - that's the 'small things' that I like to learn along the way. Much appreciated!
First ever RUclips? Man, you nailed it. Very well explained and relevant content. 👌
This is really great. Clean architecture well explained. Looking forward to the rest of the series. Weldone
Wow, it's smooth like butter! Thank you so much! Never knew I could do such a clean project and using vscode only! :D I finished the BuberBreakfast one before starting this. Keep going man, it's a great series. Using CLI feels home
It is amazing to see how fluent you are fluent with VS Code
Very nice video, every second of video is worth watching. Keep up the good work and thank you for doing it.
Yeah this is great, Thank you so much for these. Can't wait for the next one!
Really good job explaining this from a code perspective. I'm not a C# dev but I understood literally everything you did. Kudos
Really great to hear, thanks!
Wauw the level of this course is just amazing, thanks for the clear explenation! Keep up the good work :)
The best introduction to clean architecture. Thank you
one of the best courses i've seen on youtube
For the first video this is already awesome. Keep doing that!
I don't believe that was your first RUclips video. That means you were born as a youtuber 😄
Thank you for the great content.
That amazing and awesome bro... keep it up.. your channel will blow up soon....
Good job actually, liked and subscribed, looking forward for next video in the series, don't keep us waiting too long :)
You're simply GREAT. thanks for teaching and sharing us your knowledge so excellent. Please for people like me, keeping do it!!
Very useful information provided, I have implemented in same manner and I enjoyed the same. Actually, I am creating microservice for my project and trying to implement a service using clean architecture. thank you once again for providing this.
Thanks so much for this, Amichai. I've subscribed to your Patreon to help you carry on with this great series
Awesome to hear. Thanks, Darren!
What a clean, fully and helpful video. I love this. Keep Going!
Thanks for showing this great trick:
dotnet sld add (ls -r **\*.csproj)
And also thanks for the series. Looking forward to it.
Great tutorial ! Explained well. Looking forward for the next part of this series. Thank you for your effort. Great Job !
Very nice lessons!) You're my favorite blogger from now on
This video is pure gold. Thank you for sharing your knowledge, ill be following this series and your new videos.
Thank you so much❤ loved the video! I struggle with understanding the architecture. I’ve seen the diagrams before but it never really clicks. Seeing you reference the diagrams while you code, and seeing how you document with the md for is super helpful. Thank you for a great video. I subscribed
Thanks a lot for your work! It's pleasure to watch and study based on your videos!!!
Nice presentation. I already used clean architecture on several projects, but of course there’s a lot to pick up. Liked the use of CLI, which I haven’t been using much. Keep coding!
Thorough, well structured and explained, looking forward to the next video
You did great. I like how you explain stuff. I just learned something new, I didn't know that Dependency Injection thing. Thanks!
Learnt something new. Thanks so much
Really refreshing content, thanks for this videos, looking forward for the rest of the series. Is it possible to see the list of VS Code plugins you use. Thanks
Yeah, I'll compile a list and post it
Very concise and thoughtfully laid out. I am a relative beginner and I was still able to follow - I would pause the video if I hit something I didn't understand, do a bit of research, and them come back. I feel like there was a bit of challenge that forced me to learn. I can tell that you spent a lot of time on this - you definitely have teaching talent! Thank you.
Thank you soo much @Amichai Mantinband, this was great video and I really did enjoy following it.
Very Clean presentation of Clean architecture. Awesome.Keep going.
Such an intuitive and informative explanation with excellent code representation. Thank you
Great job! what you are presenting is structured and sophisticated. However, i think you have a built-in ability called : pattern-aware capability!!!! Excellent. Thank you.
Well explained about clean architecture. It's more content full and way of explanation is awesome. The extensions you have used is helpful to explore myself.
Great great great video, I follow You coding and I find this very usefull and "simple", not because it is a simple topic, but because the explanation makes it very easy to understand and follow. 😁
These series are golden. Great stuff!!!
This looks like a great workflow
I tryed to clear my screen. haha
Excellent video! I'll be following this and the next ones for a personal project that i'm doing. Thank you for the insights and the information! Keep moving!
Thank you very much for your video. It has allowed me to learn about DDD.
excited to see a ddd example, nice intro video hope you finish this series
I have gone through the multiple tutorials. well explained. Superb!. Thanks
I love your work so much mr Amichai... you inspire my coding style
Wow dude, this is an awesome video, one of the best I have seen, thanks so much for sharing and putting yourself out there, I think lots of people will appreciate this and I will share with others who are interested too. I’ve been working on a large rest api and my tech stack is very almost identical, loving Mapster, I was using auto mapper before and got fed up with the boiler plate config which I didn’t need, I also use the code gen for my contracts (50+ entities and crud for internal app so works for me). I use exactly the same project structure which is interesting, i do Api.Contracts just to tied it to the api. Really like the developer workflow, docs, rest endpoint testing too, Using Mediatr too. Really looking forward to the rest of the series (no pun intended!). Good luck with everything.
That’s amazing feedback, thanks James. Please let me know if you have suggestions or insights on topics you are familiar with 🙏🏼
I Just wowed, this is really great content so far in this topic.
I think you explain things very clearly, great video!
Really Excellent!
Thank you very much for your time and efforts.
This was your first RUclips video??? Very well done. Very well presented. When I watch videos related to coding topics I really look at a couple of things. One is the topic that is being explained and secondly the development approach, which includes the tools being used. My preference for .NET projects is Visual Studio. I tend to use Visual Code for smaller HTML/CSS related projects where I'm just experimenting with a UI. I might slightly disagree with you use of VS Code in this kind of project but I can certainly learn a lot from seeing someone else use it, along with the various VS Code extensions that are brought into play. Looking forward to the follow-up videos.
Haha yeah it was. I'm still having a hard time believing how fast the channel is growing. One of the reasons I chose vscode & the .NET CLI for this series is demonstrating what a modern, cross platform developing experience can look like and how far .NET has come in the past few years
@@amantinband Oops, left without hitting the Subscribe button. Now fixed. Holy smokes that is a fast growth rate just starting out on RUclips. Well deserved.
Awesome video to be the first one, congrats!
We want the next part of the series!
You got it 😉
Ty so mutch! I will keep watch this on till the end...
💯💯🍻🍻❤️❤️ There's a channel by Milan Jovanovic which has over 10 videos about CA. I've watched them all and never understood how to implement it. I even contacted him and he kindly responded he doesn't have time doing it better. Your video is the only clear solution on RUclips so far. Thanks a lot!
thank you so much, i did it in visual studio 2022
Hi! Your terminal looks really nice! Can you make a video about how to make one looking similar?
Thank you for sharing this awesome content.... Muchas gracias !!! Saludes desde Colombia!
Thanks for this excellent (fast) video!
Really well put together. Looking forward to the rest of the series.
Super cool!
Looking forward to the rest of the series :)
Amazing video! The only thing I would change would be to just use Swagger rather than having to manually document API endpoints
great job, don't keep us waiting too long :)
Amichai Absolutely great content delivered at apt pace.
9:25 Depenencies flows
10:00 Presentation and Infrastructure link
Outstanding. Thank you.
Pure Gold, Thanks alot Sir.
Keep make more video in this series, I think it is harder for someone is firstime touch in API, or begginer but I see the title of videos have some keywords of technology usually meet in industry, the jobs will need these concepts, look like for immediate levels...but very helpful for who want to up skill from begginer to immediate...I think so...I will try it...
I enjoyed everything. Pace, simplicity, short tools insights, amount of explanations - really, really good. Can you explain how this dependencyinjected services builder works?
Good job.
Awesome to hear! What exactly would you like me to clarify?
thank you for the video! a lot of stuff happening but i'm being able to follow it!
Subscribed with bell icon within the first 2 minutes.
I love the way your terminal looks... do you have a video on crafting this stunning visual implementation? awesome
Thorough explanation. loved it
Great and refreshing explanation on clean architecture and overall .NET application. Looking forward for next series and as well as if in future you had any plans on adding test and sharing with more of useful extensions in VSCode too. Thanks in advance.
Yes, I'm planning to have at least one video about testing best practices. Regarding vscode extensions, I think my next video will be about vscode for .NET developers since I'm getting many questions about this