Zum Inhalt
Kuonen.UI

Lizenzierung

Ausgaben, Merkmale und Bereiche, Lizenzschlüssel aktivieren.

Kuonen.UI gibt es in zwei Ausgaben, gewählt beim Bauen der Bibliothek:

AusgabeVerhalten
Frei (Standard, derzeit ausgeliefert)alles frei, keine Prüfung, kein Hinweis
Lizenziertjedes 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:

Freigabegibt frei
Steuerelemente.Grid.DataGridnur das DataGrid (samt Zeilen, Zellen und Spaltenköpfen)
Steuerelemente.DatumZeitalle Datum- und Zeit-Controls
Steuerelementealle Controls
Werkzeuge.Designerden 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.Fehlt meldet jedes fehlende Merkmal einmal (etwa für ein Protokoll).
  • Wer lieber einen Fehler will: KuonenLizenz.Verhalten = Lizenzverhalten.Ausnahme; – dann wirft das Erzeugen eine LizenzException.

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.