A Visual Studio solution can host a number of different project types, such as Web Application projects, unit test projects, Team Development for Sitecore (TDS) projects, behavioural testing projects, Xamarin projects, etc., but modules are always grouped by their logical connection to a module – and never by type.
Projects are grouped together in a solution by the layer and module to which they belong.
A project, and assembly, should be named in a namespace-like fashion with:
- The overall customer, partner or solution name
- The layer (optional for project layer modules)
- The logical module grouping (optionally)
- The module name
- The logical function of the project
For example, the following VS project contains the unit tests for the commerce orders feature module: