In this chapter, we are going to start using Juice
to build applications following these patterns:
However, if we have a reasonable approach, both of them may have the same structure and implementations but are different in the final target. So we will consider the following similar components (equivalent to separate sub-projects) before returning to focus on the patterns above.
Please follow up Layers in DDD microservices for more information and be careful when considering using the DDD and/or CQRS pattern. The directory tree will look like this:
|-- src
| |-- {namespace}.{feature} // Juice.Example(.Domain)
| |-- {namespace}.{feature}.{infrastructure} // Juice.Example.EF
| |-- {namespace}.{feature}.Api.Contracts // Juice.Example.Api.Contracts
| |-- {namespace}.{feature}.Api // Juice.Example.Api
| |-- {namespace}.{feature}.App // Juice.Example.App (target Microservice)
| |-- {namespace}.{feature}.Module // Juice.Example.Module (target Monolithic modular)
| |-- {namespace}.{feature}.Extensions.{extension} // optional
|-- test
| |-- {namespace}.{feature}.Test // Juice.Example.Test