Our application is composed of a main webapp and a handful of windows services that perform a variety of jobs that feed, sanitize and optimize that webapp.

In order to ease the task of maintaining this services I would like to unify them in a single application and while I have several years of practice in C# development, I have little experience developing in Windows applications (in C# I mostly develop for the web using ASP NET MVC).

I would love to get suggestions on the achitecture/technologies/practices I should use to develop such application.

  • The basic idea is to develop a plugin based windows application that serves as the frontend to manage several plugins (each current windows service would become a plugin).
  • There will be three different kinds of plugins: some will be called from time to time, others at especific times and others when some folder/files are modified.
  • The plugins should have a way to log messages to the main application.

I can use windows forms or WPF to achieve this. I think windows forms is easier to grasp and develop. It does not need to be fancy, just functional.

To further clarify, I'm not asking for code or tutorials but guidelines to achieve what I need. Mainly the plugin (is MEF a good option or is it overkill?) and messaging systems.


1 Answer 1


Have a look at Activator.CreateInstance. It will allow you to instantiate arbitrary classes at runtime based on a string representing the name of the assembly and class you want to instantiate. You can then plug in any class that conforms to the Interface you've specified, and configure it using an XML file accessible to your consumers.

You should also have a look at MEF. To compile and execute arbitrary classes at runtime, have a look at CSScript.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.