For functionality, two very popular choices are the Managed Extensibility Framework (MEF) and the Composite Application Guidance (Prism).
I personally like Prism a tiny bit better. The programming model made more sense to me and it featured an EventAggregator that made communication between "web parts" (if you will) easy and decoupled (uses a Pub-Sub type of mechanism).
Both have a UI Compositing feature that sounds like what you are after and both are pretty easy to use.
As a developer creating a "web part" or collection of web parts in Prism you would:
- Create your UI
- Create a module and register your UI with a "region" of the application.
From there, the "Shell" would load all modules and show its regions, which would automatically be populated with the UIs that modules registered there.
There's some pretty good samples out there that make things pretty easy to understand.
Hope this helps,
Anderson