Separate concers at the mitigate the impact of change on a software system.
Common “concerns”:
- Presentation logic
- Business / Domain logic
- Persistence logic
Recommendation: Seperate concerns into projects within a given solution.
Naming convention:
MyApplication(Solution name)
- MyApplication.Presentation(.Web, etc. presentation project)
- MyApplication.Domain(domain/business rules project)
- MyApplication.Persistence(.Data, .DB persistence project)