Kuonen.UI gibt es in zwei Ausgaben, gewählt beim Bauen der Bibliothek:
| Ausgabe | Verhalten |
|---|---|
| Frei (Standard, derzeit ausgeliefert) | alles frei, keine Prüfung, kein Hinweis |
| Lizenziert | jedes Control und jedes Werkzeug braucht eine Lizenz für sein Merkmal; ohne Lizenz trägt das Control einen sichtbaren Hinweis |
Entscheid Marc (2026-10-16, L3): Kuonen.UI verlangt nie Lizenzkosten, die Weiterentwicklung tragen Spenden. Neue Bereiche werden für alle freigeschaltet, sobald ihre Entwicklungskosten gedeckt sind; bis dahin können Spender sie mit einem Schlüssel früher nutzen. Bis zur ersten stabilen Version wird alles ausgeliefert: die freie Ausgabe, in der jedes Teil frei ist, auch jedes neue. Die Nutzungsbedingungen folgen (L4).
Für alle freigeschaltet
Auch die lizenzierte Ausgabe prüft nur, was noch nicht für alle freigeschaltet ist. Die Liste Lizenzkatalog.FuerAlleFrei nennt die Knoten, die ohne
Schlüssel frei sind; heute steht jeder Bereich darin (Grundlagen, alle Bereiche unter Steuerelemente, Werkzeuge.Designer und
Werkzeuge.Sprachdienste). Ein neuer Bereich kommt mit eigenem Knoten dazu (etwa Steuerelemente.Terminplaner) und steht zuerst nicht in der Liste:
Spender nutzen ihn mit einem Schlüssel, alle anderen sehen den Hinweis. Sind seine Kosten gedeckt, kommt sein Knoten in die Liste, und ab der nächsten
Version ist er für alle frei. Was einmal in der Liste steht, bleibt dort. Freigegeben wird immer je Bereich, nie mit *.
Merkmale und Bereiche
Jedes Control hat ein Merkmal in einem Baum mit Punkten, etwa Steuerelemente.Grid.DataGrid. Eine Lizenz gibt einzelne Merkmale oder ganze Knoten frei:
| Freigabe | gibt frei |
|---|---|
Steuerelemente.Grid.DataGrid | nur das DataGrid (samt Zeilen, Zellen und Spaltenköpfen) |
Steuerelemente.DatumZeit | alle Datum- und Zeit-Controls |
Steuerelemente | alle Controls |
Werkzeuge.Designer | den VS-Code-Designer (Fläche und Live-Vorschau) |
* | alles |
Bereiche: Grundlagen (immer frei), Steuerelemente.Schaltflaechen, .Text, .Eingabe, .Werte, .Farben, .Listen, .Menues, .Grid, .DatumZeit,
.Layout, .Drucken, .Leisten, .Andocken und Werkzeuge (Designer, Sprachdienste). Die vollständige Liste zeigt
dotnet run --project tools/Kuonen.UI.Lizenz -- merkmale
Grundlagen sind immer frei: Panels (Grid, StackPanel, DockPanel, Canvas, WrapPanel), Border, TextBlock, Image, Formen, ScrollViewer,
Window, UserControl, ContentControl und die Bausteine der Vorlagen. Teile eines Controls (Einträge, Zellen, Kalendertage) tragen das Merkmal ihres
Controls; was eine Vorlage oder ein Control in seinem Inneren baut, wird nicht eigens geprüft. Eigene Klassen, die von einem Control ableiten, erben dessen
Merkmal.
Lizenz aktivieren
Datei im Projekt (empfohlen): die Lizenzdatei Firma.kuonenlizenz ins Projekt legen. Der KXAML-Generator aus dem Paket meldet ihre Schlüssel beim Start
der Anwendung an, auf allen Plattformen (auch im Browser und mobil), ohne Dateizugriff zur Laufzeit. Eine Datei enthält je Zeile einen Schlüssel, Zeilen mit
# sind Kommentare. Eine fremde Zeile ergibt die Warnung KX0800.
Im Code:
using Kuonen.UI.Lizenzierung;
var ergebnis = KuonenLizenz.Registriere("KUI1.…"); // Gueltig, Format, Signatur, Abgelaufen oder Version
Der Designer liest dieselbe Datei im Projekt oder die Einstellung kuonenKxaml.lizenz in VS Code.
Ohne Lizenz
- Das Control funktioniert und trägt einen halbdurchsichtigen, gestreiften Hinweis „Kuonen.UI – nicht lizenziert: DataGrid“ über seinem Inhalt.
KuonenLizenz.Fehltmeldet jedes fehlende Merkmal einmal (etwa für ein Protokoll).- Wer lieber einen Fehler will:
KuonenLizenz.Verhalten = Lizenzverhalten.Ausnahme;– dann wirft das Erzeugen eineLizenzException.
Die Prüfung ist ein Hinweis- und Rechtsmittel, kein Kopierschutz: Schlüssel werden offline geprüft (Ed25519, kein Server, kein Netz), und eine eigene Vorlage kann Controls enthalten, ohne dass sie einzeln geprüft werden.
Lizenzschlüssel
Ein Schlüssel ist ein Text KUI1.<Inhalt>.<Signatur> (Base64url): Inhaber, Merkmale, Ausstellungsdatum, wahlweise Ablaufdatum (der letzte Tag gilt noch)
und höchste Hauptversion, dazu eine Kennung (etwa die Bestellnummer). Signiert ist er mit Ed25519; geprüft wird gegen den öffentlichen Schlüssel, der in der
lizenzierten Ausgabe eingebaut ist.