I'm starting a new LOB application with Silverlight v4 and WCF Ria Services. The idea is to use Prism v4, that includes MVVM, MEF and Unity.
Can I use all together these "technologies": which scenario of architecture can be imagined?
Makes sense to write a skeleton to build such kind of application that can be reused? Maybe already exist as sample application?
(in Prism v4 there are a lot of sample projects, but not one that includes all "technologies")
Thanks in advance.
Well, keep in mind that MEF won't be officially part of Prism until version 4.0 is released (it is in CTP right now), but they can definitely be used together. On the other hand MVVM is not strictly part of Prism: it is possible to use Prism and MVVM, but it is possible to use Prism and not use MVVM and vice-versa.
When you build a Prism application, it is always a good idea to create separate modules for things that are re-usable. For example, if your applications usually parse XML you could create a Prism module to handle that and then re-use it.
Also, it is always a good idea to make intelligent use of the Prism Infrastructure project and put there utilities which are not big enough to deserve a module of their own but are re-usable enough to be carried to other projects.
It is not easy to find a project that puts Prism to full use, mainly because Prism is not meant to be fully used by a single project. Prism works as a menu of methodologies, and from that menu you can pick and choose those that will help you build your project better and more efficiently.
Pay special attention to the EventAggregator in Prism, which will provide you with event broadcasting capabilites, application wide.
Other important portion of Prism to take a closer look at is UI Composition: RegionManager, RegionContext and Regions in general.
As you plan to make use of MVVM, make sure to have a good understanding of how Data Binding works in Silverlight, take a look at converters and dive deep into Commands and how to use them and bind them and make sure you take a look at Prism's DelegateCommand.
In order to keep your UI re-usable and "composable" make sure to encapsulate UI logic using custom controls and behaviors instead of writing code-behind in your views.
I hope this introduction helps. Your question was rather general and therefore it is hard to identify whether you are already aware of all these things or not. If you need specific information beyond this, please clarify.