1
votes

I’m looking for solution on architecting modular application model in WPF. For now I was using Devexpress POCO MVVM for architecting my WPF apps but is lack of modular extensibility and I’m looking something to work well with my current design and allow to build application composed with modules. My expectations are:

  1. Modules are placed in remote location
  2. Framework can download latest version when application starts (or demand module)
  3. Application should load only subset of all modules basing on permissions of currently logged user
  4. Framework allow integration with GUI – allowing to load list of modules and put graphical representation of module in some part of my application
  5. Library is live and not closed project

I’m thinking about PRISM but this framework always looked little complex and heavy but maybe it was wrong impression. Another library is MEF but I don’t know if it fits my expectations.

Can I ask of some suggestion for modern library which will be good for my needs?

1
PRISM is for you, it is not the monster you think.E-Bat
We have an application that does all 5 on your list, we did this with WPF MVVM PRISM + Telerik controls and it rocks.Richard Friend
This kind of question doesn't actually fit on SO since it's based on opinions. But: Prism is more of a MVVM Framework and MEF for modularity. You usually use Prism together with MEF or Unity (or with both). MEF and Unity behave a bit differently and while Unity is more of decoupling an application into modules (but which still are referenced by the App), MEF better suites for loading 3rd party modulesTseng
Tnx for assuring me with chose of PRISM – I will ask for more info after I will learn how to use PRISM, because I’m interest in integrating it with DEVEXPRESS.dnf

1 Answers

2
votes

PRISM is a large library but is made of many optional parts making it easy to adopt just the parts you need (its not all or nothing).

Specifically it does do modularisation, with on demand load, and it does do UI composition from modules.

Its also open source.

Versions are valuable for desktop apps (WPF), Universal apps (Desktop app, tablet, phone and possibly iOS and Android via Xamarin - but I'm not sure about that!) so there should be a PRISM for your chosen platforms!