Like all good answers to architecture and programming questions, the answer is "it depends."
It depends on how unique your requirements for access to data and objects are. It also depends on how you plan to maintain your application in the long run. Finally, it greatly depends on the skill level of your developers.
There is no answer to this question in one size, but in general, if your main focus is on minimizing software that provides some business value, select an existing structure and run it. Do not waste your cycles on creating something that does not immediately lead to business profits (i.e., increases revenue and / or reduces costs).
For example, one of my organizational projects is the basis of the company, it is necessary to develop and deploy it as soon as possible, and will have a long life. For these reasons, we selected CSLA with some help from the Enterprise Library. We could choose other frameworks, but the important thing is that we chose a structure that would seem to be consistent with our application and our set of developer skills, and we ran with it.
This has given us a good hat and community from which we can get support. We immediately started with functionality that provided value to the business and did not hit our head against the wall, trying to create a structure.
We are also in a position where we can hire people in the future who are likely to encounter our card, giving them a really good hat. This should reduce long-term support costs.
Are there things we don’t use and overhead that we might not need? May be. But I will trade this all day in order to quickly and often provide commercial value in the code.
source share