Give us your best ideas!

Separate domain and implementation in Accelerator solution

The Litium platform has separated domain models (Abstraction projects) from the implementations (Application projects) in separate nuget packages so that i only need dependencies on the Abstractions. But the Accelerator has both abstract classes and their implementation in the Litium.Accelerator-project reducing the benefit of this separation.

Currently when I want to add custom code to a new project I am basically required to place all custom code in the accelerator project, I would prefer to place my solution specific code in a separate class library for clear separation and better reusability - but this is basically impossible without getting circular dependencies (since I want to consume services in the accelerator project and at the same time create features that the Accelerator should use).

Suggested new solution setup:

  • Litium.Accelerator.Abstractions (all interfaces and abstract classes for accelerator and custom)
  • Litium.Accelerator.Application (only implementations of interfaces and abstract classes)
  • Custom.Application (or similar name, empty project to hold custom code)
  • Mårten Wahlund
  • Feb 7 2020
  • Future consideration
  • Attach files