From what I see in your example, I can only assume that this is an ASP.NET MVC application, we need to take a look at the Logic or Data projects to understand what this application is about.
In most cases, people organize their entire directory structure based on the technology or framework used. This comes from how the default project template is created (without knowing anything about what your application should do, they really cannot do much more than that for us).
Now, what Robert C. Martin tells us is that our top-level directory structure should reflect what the application does, and not how it is built. I am not sure that it is a good idea to do this at the solution level. However, I always recommend that the Domain project is that we can apply the principles of Domain Driver Design .
If in such a domain project you see the following folders at the root level:
Clients Orders Billing Shipping Promotions ...
You can guess that this is a kind of e-commerce application. You will need to go even deeper in the directory structure if the folders you would find are similar to Models , DTOs or Exceptions .
I donβt like having too many projects in my solution (up to 10, if possible), so I donβt go and create one project for one domain object of my system. This is why I believe that the root level of projects, not solutions, was that we should focus on determining what the application does.
source share