Edit page ← Previous ChangeWiki History

Changes between Initial Version and Version 1 of PlugIns


Ignore:
Timestamp:
2015-06-04 04:53:55 (4 years ago)
Author:
jeroens
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PlugIns

    v1 v1  
     1== What are plug-ins == 
     2 
     3Plug-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. 
     4 
     5== Write your own == 
     6 
     7Writing 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: 
     8 * Start a new Class Library project with the same .NET framework dependencies and compiler model as the EwE software. For more information, see the [wiki:TechnicalFAQ Technical FAQ] 
     9 * Add references to the EwE assemblies EwECore, EwEUtils and EwEPlugIn 
     10 * 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. 
     11 * Compile the plug-in, and place the compiled DLL beside the EwE6 executable. 
     12 * Run EwE. 
     13 
     14During 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. 
     15 
     16== Contributing plug-ins == 
     17 
     18If 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: 
     19 * 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. 
     20 * Your plug-in will be compiled nightly with the EwE source code to ascertain structural integrity. 
     21 * Your plug-in code will be kept compatible with the EwE source code if changes occur. 
     22 
     23You will remain responsible for your plug-in, and you can make changes to the source code whenever you wish. 
     24 
     25When you wish to contribute a plug-in to EwE, the following process will happen: 
     26 * 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. 
     27 * You will receive recommendations to make changes, or the EwE development team can do this for you using the support contract. 
     28 * 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. 
     29 * The plug-in will be included in the nightly builds to perform automated integrity checks. 
     30 * The plug-in will be included in the EwE setup tool in the next release. 
     31 
     32== Distributing plug-ins == 
     33 
     34As of yet there is no central repository for EwE6 plug-ins. We need to find funding for this effort, perhaps you can help? 
     35 
     36For 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. 
     37 
     38== License == 
     39 
     40Note 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.