Overview

Framework-Uebersicht

WUIC Framework ist eine metadata-gesteuerte Plattform zum schnellen und konsistenten Erstellen von Business-Oberflaechen.

Was ist enthalten

  • DataSource und DataRepeater zur Orchestrierung von Daten und Rendering.
  • Visuelle Archetypes (list, map, scheduler, chart, carousel).
  • Runtime-Designer fuer Dashboards und dynamische Templates.
  • Workflow-Designer/Runner fuer operative Prozesse.
  • RAG Chatbot zum Abfragen der Codebasis in natuerlicher Sprache.
  • Multi-DBMS: SQL Server, MySQL, PostgreSQL und Oracle ueber Drop-in-Provider (dbms: mssql | mysql | postgresql | oracle).

First Steps — Dev-Umgebung starten

Der WUIC-Stack besteht aus mehreren Diensten. Starte sie in der angegebenen Reihenfolge.

Voraussetzungen

WasVerifikationHinweise
.NET 10 SDKdotnet --versionHosting Bundle fuer IIS in Produktion
Node.js 22 LTSnode --versionMit 22 wird das Paket getestet; unter npm 10.9.x gelingt die Installation dank der mitgelieferten package-lock.json
PowerShell 5.1+$PSVersionTable.PSVersionDie vorinstallierte Windows PowerShell genuegt: rename-project.ps1 und die llm-workspace/-Skripte laufen auch unter 5.1. PowerShell 7 wird empfohlen, ist nicht erforderlich
SQL Server 2019+sqlcmd -S localhost\sqlexpress -E -C -Q "SELECT 1"Fehlt er, installiert ihn der Einzeiler selbst (SQL Server Express, oder die mit -Dbms gewaehlte Engine); auf Windows Server nicht, siehe Kasten unten. 2019 reicht fuer die Pakete ohne .bak; das .bak-Tutorial ist ein SQL Server 2022-Backup und benoetigt 2022 oder neuer
Linux (Installer install.sh)lsb_release -dsUbuntu 22.04 oder 24.04 LTS (24.04 empfohlen): nur diese Ubuntu-Versionen werden von Microsoft fuer SQL Server unterstuetzt, die 26.04 wird nicht unterstuetzt (Supported platforms). Gleiche Empfehlung mit MySQL, PostgreSQL und Oracle, da der Installer auf diesen Versionen getestet ist
NVIDIA-GPU (CUDA 12.x + cuDNN 9)nvidia-smiOptional: beschleunigt den RAG Chatbot (ohne GPU laeuft er auf CPU)

> Auf Windows Server muss die Datenbank vorher installiert werden. Der Einzeiler beschafft

> fehlende Komponenten ueber winget, das auf Windows Server nicht vorhanden ist: ohne eine

> bereits erreichbare Instanz bricht die Installation mit `No SQL Server instance reachable and

> winget is missing` ab. Installiere die Engine also vor dem Ausfuehren der Zeile - SQL Server

> muss 2019 oder neuer sein (Express genuegt; 2022 oder neuer fuer das .bak-Tutorial),

> eine 2017 wird nicht akzeptiert. Ist es nicht die Standardinstanz, uebergib sie mit

> -SqlServer 'localhost\INSTANZNAME'. Das gilt fuer alle Engines, nicht nur SQL Server.

1. Projekt-Template herunterladen

Unter Windows erledigt eine PowerShell-Zeile alles: sie laedt das Paket, prueft .NET SDK 10

und Node.js 22 (und installiert, was fehlt), fuehrt dotnet restore und npm install aus

und installiert die Erweiterung WUIC Assistant in VS Code.

