-2

I'm currently working on a project (very early stage) and the goal is to create modular application, that is easily scalable by adding new modules. Modules can be anything from simple function to complex plugin (functionality, ui, ...). The core of the application contains parts, that will be identical in all configurations of the app (Login, Settings, some generic functionality) and the logic for integrating the plugins (how to load them, how and where to add new ui elements, ...). I'm using WPF with MVVM pattern (custom MVVM framework). I'm also using DevExpress.

I have done some research and I found MEF. It seems like really good way to implement modularity/extensibility. I have done some tests and it seems like it could work. However I have not found any information on performance of MEF. I'm a little bit worried about how many modules can use. Lest say I would have 40 modules. 10 very simple (single functions), 20 medium complexity (something like export list to excel with some formatting), 10 more complex (module that has some ui elements, several windows with visualization - charts, more complex logic, ...). Would startup times be affected a lot by this? Will the application run ok or is this a big no-no. Is it somehow resource intensive (cpu, ram) compare to regular applications (all code is part of the application).

I would greatly appreciate any advice in this regard (Or if there is some other/better way to do this).

Uwe Keim
  • 39,551
  • 56
  • 175
  • 291
JanW
  • 11
  • 1
  • 1
    I wouldn't worry about MEF if you are using DevExpress :D – Selvin Sep 17 '19 at 08:50
  • 1
    StackOverflow is a site for specific programming questions and answers. It's not a discussion forum, so this question is too broad for this site. – Andreas Sep 17 '19 at 08:53

1 Answers1

0

You could try to use Prism framework. https://prismlibrary.github.io/

Prism available four way to plug modules:

  • Register modules in code.
  • Load modules from directory(also on demand).
  • Load modules from xaml file.
  • Load modules from app.config file.

Now I have app on prism with 12 modules and it works fine.

Noisy88
  • 181
  • 1
  • 14