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¶
- Obtain the plugin DLL from the provider
- Copy it into the
plugins/folder - Restart DiKAS
- The plugin is automatically active
Install a .feature Package¶
.feature files are ZIP archives containing a backend DLL and frontend code:
- Copy the
.featurefile into thefeatures/folder - Restart DiKAS
- The package is automatically extracted and loaded
Disable a Plugin¶
- Remove the DLL from the
plugins/folder - Restart DiKAS
- 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¶
- Create a new .NET project (
Dikas.Features.MyPlugin) - Implement
IFeatureModule(entry point) - Define entities (domain models)
- Write CQRS handlers (commands & queries)
- Create controllers (API endpoints)
- 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