Version 1 (modified by jeroens, 9 years ago) (diff)


What are plug-ins

Plug-ins are code modules that are developed independently of the EwE software, but that are seamlessly integrated into the EwE flow. Via plug-ins, users can extend or replace EwE functionality without having to make changes to the EwE source code.

Write your own

Writing a plug-in is a fairly straight-forward process with some .NET programming experience and access to the EwE source code. You basically need to:

  • Start a new Class Library project with the same .NET framework dependencies and compiler model as the EwE software. For more information, see the Technical FAQ
  • Add references to the EwE assemblies EwECore, EwEUtils and EwEPlugIn
  • Create one or more plug-in classes that implement one or more EwE plug-in interfaces. Available plug-in interfaces are provided in Assemby EwEPlugin, folder "Plugin Templates". The code that is placed in the implementation of these interfaces will be invoked when the EwE6 software encounters a plug-in point during its execution.
  • Compile the plug-in, and place the compiled DLL beside the EwE6 executable.
  • Run EwE.

During development time it is advisable to reference your plug-in assembly from the EwE Scientific Interface project. This means that whenever EwE6 is compiled, your plug-in will be compiled and deployed with it.

Contributing plug-ins

If you have written a plug-in that you deem valuable for the EwE community, you can contact the EwE development team for integrating your code with the EwE software. This entails the following:

  • Your code will be integrated with the SVN source code repository of EwE, making its internal logic available to anyone with access to the EwE source code.
  • Your plug-in will be compiled nightly with the EwE source code to ascertain structural integrity.
  • Your plug-in code will be kept compatible with the EwE source code if changes occur.

You will remain responsible for your plug-in, and you can make changes to the source code whenever you wish.

When you wish to contribute a plug-in to EwE, the following process will happen:

  • You will have to take out a support contract that will be used by the EwE development team to check your plug-in for compliance with EwE UI guidelines, stability guidelines, and adherence to generic EwE flow principles such as AutoSaving, EventLogging, !Messaging, etc.
  • You will receive recommendations to make changes, or the EwE development team can do this for you using the support contract.
  • When the plug-in is accepted, the code will be integrated with the EwE source code and you will receive write access to the code of your plug-in.
  • The plug-in will be included in the nightly builds to perform automated integrity checks.
  • The plug-in will be included in the EwE setup tool in the next release.

Distributing plug-ins

As of yet there is no central repository for EwE6 plug-ins. We need to find funding for this effort, perhaps you can help?

For now, freely available plug-ins are included as optional install options in the EwE6 setup package. Plug-ins can be obtained directly from their authors, and can be seamlessly included in the flow of a desktop version of EwE as long as the plug-in is compiled to the same code version as your desktop version of EwE.


Note that plug-ins are subject to the L-GPLv2 license of EwE, because they are fundamentally based on the EwE source code. This means that you can freely distribute and even sell your plug-in as long as you make its source code available.