Project structure
Directorysrc/
DirectoryApplication/ the domain and the rules
DirectoryAuthors/ queries and entities for authors
- …
DirectoryMovies/ queries and entities for movies
- …
DirectoryReviews/ queries, commands and entities for reviews
- …
DirectoryVersions/ the version query
- …
DirectoryCommon/
DirectoryBehaviours/ the validation pipeline behaviour
- …
DirectoryExceptions/ NotFoundException
- …
DirectoryPaging/ shared paging rules
- …
- DependencyInjection.cs
DirectoryInfrastructure/ the data
DirectoryDatabases/MovieReviews/ the EF Core context, models, mapping, migrations and repository
- …
- DependencyInjection.cs
DirectoryPresentation/ the Lambda function
DirectoryLambdaFunction/
- LambdaFunction.cs the handler and its functions
DirectoryModels/ requests and responses
- …
DirectoryMapping/ Mapperly mapper from Application to Presentation
- …
DirectorySerialization/ the source-generated JSON context
- …
- aws-lambda-tools-defaults.json
Directorytests/
DirectoryApplication.Tests.Unit/
- …
DirectoryInfrastructure.Tests.Integration/
- …
DirectoryPresentation.Tests.Integration/
- …
- docs/RUN.md
- Directory.Build.props build rules and analyzers for every project
- Directory.Packages.props every package version, in one place
- Dockerfile
- docker-compose.yml
- global.json
| Project | References | Notes |
|---|---|---|
| Presentation | Application, Infrastructure | References Infrastructure only to wire up dependency injection |
| Application | none | Owns the entities, the repository interfaces and the rules |
| Infrastructure | Application | Every class is internal |