The application architecture is explicitly targeted at ensuring to meet the business requirements and building up an easy to manage application on different levels (customizations by administrators, product enhancements by developers).
Therefore some constraints must be set to meet these constraints.
.....
The goal is to have a framework which (mostly) integrates independent modules into one application. The user interface is seperated from the application logic (View-Model-Presenter/Controller pattern). Regions can be defined in t the user interface (something like content placeholder), to which views can be assigned.
So we chose the Microsoft Composite Application Framework (CAF) to base our framework on.
In our solution the main application defines the basic applicaiton layout.
The main application form, which we also call "view", the Shell.xaml renders main menu (MainMenuControl.xaml) and loads available modules.
Now the modules are referenced (this is not a must - it can be configured in app.config or all modules may be loaded from a specified directory - it is a feature of the CAF guidance)