You are under the correct impression.
Prism modules are usually loaded once per application. The user does not have any notion of what a module is, but he does notice views (UI components). Thus, if you want the user to feel he has more than one “use case”
(assuming there is one per module, this is just an example) of the same type running, you could create multiple instances of the views you require from that module, each with its own Presenter
(can also be ViewModel or Controller) and show them in regions.
Also, if there is not a ScopedRegion, all regions will
be under the same region manager.
To handle transactions from the database, there is no need to create individual instances for each view. Having a common service, which
the views presenter can perform requests to and obtain your data.
As an example of the above, you could have different instances of
CustomerView in a single TabControl (which would be a region).
When you load a module, you “get access” to all its functionality. You can use it as many times as you want, depending on your
The following documents from the Prism-v2 documentation might provide some more insight to the topics I mentioned above:
Shell and View
Please let me know if this helps.