Snippet 1PowerShell
& ([scriptblock]::Create((irm https://wuic-framework.com/install.ps1))) -Src

Nuetzliche Optionen auf derselben Zeile: -Dbms mysql (oder postgres, oracle) fuer eine

andere Engine als SQL Server — der Installer installiert und konfiguriert sie selbst — und

-WithTutorial, um auch die Beispieldatenbank herunterzuladen.

Wenn er fertig ist, ist der letzte Bildschirm bereits die Aufgabenliste: öffnen Sie die

Workspace-Datei WuicTest.code-workspace in VS Code und drücken Sie F5 — das startet

Backend und Frontend gemeinsam über den Launcher Fullstack: WuicTest + Chrome (die Launcher

stehen in .vscode/launch.json, daneben der nur für das Backend). Wer lieber im Terminal

arbeitet, findet die entsprechenden Befehle weiter unten.

Snippet 2text
Developer workspace ready: C:\Users\<user>\AppData\Local\WUIC\app

  code "C:\Users\<user>\AppData\Local\WUIC\app\WuicTest.code-workspace"
  then F5 > 'Fullstack: WuicTest + Chrome' (backend http://localhost:5000, frontend http://localhost:4200)

First start opens the first-run wizard: paste this connection string (Windows authentication)
  Data Source=localhost\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=WuicData;Encrypt=False;TrustServerCertificate=True

Die Verbindungszeichenfolge ist fertig: beim ersten Start fragt der Wizard nach nichts

weiterem. Mit -Dbms mysql oder -Dbms postgres aendert sich diese Zeile entsprechend und

traegt Benutzer und Passwort in sich, denn das Superuser-Passwort erzeugt der Installer;

dasselbe Passwort wird in wuic-secrets.json neben der Installation gespeichert, und das ist

der einzige Ort, an dem es geschrieben bleibt.

Der manuelle Weg bleibt gueltig, auf jedem System:

Starten Sie mit dem Paket WuicTest-src-*.zip (Link im Download-Bereich der Website).

Entpacken Sie es in einen Arbeitsordner, z.B. C:\dev\WuicTest (die Dateien kommen direkt

in den Root, NICHT in einen src/-Unterordner). Das Paket enthaelt:

  • WuicTest.csproj → Host-Projekt mit <PackageReference Include="WuicCore" Version="..." />
  • wwwroot/ → Angular-App, deren package.json wuic-framework-lib aus der npm-Registry referenziert
  • appsettings.json vorkonfiguriert im firstRun = "true"-Modus mit __SET_*__-Platzhaltern
  • appsettings-samples/ → 6 fertige Templates (mssql/mysql, firstRun/post-firstRun, Development)

> Kein Klonen des Framework-Repositories noetig: WuicCore kommt als NuGet-Paket von

> nuget.org und wuic-framework-lib als npm-Paket aus der npm-Registry. Der Framework-

> Quellcode wird nur benoetigt, wenn Sie ihn modifizieren wollen — typischerweise nicht Ihr Fall.

> npm 10.9.x und Pakete aelter als 1.7.1: diese Pakete enthalten keine package-lock.json, und

> ohne Lock bricht npm 10.9.x (die Version, die Node 22 LTS mitbringt) mit

> Cannot read properties of null (reading 'edgesOut') bei der Peer-Aufloesung ab.

> Laden Sie den neben der Release veroeffentlichten Lock herunter —

> https://wuic-framework.com/downloads/locks/<zip-name>.package-lock.json — legen Sie ihn in

> wwwroot/ und starten Sie npm install erneut. Der -Src-Einzeiler erledigt das selbst.

2. Datenbank

Es braucht eine erreichbare Instanz der Engine. Mit dem Einzeiler ist nichts zu tun: er

installiert und konfiguriert die Instanz, und die Verbindungszeichenfolge zum Einfuegen in den

Wizard ist das Letzte, was er ausgibt. Auf dem manuellen Weg muss die Instanz bereits

vorhanden sein.

Verbindungen in appsettings.json:

  • MetaDataSQLConnection — Metadata-DB (Menue, Tabellen, Spalten, Board, Benutzer)
  • DataSQLConnection — Anwendungsdaten-DB

Bei Erstinstallation (AppSettings.firstRun = "true" im Template) erstellt der Scaffolding-

Wizard beim ersten Start das Metadata-Schema und befuellt die Daten-DB.

Siehe Seite Initial Scaffolding fuer den gefuehrten Flow.

#### Was der First-Run-Wizard abfragt

Beim ersten Start zeigt die Anwendung nicht das Login, sondern die Seite **Initiale

Projektkonfiguration**. Sie wird genau einmal ausgefuellt: danach steht firstRun auf false

und die Seite erscheint nicht wieder.

  • Setup-Modus — zwei Eintraege: Bestehende Datenbank, die eine eigene Datenbank

registriert, und Tutorial WideWorldImporters, das die Beispieldatenbank installiert. Der

zweite erscheint nur, wenn das Paket das Tutorial mitbringt (tutorialAvailable): in Paketen

ohne Tutorial gibt es die Auswahl gar nicht, und der Modus ist "Bestehende Datenbank".

  • DBMS — die Engine. Beim Wechsel wird die Verbindungszeichenfolge darunter in der Form des

gewaehlten Providers neu geschrieben.

  • DataSQLConnection — die Zeichenfolge zur Daten-DB und das Feld, von dem alles Weitere

abhaengt: bis Verbindung testen und Datenbanken laden gedrueckt wurde, bleibt die

Datenbankliste deaktiviert. Der Test prueft die Zugangsdaten, listet die Datenbanken des

Servers und korrigiert auf SQL Server selbsttaetig die Zertifikatsparameter

(Encrypt=False;TrustServerCertificate=True) und sagt es Ihnen. Integrated Security gilt

nur auf SQL Server: die anderen Engines brauchen Benutzer und Passwort.

  • Daten-Datenbank und Name der Metadaten-DB — die erste wird aus der vom Test geladenen

Liste gewaehlt (im Tutorial-Modus ist es ein freies Textfeld, Standard WideWorldImporters);

die zweite ist der Name der anzulegenden Metadaten-DB (Standard metadataDB, im

Tutorial-Modus MetadataCRM). Existiert diese Datenbank bereits, fragt der Wizard vor dem

Neuanlegen nach.

  • Tabellen automatisch scaffolden (nur bei "Bestehende Datenbank") — befuellt

_metadati__tabelle / _metadati__colonne aus allen Tabellen der gewaehlten Datenbank. Das

verlaengert das Provisioning bei Datenbanken mit vielen Tabellen am staerksten.

  • Initialer Admin-Benutzer — Benutzername (Standard admin), Passwort (mindestens 4

Zeichen) und Sprache. Es gibt kein Standardpasswort: das hier eingegebene ist das einzige, mit

dem die erste Anmeldung gelingt. Die gewaehlte Sprache gilt fuer den Admin-Benutzer und fuer

diese Seite selbst. Stimmt der Benutzername mit einem bereits in der Metadaten-DB vorhandenen

Benutzer ueberein, werden das gewaehlte Passwort und die Sprache auf diesen Benutzer angewendet.

Der Assistent legt ausserdem den Benutzer wuic_assistant fuer den WUIC Assistant mit einem

generierten Passwort an: siehe RAG Chatbot.

  • RAG Chatbot — nur der Anthropic-Schluessel, optional. Nichts zu installieren: siehe

Schritt 5.

Nach Bestaetigen und Metadaten-DB erzeugen laeuft das Provisioning selbstaendig weiter, mit

Fortschrittsbalken und der Zahl verarbeiteter Batches. Dauer, gemessen auf den

Test-Installationen: 30 s - 2 min im Tutorial-Modus, 1-4 min auf einer bestehenden

Datenbank mit aktiviertem automatischem Scaffolding. Am Ende weicht die Seite dem Login-Formular.

3. Backend (.NET)

Aus dem Root des entpackten Ordners (z.B. C:\dev\WuicTest):

Snippet 3PowerShell
# Erstes Mal: NuGet-Pakete wiederherstellen (holt WuicCore + deps von nuget.org, ~30 s)
dotnet restore

# Dev-Start mit Hot Reload
$env:ASPNETCORE_ENVIRONMENT = 'Development'
dotnet watch run

Das Backend stellt die APIs auf http://localhost:5000 bereit.

4. Frontend (Angular)

In einer zweiten Shell, aus dem Unterordner wwwroot/:

Snippet 4PowerShell
cd wwwroot

# Erstes Mal: npm-Abhaengigkeiten wiederherstellen (holt wuic-framework-lib aus npm-Registry, ~2 Min.)
npm install

# Dev-Server starten
npm run serve:dev

Das Frontend ist auf http://localhost:4200 verfuegbar.

Die Zugangsdaten sind die des im First-Run-Wizard gewaehlten Admin-Benutzers: der

Benutzername ist admin, sofern nicht geaendert, und das Passwort ist das selbst gesetzte (ein

Standardpasswort gibt es nicht).

5. RAG Chatbot (optional)

Der RAG Chatbot (Amministrazione > RAG Chat) laeuft im .NET-Backend: die

Retrieval-Engine (rag-engine/WuicRagEngine.dll, ONNX Runtime in-process) wird

vom Backend geladen, wenn AppSettings.rag-use-dotnet-engine auf "true"

steht (Default in den Release-Paketen). **Kein Python, keine venv, kein

separater Server, der gestartet werden muss.**

Beim ersten Oeffnen des Chatbots (oder am Ende des First-Run) laedt das

Backend selbststaendig die ONNX-Modelle (bge-m3 + Reranker), den Tokenizer

und den Index (~4,5 GB) von rag-engine-models-url (Default

https://wuic-framework.com/rag-models) nach rag-engine/artifacts/. Eine

Internetverbindung wird nur einmal benoetigt; der Download laeuft im

Hintergrund (1-5 Min.) und eine In-App-Benachrichtigung erscheint zu Beginn

und am Ende. Solange zeigt die Komponente den Status RAG offline, der Rest

der Anwendung funktioniert normal.

Relevante AppSettings-Schluessel (alle mit fertigen Defaults):

  • rag-use-dotnet-engine = true — aktiviert die .NET-Engine (false = Python-Fallback, siehe unten)
  • rag-engine-device = auto — auto | cuda | cpu: mit NVIDIA-GPU (CUDA 12.x + cuDNN 9) ~1 s/Abfrage, auf CPU ~15-25 s/Abfrage
  • rag-engine-profile = release — release = Framework-Quellen nur als Signatur; internal = vollstaendiger Index
  • rag-engine-models-url — Download-Quelle beim ersten Start
  • rag-engine-cuda-path = (leer) — Ordner der CUDA/cuDNN-DLLs, falls nicht systemweit installiert

Fuer den Chat mit LLM rag-llm-provider + rag-llm-api-key setzen (Claude

via Anthropic oder ein lokales Modell via Ollama mit rag-llm-base-url). Ohne

Provider funktioniert nur der Retrieval-Modus (Snippet-Suche). Details zu den

Schluesseln auf der Seite AppSettings.

> Der historische Python-Stack (scripts/rag-setup.ps1 + rag_server.py auf

> 127.0.0.1:8765) ist nur als Fallback mit rag-use-dotnet-engine = "false"

> nutzbar und ist in den Release-Paketen nicht enthalten.

Dienste-Zusammenfassung

DienstPortErforderlichSchnellbefehl
SQL Server1433ja(Windows-Dienst)
Backend .NET5000jadotnet watch ... run
Frontend Angular4200janpm run serve:dev
RAG-Engine .NET (ONNX)in-processneinwird vom Backend beim ersten Chat geladen

Quick Start — erste Komponente

1. AsmxProxy-Endpoint konfigurieren.

2. Route-Metadata und Spalten definieren.

3. wuic-data-source + wuic-data-repeater montieren.

Snippet 5HTML
<wuic-data-source [hardcodedRoute]="'cities'"></wuic-data-source>
<wuic-data-repeater [hardcodedAction]="'list'"></wuic-data-repeater>

Die ersten Listen zeigen 20 Datensaetze: das ist der Trial-Modus

Eine frische Installation laeuft ohne Lizenz, also im Trial-Modus, und in diesem Modus

ist jede Abfrage auf 20 Datensaetze begrenzt. Das ist weder ein Fehler noch eine Grenze

der Datenbank: Eine Liste, die bei einer Tabelle mit Tausenden von Zeilen "20 von 20"

anzeigt, laeuft schlicht ohne Lizenz.

So laesst es sich in einer Sekunde bestaetigen:

Snippet 6Bash
curl -s http://localhost:5000/api/Meta/LicenseStatus

licenseValid: false bestaetigt den Trial-Modus, und licenseReason nennt den Grund

(invalid_signature, license_expired, machine_fingerprint_not_authorized, ...).

So kommt man heraus: Die Lizenz unter Verwaltung > AppSettings-Editor, Reiter Licensing,

einfuegen - sie gilt sofort, ein Neustart des Backends ist nicht noetig. Die Details,

einschliesslich der Grenzen, die der Trial ueber die Datensatzzahl hinaus setzt, stehen auf

der Seite Licensing.