Webanwendungen erstellen
Ein Projekt besteht selten nur aus dem Backend. Mit Lino ist es auch möglich, Webanwendungen zu erstellen, die die generierten APIs nutzen und Schnittstellen für Endbenutzer oder interne Teams bereitstellen.
Derzeit unterstützt das Framework nativ Blazor Web App (Render-Modus interactive auto).
Die Architektur ist jedoch so konzipiert, dass mehrere Frontends innerhalb derselben Lösung hinzugefügt werden können, um unterschiedliche Szenarien und Zielgruppen abzudecken.
Frontends mit Blazor Web App
Beim Generieren eines Frontends erstellt Lino automatisch ein Blazor Web App-Projekt, das folgendermaßen konfiguriert ist:
- Vereinfachtes Routing → Standard-Navigationsstruktur bereits konfiguriert.
- Native Integration mit Minimal APIs → direkte Nutzung der erstellten Endpunkte.
- Wiederverwendbare CRUD-Komponenten → standardisierte Listen-, Erstellungs- und Bearbeitungsseiten.
- Unterstützung für Authentifizierung und Autorisierung → falls der Dienst auf Sicherheit konfiguriert ist.
Dieses Frontend ist bereits bereit, die in den Anwendungsmodulen generierten APIs zu nutzen, mit starker Typisierung und automatischer Integration über typisierten HttpClient.
Mehrere Frontends
Ein Projekt kann beliebig viele Frontends enthalten. Jedes Frontend wird als neues Blazor-Projekt in die Lösung aufgenommen und teilt die gleichen vom Backend bereitgestellten APIs.
Beispielhafte Szenarien:
- Öffentliche Website → Seiten, die für Kunden oder Besucher zugänglich sind.
- Backoffice/Admin → internes Verwaltungspanel für Betreiber oder Verwaltungsteams.
- Partnerportal → eingeschränkter Zugriff für Partner, Wiederverkäufer oder Lieferanten.
Diese Trennung erleichtert die Spezialisierung der Benutzeroberfläche und bewahrt gleichzeitig die architektonische Konsistenz bei der Nutzung der APIs.
Webseiten generieren
Um die Entwicklung von Benutzeroberflächen zu beschleunigen, bietet das Lino CLI den Befehl:
lino page new
Dieser Befehl erstellt Blazor-Seiten, die bereits mit dem Backend verbunden sind, und folgt etablierten Konventionen:
- Formular-Komponentenerstellung → Erstellungs- und Bearbeitungsseiten.
- Automatische Auflistungen → Indexseiten (paginierte Listen).
- Direkte API-Integration → automatische Verbindung zu den entsprechenden Endpunkten.
Dies ermöglicht die Erstellung vollständiger CRUDs (Frontend → API → CQRS → Datenbank) ohne wiederholtes manuelles Codieren.
Beim Erstellen von Seiten für die Entität Order wird beispielsweise die folgende Struktur erstellt:
MyApp/
└── src/
└── WebApps/
└── MySite/
└── Services/
└── Pages/
└── Orders/
└── Registration/
├── Order.razor
├── Order.razor.cs
└── Components/
├── Form/
│ ├── OrderForm.razor
│ ├── OrderForm.razor.cs
│ ├── OrderFormExtensions.cs
│ └── OrderFormViewModel.cs
└── Grid/
├── OrderGrid.razor
├── OrderGrid.razor.cs
├── OrderGridExtensions.cs
└── OrderPagedQueryParams.cs
Außerdem werden integrierte Dienste erstellt, um die Endpunkte von OrdersEndpoints zu nutzen und eine End-to-End-Kommunikation zu gewährleisten:
Frontend → API → Commands/Queries → Datenbank
Auf diese Weise liefert Lino einen vollständigen Full-Stack-Entwicklungsfluss und reduziert die für die Erstellung neuer Funktionen benötigte Zeit erheblich.
