Generally when building composite applications the approach followed is having a common
shell composed of UI components contributed from various modules that interact in a loosely coupled way. Hence your modules usually shouldn't have references between each other.
To achieve this the Prism library provide the Region
functionality that allows placing dynamic content contained in modules in predefined placeholders in a
Hence you could keep you modules' loosely coupled by defining regions to specify where your views will appear, as this regions will act as placeholders for one or more views that will be displayed at run time. Then your modules can locate and add content
to regions in the layout without knowing how and where the region is displayed.
You could find more information about regions, and how to add content to this regions from your modules in the following chapter of the
Also, take into account that if one of your modules depends on components and services provided by other module,
Prism also supports the ability to register dependencies between modules so that they are loaded and initialized in the right order. During this initialization, the module can retrieve references to the additional components and services it
requires, and/or register any components and services that it contains in order to make them available to other modules.
More information about this can be found in the following section of documentation:
I hope you find this useful,