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.
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.
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.