Project Structure For Prism Projects
This is how I am structuring my Prism projects.
ProjectName
This is the project which contains the shell and bootstrapper.
ProjectName.Infrastructure
This project contains all the classes that are shared between the modules such as events and common interfaces.
ProjectName.Infrastructure.Resources
In this project I put all my resources for the project such as styles and images. This allows me to share specific icons and pictures etc between the different modules.
ProjectName.ModuleName
These projects are the modules loaded by the bootstrapper. Inside the project I have a separate folder for Views and one for ViewModels. The module class lives in the route of the assembly. I currently am separating out each area of functionality into separate modules though there has been discussion as to whether you should have a Core Module which holds most or all the core functionality of the app. I am against this as I think the notion of having more than 1 area of functionality in the one module does away with the advantages of modularity and increases the likelihood of having to do a full deployment when changing a single area of functionality.
PrismExtensions
This project contains my extensions for Prism or base code that helps speed up development. So far it has a couple of RegionAdapters, the start of an MVVM framework and a custom bootstrapper that loads all the extensions automatically.