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.
