0

I am currently working on an application and would like to add new functionality to it.

One would be to update the application's code directly.

Another would be to offer an extensibility layer where new features will be added to.

Having read multiple posts on Plugin architectures and using MEF for creating composable apps, i am a bit confused whether the 2 terms actually mean the same thing, and if not in what do they differ?

Also, i am interested to know of any good design solutions that assist in "opening up" my application to allow easier expansion in the future (new futures can be added "as an extension")

lysergic-acid
  • 19,570
  • 21
  • 109
  • 218

1 Answers1

1

You will definitely need a plug-in based architecture to have a generic extensibility framework.

However, you do not necessarily need a Dependency Container or MEF.

It may be as simple as defining an IPlugIn interface and scanning assemblies for types implementing the interface. Then instantiating an instance of the type to get going.

Eben Roux
  • 12,983
  • 2
  • 27
  • 48
  • The problem remains - how to enlist many application options/events to be customized and extended. The simple IPlugin interface does not assist with this. – lysergic-acid Apr 27 '12 at 18:13
  • That depends. You have to decide what the extension entails. `IPlugIn` could have a `IEnumerable Messages()` method that you create a menu for that invokes the messages somehow. Most plug-in architectures will have a defined structure that logically fits into your host/shell. – Eben Roux Apr 27 '12 at 18:15
  • That is exactly my issue -- my "plugin" or extension does not fit into any specific place at all, but should be able to blend into pretty much any place in my app. Of course i could be supplying various IPlugin interface (IPluginUI, etc) for extending or interacting with different aspets of the application. – lysergic-acid Apr 27 '12 at 18:28
  • 1
    You could go the multiple interface route (keeping roles explicit). Even something as generic as MMC has a specific structure. – Eben Roux Apr 29 '12 at 15:45