Jump to: navigation, search

Difference between revisions of "UBIK Plugin Design"


(See also)
(Supported capabilities and roadmap)
Line 119: Line 119:
 
| 5.1 Initial Release
 
| 5.1 Initial Release
 
|-
 
|-
| [[LOCALIZATION]] instances for multi-language translation of MetaClasses, MetaProperties, SelectiveLists & SelectiveItems
+
| Multi-language translations for References, Relations, Units & UnitItems
 
| WiP
 
| WiP
| 5.1 Service Pack
+
| 5.1 Initial Release
 
|-
 
|-
| Multi-language translations for References, Relations, Units & UnitItems
+
| [[LOCALIZATION]] instances for multi-language translation of MetaClasses, MetaProperties, SelectiveLists & SelectiveItems
 
| WiP
 
| WiP
 
| 5.1 Service Pack
 
| 5.1 Service Pack

Revision as of 14:58, 11 March 2026

The UBIK® Plugin Design feature allows users to create a UBIK® Plugin C# solution, including system definitions purely from customizing in UBIK® Studio.

Overview

Relevant use-cases

Getting a customizing from one UBIK® database into another can be quite a challenge. There are several use-cases in which this is required though:

  • Staging: E.g., moving a feature from a test environment to the productive environment
  • Hotfixes: A bugfix should be done in multiple environments
  • Reusing features: A set of features should be reused in multiple projects
  • Standardization: An implementation should be positioned as a verifiable standard package

Benefit of UBIK® Plugins

Plugins are a good way to deal with this, because of the following benefits:

  • Plugins can be developed and maintained using industry-standard processes and tools (e.g., IDEs like Visual Studio and CVSs like Git).
  • Plugins can be transported and deployed rather easily.
  • Plugins can be strong-named (signed) and versioned.
  • Plugins can be compiled, tested and even deployed automatically using DevOps infrastructure.

Manual configuration, automatic generation

However, developing a UBIK® Plugin from scratch is an expert-level task. Optimally, one could configure a customizing in UBIK® Studio, as usual, and generate a Plugin out of this configuration. This can be achieved with the UBIK® Plugin Design feature.

Usage

Setup

The UBIK® Plugin Design feature-set is contained in a UBIK® Plugin itself. It's called "UBIK.Module.PluginDesign" and can be downloaded from the Release Portal.

To install it, copy & paste the UBIK.Module.PluginDesign.dll into the Injection folder of your UBIK® Studio. After this, when connecting to a UBIK® Environment (database), an upgrade dialog allowing the installation of the Plugin should appear.

Creation of a new Plugin Design Configuration

Creating a plugin design configuration instance

The feature is accessible through the "System.PluginDesign.PLUGIN_DESIGN_CONFIGURATION" MetaClass in UBIK Studio. A new Plugin Design Configuration instance can be created in the Bulk Editor to define a custom plugin context.

Adding MetaClasses to the configuration

Adding a MetaClass to the configuration

Custom MetaClasses can be added to the plugin configuration using the "SYSREL_PLUGINDESIGNCONFIG_METACLASS" relation in the Relation Editor.

Adding other objects to the configuration

In the initial version of this feature, we're assuming that your MetaClasses are the center of your customizing; everything else will be detected as a dependency of those. E.g., if you're using a MetaProperty in a MetaClass you related to the Plugin Design Configuration instance, it will also be contained in the generated C# solution. The same is true for all other (supported) kinds of objects. The Plugin Design feature is subject to active development.

Exporting a C# solution for the plugin

Trigger the C# solution generation

A C# solution can be generated for the plugin via context menu action in the Class Browser (content view style): Right-click the Plugin Configuration instance, 'Start Action → "" → Create a C# solution for a custom UBIK plugin'. This will increase the plugin version (revision), generate the C# solution and prompt the user with a save dialog for a respective .zip archive.

Resulting C# solution in Visual Studio

Next steps

The generated solution can be opened using Visual Studio. You can build the C# project contained in the solution and deploy the resulting plugin DLL to your target system's injection folders. However, you can also use the generated solution code as a basis for further development and push it into a Git repository, for example. Further, you could set up some DevOps infrastructure for automatic building, testing and deployment - it's up to you.

Supported capabilities and roadmap

Feature Release State Version
Generation of a basic Plugin project,
including the Module and a SystemDefinitions stub
IC Check Mark.png 5.0 Initial Release
Incremental versioning of the generated Plugin to support upgrades in a target Environment IC Check Mark.png 5.0 Initial Release
MetaClasses IC Check Mark.png 5.0 Initial Release
MetaProperties IC Check Mark.png 5.0 Initial Release
Custom Class Code IC Check Mark.png 5.0 Initial Release
Custom Code Library IC Check Mark.png 5.0 Initial Release
Classifications IC Check Mark.png 5.0 Initial Release
Relations IC Check Mark.png 5.0 Initial Release
Selective Lists and Selective Items IC Check Mark.png 5.0 Initial Release
References IC Check Mark.png 5.0 Initial Release
MetaProxies and MetaProxyProperties IC Check Mark.png 5.0 Initial Release
Units and Unit Items IC Check Mark.png 5.0 Initial Release
MetaProperty assignment properties (RelationData) Imminent 5.1 Initial Release
Multi-language translations for References, Relations, Units & UnitItems WiP 5.1 Initial Release
LOCALIZATION instances for multi-language translation of MetaClasses, MetaProperties, SelectiveLists & SelectiveItems WiP 5.1 Service Pack
Queries Requirement Future version
ACM-related content Requirement Future version

See also