I am setting up a project structure for an upcoming internal application trialling the Onion Architecture proposed by Palermo (http://jeffreypalermo.com/blog/the-onion-architecture-part-3/).
I have followed his guidelines, however I need some verification on the structure of the project so far.
Before the diagrams, the questions:
-
I think the References are all correct (set up as per the diagram where an arrow means ‘has a reference to’)
but some verification would be good. -
What should I put in my dependency resolution layer? Is this where
Helpers go? This has a reference to all other projects? -
How do the web services & UI, communicate with the DAL? (Through the core? How?)
-
What should go where? [Broad question I know…]
The simplified conceptual diagram is as follows (Folders represent namespaces):


1 It looks OK but I am not sure it’s a good idea to insert dependency resolution into the diagram.
2 I believe dependency injection stuff would be here.
3 It is core according to Palermo’s diagram. In core, you will have repositories talking to DAL and domain models, and services (not web services) dealing with repositories and domain models. And UI/web services will mainly talk to services.
4 Again, I think the answer is in Palermo’s diagram. But in my opinion, organizing projects can be different and trivial when there is full understanding of the architecture.
Onion architecture became obvious to me once I understood DDD and necessary design patterns such as MVC, Dependency injection, Repository/Service, ORM.