Installation
Paketquelle einrichten, Pakete je Plattform, Designer installieren.
Kuonen.UI kommt als NuGet-Pakete aus der eigenen Paketquelle unter ui.kuonen.org. Der Designer ist eine Erweiterung für Visual Studio Code.
Voraussetzungen
- .NET 10 SDK (Windows, Linux oder macOS)
- für Android und iOS die Workloads
androidundios(dotnet workload install android) - für den Designer Visual Studio Code
Paketquelle einrichten
Einmal je Rechner:
dotnet nuget add source https://ui.kuonen.org/nuget/index.json --name kuonen
Oder im Projekt als nuget.config neben der Projektmappe:
<configuration>
<packageSources>
<add key="kuonen" value="https://ui.kuonen.org/nuget/index.json" />
</packageSources>
</configuration>
Pakete einbinden
Eine Anwendung braucht nur ein Paket: Kuonen.UI.App wählt beim Start den Host der Plattform. Kern, Controls, Themes, Hosts und der KXAML-Generator
kommen als Abhängigkeiten mit (siehe Ein Paket für alle).
<ItemGroup>
<PackageReference Include="Kuonen.UI.App" Version="0.1.0" />
</ItemGroup>
Wer nur eine Plattform bedient oder den Host selbst starten will, bindet stattdessen den Host dieser Plattform ein:
| Plattform | Paket | Host |
|---|---|---|
| Windows | Kuonen.UI.Hosts.Windows | WindowsHost |
| Linux (Wayland und X11) | Kuonen.UI.Hosts.Linux | LinuxHost |
| macOS | Kuonen.UI.Hosts.MacOS | MacHost |
| Android | Kuonen.UI.Hosts.Android | AndroidHost |
| iOS | Kuonen.UI.Hosts.iOS | IosHost |
| Browser (WebAssembly) | Kuonen.UI.Hosts.Browser | BrowserHost |
| Blazor Server | Kuonen.UI.Hosts.Blazor.Server | über eine Komponente |
| Tests ohne Fenster | Kuonen.UI.Hosts | HeadlessHost |
Die .kxaml-Dateien des Projekts werden automatisch eingebunden und beim Bauen übersetzt; ebenso Lizenzdateien *.kuonenlizenz
(siehe Lizenz).
Designer für Visual Studio Code
- Die Erweiterung
kuonen-kxaml-….vsixvon der Seite Download laden. - In VS Code: Erweiterungen, Menü „…“, „Aus VSIX installieren…“ – oder auf der Befehlszeile:
code --install-extension kuonen-kxaml-0.1.0.vsix
- Eine
.kxaml-Datei öffnen: Vervollständigung, Hover, Meldungen und Färbung sind sofort da; der Designer öffnet sich über den Knopf oben rechts im Editor. Mehr dazu im Handbuch.
Aus einem Ordner oder vom NAS
Die Pakete lassen sich auch ohne Webserver beziehen: aus einem lokalen Ordner, einer Freigabe auf dem NAS oder einem anderen Netzlaufwerk. Dafür den
Feed (oder nur die .nupkg-Dateien) dorthin kopieren und als Paketquelle den Ordner v3-flatcontainer eintragen – NuGet liest ihn direkt.
So sieht der Ordner aus:
\\nas\software\kuonen-ui\ der kopierte Feed
v3-flatcontainer\ diesen Ordner als Paketquelle eintragen
kuonen.ui\0.1.0\kuonen.ui.0.1.0.nupkg
kuonen.ui.hosts.windows\0.1.0\…
Windows, Freigabe auf dem NAS (nuget.config neben der Projektmappe):
<configuration>
<packageSources>
<add key="kuonen" value="\\nas\software\kuonen-ui\v3-flatcontainer" />
</packageSources>
</configuration>
Windows, lokaler Ordner oder verbundenes Laufwerk:
<configuration>
<packageSources>
<add key="kuonen" value="D:\Pakete\kuonen-ui\v3-flatcontainer" />
</packageSources>
</configuration>
Linux und macOS (die Freigabe zuerst einhängen, etwa unter /mnt/nas oder /Volumes/software):
<configuration>
<packageSources>
<add key="kuonen" value="/mnt/nas/software/kuonen-ui/v3-flatcontainer" />
</packageSources>
</configuration>
Oder auf der Befehlszeile, einmal je Rechner:
dotnet nuget add source "\\nas\software\kuonen-ui\v3-flatcontainer" --name kuonen
dotnet nuget add source /mnt/nas/software/kuonen-ui/v3-flatcontainer --name kuonen
Hinweise:
- Ein Ordner, in dem nur die
.nupkg-Dateien liegen, geht auch (NuGet durchsucht dann alle Dateien); derv3-flatcontainerist bei vielen Paketen schneller. - Auf eine Freigabe mit Anmeldung muss das Konto, unter dem gebaut wird, Lesezugriff haben (unter Windows einmal im Explorer anmelden, unter Linux die Anmeldedaten beim Einhängen angeben). NuGet selbst fragt bei Ordnern nie nach einem Kennwort.
- Neue Versionen einfach dazukopieren: eine veröffentlichte Version wird nie überschrieben.
- Im Container oder auf dem NAS mit Docker lässt sich auch die ganze Webseite samt Feed betreiben: Image
kuomar/kuonen.uiauf Docker Hub.