- https://en.wikipedia.org/wiki/Multitier_architecture
- https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/n-tier
- https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
- https://learn.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/overview/asp-net-mvc-overview
- https://stackoverflow.com/a/698250/7389293
- https://chatgpt.com/share/66fb1b1b-b314-800b-9b1f-33bc4dee7a3f
Regarding our project, MVC should exist ONLY in the presentation layer. And any logic related to the domain should be contained in the service layer, ONLY. I know some people may include logic in the controllers the MVC, but that's possible only in small projects, and it is not scalable (justification: https://www.danylkoweb.com/Blog/aspnet-mvc-controllers-push-the-envelope-PN).
The right use of CONTROLLERS is for receiving (HTTP) requests, then retrieving data from lower layers and inserting them into the MODELS, and sending back a (HTTP) response with that data back to the VIEWS. Let's remember that the initial request was probably originated in the views with the user.