Difference between revisions of "HowTo:Create UBIK Plugin"
(→Optional information) |
m (→See also) |
||
| (16 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | {{UBIK}} Plugins are | + | {{UBIK}} Plugins are loaded dynamically into the {{UBIK}} Kernel by the {{UBIK}} [[Injection_Management|Injection Management]] based on the [https://msdn.microsoft.com/de-de/library/dd460648%28v=vs.110%29.aspx Microsoft Extensibility Framework (MEF)]. |
| − | == Basic Prerequisites == | + | = Introduction = |
| − | + | === Basic Prerequisites === | |
| + | Creating an own plugin requires to add references to | ||
* System.ComponentModel.Composition | * System.ComponentModel.Composition | ||
* UBIK.Injection | * UBIK.Injection | ||
| + | |||
{{UBIK}} Injection Management provides access to all the basic features used by the Kernel to identifiy and categorize the available plugins. This management is provided by a library called '''UBIK.Injection'''. | {{UBIK}} Injection Management provides access to all the basic features used by the Kernel to identifiy and categorize the available plugins. This management is provided by a library called '''UBIK.Injection'''. | ||
| − | == Interface: | + | === Interface: IUbikPlugin === |
| − | The plugin must implement the | + | The plugin must implement the <code>UBIK.Injection.IUbikPlugin</code> interface and has to be registered for MEF composition by defining the export contract via an attribute. |
<source lang="csharp"> | <source lang="csharp"> | ||
[Export(typeof(UBIK.Injection.IUbikPlugin))] | [Export(typeof(UBIK.Injection.IUbikPlugin))] | ||
| Line 18: | Line 20: | ||
</source> | </source> | ||
| − | == Interface: IUbikInjectionMetaData == | + | === Interface: IUbikInjectionMetaData === |
| − | Managing plugins correctly presumes the following information, as defined by the interface | + | Managing plugins correctly presumes the following information, as defined by the interface <code>UBIK.Injection.IUbikInjectionMetaData</code>. |
<source lang="csharp"> | <source lang="csharp"> | ||
| Line 30: | Line 32: | ||
</source> | </source> | ||
| − | === Mandatory information === | + | ==== Mandatory information ==== |
| − | {| class="wikitable" | width = " | + | {| class="wikitable" | width = "100%" |
|- | |- | ||
! Name !! Type !! Description | ! Name !! Type !! Description | ||
| Line 41: | Line 43: | ||
|} | |} | ||
| − | === Optional information === | + | ==== Optional information ==== |
| − | + | {| class="wikitable" | width = "100%" | |
| − | {| class="wikitable" | width = " | + | |
|- | |- | ||
! Name !! Type !! Description | ! Name !! Type !! Description | ||
| Line 65: | Line 66: | ||
|} | |} | ||
| − | + | = Example = | |
<source lang="csharp"> | <source lang="csharp"> | ||
[Export(typeof(UBIK.Injection.IUbikPlugin))] | [Export(typeof(UBIK.Injection.IUbikPlugin))] | ||
| Line 83: | Line 84: | ||
</source> | </source> | ||
| − | == | + | <headertabs /> |
| − | * [[Create_UBIK_Workflow_Activity_Plugin|UBIK Workflow Activity Plugin]] | + | |
| + | == See also == | ||
| + | * [[Injection_Management]] | ||
| + | * [[HowTo:Create_UBIK_Workflow_Activity_Plugin|UBIK Workflow Activity Plugin]] | ||
| + | * [[HowTo:Create_UBIK_Module]] | ||
| + | * [[HowTo:Provide_system_definitions_with_a_custom_plugin]] | ||
| + | * [[UBIK_Plugin_Design]] | ||
| − | [[Category:Injecting]] | + | [[Category:How-To|Create UBIK Plugin]] |
| − | [[Category: | + | [[Category:Injecting|Create UBIK Plugin]] |
| + | [[Category:Plugin|Create UBIK Plugin]] | ||
Latest revision as of 07:46, 6 October 2025
UBIK® Plugins are loaded dynamically into the UBIK® Kernel by the UBIK® Injection Management based on the Microsoft Extensibility Framework (MEF).
