I think the confusion here lies in your definition of a "module", and I would say that it originally confused a team in my company as well. However, I may be wrong, and the definition you've acquired through guidance may be the exact same one
that p&p is trying to portray. Understand that my perceptions come from a CAB/SCSF-based world (and they have been equally effective in developing atop CAL) --
To me, modules are the byproducts of recognition (or intent to eploit) of observations found within the problem domain. Depending on the project, I like to keep this entity-based for the first cut of segregation. So we might have a Customers module and
an Employees module. Alternatively, module separation can be driven by user stories. Modules, to me, then may contain many views and or controllers. In CAL, I like to have one controller (serving as module controller if you will) for each module, and then
at least one controller for each use case that module is intended to fulfill (sounds like SCSF doesn't it?). During the execution of the application, these controllers could show any number of a myriad of views where no view is necessarily limited to a particular
Using this understanding, I think what you actually want to achieve is this--
Given a use case (UC1) which consists of the user clicking a button and showing a tab with some information:
0) Boot app and show your Shell with some toolbar/ribbon region (region name of "Toolbar") and a central, tab control-based region (region name of "MainRegion") each with appropriately registered or default region adapters.
1) Load and Initialise a module "FooModule"
2) FooModule's initialisation executes an arbitrary method ("Run" is good) on a controller "FooController"
3) FooController resolves and runs another controller called "UC1Controller" who's purpose is to create and handle the components and events necessary for enacting UC1.
4) BarController subscribes some method (OnUC1Invoked) to a well known command that represents the execution of UC1.
5) BarController goes about registering a command invoking button (invokes UC1 via proper command binding) on the toolbar/ribbon by doing something like "RegionManager.Regions[RegionNames.Toolbar].Add(someButton)".
6) The OnUC1Invoked method resolves a" BarView" with a randomly generated id/name and adds the view to "MainRegion".
I think I've been fairly generous with my application of disclaimers thus far, but again, I'd like to state that I might be missing something from p&p's intent with CAL. If I am misunderstanding how modules should be segregated or anything at all,
please let me know.
Cheers and good luck