Feature in a box
We should be able to program with "Feature in a box" or "Vertical slice" so that I can create modules that add functionality to existing entities.
Model
All properties, and methods related to a single feature should be defined with a partial class in one folder.
Logic
All logic for a feature should be in classes within a single folder.
Tests
All tests related to a feature, should be in classes within a single folder.
Shared logic that supports multiple features
When Interfaces, entities, and logic that are used in multiple features, then create a single feature for the combined logic. Do not create helper classes.
Direct dependencies to other projects
Modules should rarely have a reference to another module. Instead they all reference a common model through which they interact with other modules.
//TODO: This document needs more work.