Honestly, this is a very subjective question. The way I do it today may not be the way I do it for the next application. It just works well for me. Also, what works for me may not be the way anyone else would have done it — not that mine is wrong, better or worse.
Naming conventions will help:
- PersonPresenter
- PersonViewModel (if data is being read / written to the data store)
- Personview
- Ipersonview
In addition, I divided my current solution into 3 projects:
- The application itself is the only class in this project - Program.cs
- Presentation models: presenter, viewing interface, viewing model (if applicable); everything in folders organized by their respective views
- Views: view-only project
Now, the only part of the solution I need to reference unit testing is the PresentationModels project.
source share