- Figure: A Dependency Injection based architecture gives us great maintainability
- Figure: Good Example - The Solution and Projects are named consistently and the Solution Folders organize the projects so that they follow the Onion Architecture
Dependencies and the application core are clearly separated as per the
In the above example you can clearly see:
Common Library projects are named
BCE.Logging is a shared project between all solutions at company BCE.
Other projects are named
[Company].[Solution Name].[AssemblyName]. E.g.
BCE.Sparrow.Business is the Business layer assembly for company ‘BCE’, solution ‘Sparrow’.
We have separated the unit tests, one for each project, for several reasons:
- It provides a clear separation of concerns and allows each component to be individually tested
- The different libraries can be used on other projects with confidence as there are a set of tests around them