Solutions & Projects in Dynamics 365 Finance & Operations
Question 41 — Organising code into solutions and projects and keeping them under source control.
Interview Question
Model Answer (Short)
A Visual Studio solution can contain multiple projects, but the guiding principle is one solution per project per functional unit — keeping each functional area cleanly separated. The exception is common functionality: when you build shared/common features, it's acceptable to have one solution with multiple projects. Regardless of structure, both solutions and projects must be added to source control (version control) so the code is tracked, shareable and recoverable across the team.
Detailed Explanation
Structuring principle
- A solution can have multiple projects.
- Principle: one solution per project per functional unit.
- Exception: for common functions, one solution with multiple projects is acceptable.
- Each functional area stays cleanly separated and easy to manage.
Source control
- Solutions and projects must be added to source control (version control).
- Ensures code is tracked, shareable and recoverable across the team.
- Aligns with the project-per-function naming convention for traceability.
Structure Options
| Scenario | Recommended structure |
|---|---|
| Single functional unit | One solution, one project |
| Common / shared functionality | One solution, multiple projects |
| Any structure | Must be under source control |
Prerequisites (Rule 5)
- Visual Studio with the Dynamics 365 developer tools.
- A custom model / package for your objects.
- A connected version control repository (e.g. Azure DevOps).
Example — Solution & project layout
A conceptual layout following the project-per-function principle:
# One solution per functional unit
Solution: Abc_Finance
└── Project: Abc_FIN01_InvoiceAutomation
Solution: Abc_SupplyChain
└── Project: Abc_SCM07_OrderToCash
# Exception: common functionality -> one solution, many projects
Solution: Abc_Common
├── Project: Abc_CMN_Utilities
├── Project: Abc_CMN_Extensions
└── Project: Abc_CMN_Framework
# All of the above are added to source control (version control)
Points the interviewer wants to hear
- A solution can hold multiple projects.
- Principle: one solution per project per functional unit.
- Common functions may use one solution with multiple projects.
- Solutions and projects must be under source control.
- Keeps functional areas separated, traceable and recoverable.
Likely Follow-up Questions
- When is it acceptable to have multiple projects in one solution?
- Why must solutions and projects be under source control?
- How does this relate to the project-per-function naming convention?
- What are the benefits of separating functional units into their own solutions?
Key Takeaway
Organise code as one solution per project per functional unit, allowing a single solution with multiple projects only for common functionality — and always keep solutions and projects under source control for traceability and recoverability.