Комментарии:
Hi Millan, I want to test the Migrations file inside the "Persistence" project on my database.
I wonder how to operate cli through the value set in appSetting.json
Thanks for the video. Can I create a web application that use that api directly or should i use web application controllers to call this api by client clases for example? If i can use it direcctly i am not sure if domain should contain logic like ViewModels, resources, etc. Very difficult to find Api with ddd and web application integration, everybody only talk about the api and i am so confused.
Ответить@MilanJovanovicTech Thanks for giving us this wonderful video. Also I have a question, when I go to register the "AddPresentation()" or "AddInfrastructure()" or "AddApplication()" inside the program.cs file, it gives me an error : 'IServiceCollection' does not contain a definition for 'AddPresentation' and no accessible extension method 'AddPresentation' accepting a first argument of type 'IServiceCollection' could be found (are you missing a using directive or an assembly reference?)'. Also, I have references all three projects inside the WebAPI project.
ОтветитьI think splitting the infrastructure layer to multiple projects for each infrastructural concern (database, email gateway, other external apis) looks more maintainable. I did that in a few projects and helped me better organize and understand my codebase (inspiring from the "screaming architecture")
ОтветитьHi Mr.Milan.
I can use the presentation as wpf
Hi Milan,
thanks for the video!
I have just one question though, why didn't you reference application project in infrastructure project?
(PS: I am new with clean architecture concepts)
Hi Milan,
can you suggest few good ways how to define the event flow between the 4 layers of CA in a diagram
Have you ever used MediatR in production? How was you experience with MediatR in terms of performance and memory consumption in case of high traffic?
Ответитьhow can apply this on my frontend project with react or any framework?
ОтветитьThanks. Best explanation I have found. Simple to the point
ОтветитьYou (may) forgot to make the cursor visible. Great video. I'm subscribing.
ОтветитьHello, good video. At which layer would you place a payment API interface and implementation?
ОтветитьDo you think a new project for each layer is a good design?
ОтветитьGde si sve NAUCIO, POLA NE AZUMEM?
ОтветитьThanks for the video, clear and direct, I liked the theme that you have applied, can you share the name please?
ОтветитьHi ,Milan, Have you done any crude operations on this architecture ?
ОтветитьThanks for sharing.
Do you going to continue evolve this application?
It will be great if you maybe implement 1 entity for that architecture(CRUD)
ОтветитьClean architectur subjective, so it's different for a lot of people.
Personally Mine is as Fellows(Folder structures)
Sol-Folder
Entities
Services
DTO(AddReq/EditReq/Res for each Entity plus some custom ViewModels)
Interfaces
Helpers
actual Services.....
Main Project
areas(if req)
Hi, what is your approach to project setup for microservices?
ОтветитьThanks but ideally, as expected in Clean Architecture of Uncle Bob : the Application Layer should be TECHNOLOGY AGNOSTIC, so in this layer : no dependency injection Tool, no Mediatr, and so on. All of this should go into the Infra Layer !
ОтветитьHey Milan, first of all I like very much your videos :). Lately I also feel that the infrastructure indeed should be split in more parts like you did in your presentation: Intrastructure and Presentation and I have a question regarding this or at least I need confirmation for my thoughts :). For the case when I have an Api and a Cli built on top of my whole application then my infrastructure layer would be split in 3: Infrastructure (with core infra stuff), Presentation.Api, Presentation.CLI or? Thank you
ОтветитьHi Milan, thanks for this insight into the basic project setup which has been born out of experience. Just embarking on a new project and I am adopting DDD, CQRS and MediatR as having worked on a legacy project for the past 10 years I can see the benefits of this approach and I look forward to future videos!
ОтветитьWhere are the optionsetups added to the iservicecollection? All in application so that infrastructure and persistence can make use of them in their dependency injection class?
Ответитьenjoying the content, subscribed already
ОтветитьIf you're serious about building high-quality software applications, this Clean Architecture tutorial is a must-watch - it's packed with practical tips and tricks for setting up your .NET 7 project from scratch.
ОтветитьGreat one. Could you please extend this video and show us one step further such as how we can add a helloworld endpoint that will fetch data from db and return json response. Basically we wanted to learn where to plant view models, where to put services, where to put repository and make it workable.
ОтветитьAPI project and Prasentation Layer not same, isn't it? Why create two project which do same mean?
ОтветитьVery good content. Thank you.
ОтветитьShould dependency inversion interfaces for Application layer live in Domain? Where should they go?
ОтветитьHello! Thank you for video. I have a question - why dont you refer to application layer from infrastructure layer?
ОтветитьSomeone has been reading Eric Evans and Robert C. Martin! :D Great video Milan!
ОтветитьHi Milan! Thank you for the video. You pasted in the configuration for Serilog but there is a long line that is not visible towards the end. Can you share the whole code elsewhere please?
ОтветитьWhen writing for example a microservice or another type of project when all the business logic can only be exposed by webapi calls: I like handling all the validation as a middleware for webapi controllers or minimal APIs. That way your services/CQRS handlers and even domain classes do not need to be populated with validation and checks like the length of the email, etc
ОтветитьTo fully understand, could you do a CRUD for a single entity? So the communication between layers could be seen better 🙏
ОтветитьI still don't get why you would create a presentation layer if you're creating a web API project. I understand it is the entry point and you will register your controllers in the web API project but why? Why not do everything in the web API project?
ОтветитьGreat ❤
ОтветитьThe purpose of dependency injection is not to give you default settings which you then can use (the DependencyInjection class you created in backend/application layer) but that you inject the dependencies and settings on your own. This means that from the REST API project, you should be configuring the whole backend, no?
ОтветитьWhat if there are multiple apis or web projects?
ОтветитьThanks for sharing.
I would love to see how you fill out all the layers in a demo app.
Great Video simple and Clean :)
Good idea will be to record comparison of clean architecture approaches of ardalis vs jason taylor template.
One more idea maybe to record one without use of CQRS and MediatR in the Application layer.
keep up the good work
pozdrav iz Makedonije :)
Thanks again Milan, I have a question, if you were to add SignalR to your project where would you put the setup? I mean hubs and stuff
Ответитьyou did not add any references from the infrastructure or presentation layer. Those should reference the domain layer...?
ОтветитьHey Milan, Great video and congrats on the MVP, you have been smashing it and are awesome!
ОтветитьThanks for the video! It is important for beginners to know that once you get a hold of separating stuff you can adapt this structure to your case. Merge and rearrange. Even create your own modules and so. In my case I moved more towards a VSA and put controllers together with application code. As long as you clearly keep stuff logically separate it is OK.
ОтветитьI'm really glad I found this channel. I was struggling to find these kind of videos before especially about DDD.
Ответитьhey milan!! I saw your serilog video and implement serilog in my project. its great.. but i need logs to print in seperate folders for each controller. can you please help me out or make another video about serilog with indepth configurations. thanks 👍
Ответить