views:

173

answers:

2

Hi! My team(3 developers) will be building a Silverlight LOB application. This is the first Silverlight project for us. We've been doing mostly Winforms. We'll be using Silverlight4 / VS2010 / possibly WCF RIA Services, and ASP.NET Web application to handle authentication and host the silverlight pages.

We need a way to..

  1. Modularize the silverlight project so we can work in different parts of the application, then integrate them.
  2. Dynamically load different parts of the application, so the initial download size of the xap file wouldn't be too large.

After some research, I found out that Prism and MEF are possible solutions to these goals. Can you give me advice on which framework to use? or possibly another solution? We don't have much experience on Silverlight and the project needs to be finished in 3 months, so the learning curves for frameworks should be considered. I've read some articles comparing them such as http://codebetter.com/blogs/glenn.block/archive/2009/12/02/mef-and-prism-to-be-or-not-to-be.aspx, but it's not clear to me.(I have only 4 months of experience in programming)

Thank you for reading! Any inputs will be much appreciated.

+1  A: 

I would go with Prism as it is specifically designed for building complex modular applications. MEF is more suitable for a plugin application without as much explicit support for WPF.

Your stated goals fit very well with Prism and there are a few tutorials out there on how to implement dynamic XAP loading.

Igor Zevaka
A: 

The two don't really provide the same set of functionality. You are essentially asking "Should I use engines or cars". However, there is a bit of information that will hopefully make this statement clearer AND provide you with a path that gives you a mix of both worlds.

The newest version of the Prism guidance includes an implementation of the inversion of control that utilizes MEF instead of Unity. You can check out some more information here: http://www.softinsight.com/bnoyes/2010/06/03/Prism40FirstDropIsOnCodePlex.aspx

Anderson Imes