Skip to content
v26.3

Plugin System

DiKAS has a modular plugin system. Feature modules are developed as separate DLLs and loaded at runtime.

Overview

DiKAS Core (dikascore.exe)
    ├── Core POS (POS, Articles, Customers, Staff, ...)
    └── plugins/
        ├── Dikas.Features.Disco.dll        ← Disco module
        ├── Dikas.Features.Licensing.dll    ← Licensing module
        └── Dikas.Features.Warehouse.dll    ← Warehouse module

The core functions without plugins. Plugins extend the system with additional entities, API endpoints, and frontend pages.

For Administrators: Installing Plugins

Install a DLL

  1. Obtain the plugin DLL from the provider
  2. Copy it into the plugins/ folder
  3. Restart DiKAS
  4. The plugin is automatically active

Install a .feature Package

.feature files are ZIP archives containing a backend DLL and frontend code:

  1. Copy the .feature file into the features/ folder
  2. Restart DiKAS
  3. The package is automatically extracted and loaded

Disable a Plugin

  1. Remove the DLL from the plugins/ folder
  2. Restart DiKAS
  3. The plugin data remains in the database (can be reactivated later)

For Developers: Creating a Plugin

A detailed developer guide is available in the Plugin Developer Guide.

Quick Overview

  1. Create a new .NET project (Dikas.Features.MyPlugin)
  2. Implement IFeatureModule (entry point)
  3. Define entities (domain models)
  4. Write CQRS handlers (commands & queries)
  5. Create controllers (API endpoints)
  6. Register frontend extension (Angular)

Architecture

Dikas.Api.Domain          ← Entities, Interfaces
Dikas.Api.Application     ← CQRS Handlers, Services
Dikas.Api.Contracts       ← DTOs (no domain dependency!)
Dikas.Api.Infrastructure  ← Database, external services
Dikas.Features.MyPlugin   ← Your plugin

Reference Implementations

Plugin Complexity Characteristics
Disco Simple 3 entities, standard CRUD
Licensing Complex PKI, rate limiting, legacy API

Next Step

FAQ — Frequently Asked Questions