views:

155

answers:

5

Hi

first of all, I am new to silverlight(play around with it for one month) and this is my first job. However, i am willing to learn anything which can let me advance my silverlight knowledge.

Currently, I need to implement a big Silverlight project about Financial(kind of similar to Microsoft Accounting). It will have a lot of tables from database.

Because it is too big, scalability and maintain are pretty important.

Can anyone here tell me which silverlight framework i should learn and use (MEF, Prism, .....)? Time is also a constraint so i don't think i can learn all. Plz advise me the best one.

thank you

A: 

For a large scale project I would implement MVVM especially if you are just learning simply because it will keep your code at a more manageable level. I would also check this link:

http://www.silverlight.net/learn/handsonlabs/

There are some really great labs for learning silverlight as well as a couple of MVVM labs.

Varuuknahl
A: 

4 months ago I embarked on a very large Silverlight project which is still underway. In the end, I chose no MVVM framework. It seems their utility decreases as Silverlight gains new features. For examples, Silverlight now has commands built in, taking away a nice chunk of why Prism and the like were created.

I do use MVVM light's messaging, but I don't use its MVVM capabilities at all. My app ended up being:

  • Ninject for IOC
  • built in Silverlight 4 ICommand implementation for commands
  • MVVM Light messaging for messages
  • A very simple, to the point MVVM framework I wrote from scratch. There's really nothing to this, just a simple base ViewModel class that handles common tasks and that's about it.
Matt Greer
A: 

If you expect to produce a product that is maintained for years to come, and probably worked on by multiple developers, you will need to go beyond simple MVVM and think about modularity on a broader scale. That means learning about IOC, MVVM, commanding and events, as well as all the basics of Silverlight.

Prism 4 is on the verge of release (currently at Alpha as of August 18). The new version includes MEF so gives you several choices for dynamically loading project modules. It is well worth investigating. Both Prism and MEF were originated by Microsoft.

MEF is used to produce plug-in based framework apps like Visual Studio. We are using Prism 2 at the moment for a very large long-term project (hundreds of modules) and expect to migrate to version 4 on release (I am currently trying out version 4 Alpha on another personal project).

Enough already
A: 

if I can give you one big tip, which I wish I had before starting a rather big application; do not use ria services if you have more then 2-3 level relations between your database tables if you want to really be in control of your data manipulation.

mvvm can be quite chaotic at first sight but once you get the hang of it it's really transparent and very maintainable.

good luck :)

Sam
A: 

Mvvm Light is a great framework.

CinchV2 is another that uses MEF as well.

But as others have said. Framework is kind of irrelevant, design is what matters. The frameworks just make some of the design easier. Read about the MVVM pattern, but in my experience non of the tutorials really address large projects and how they components will talk to each other. This is where the frameworks come in. They address some of the issues, but MVVM is only one of many patterns that you will use in a large app.

nportelli