Häufig gestellte Fragen

Erfahren Sie, wie Lino .NET-Projekte mit Clean Architecture, DDD, CQRS, JWT, multi-tenancy, shadow entities, RabbitMQ, Hangfire, Blazor, Cache, Observability und Deploy beschleunigt.

Lino ist eine CLI zum Generieren moderner Anwendungen in .NET.

Es automatisiert Architektur, Module, APIs, Authentifizierung, Frontend und Infrastruktur mit Schwerpunkt auf Clean Architecture, DDD und CQRS.

Lino dient dazu, die sich wiederholende Arbeit beim Starten und Entwickeln von .NET-Anwendungen zu reduzieren.

Anstatt die Lösung, Schichten, Endpunkte, Authentifizierung und Erstbereitstellung manuell zusammenzustellen, geht das Team von einer vorgefertigten Basis aus und konzentriert sich auf Geschäftsregeln.

Lino ist ein Codegenerator für .NET, kein geschlossenes Framework.

Nach der Generierung gehört das Projekt dem Team und kann ohne zwingende Abhängigkeit vom Tool geändert werden.

Der Schwerpunkt von Lino liegt auf der deterministischen Generierung auf Basis von Vorlagen und Regeln.

Dies trägt dazu bei, Vorhersehbarkeit, Architekturkonsistenz und weniger Rauschen als bei KI-abhängigen Abläufen aufrechtzuerhalten.

Lino wurde von Eduardo Tolino erstellt, um die Produktivität zu steigern und die Architektur moderner Anwendungen in .NET zu standardisieren.

Ja.

Die generierten Projekte verwenden gängige Patterns aus Enterprise-Software, wie Clean Architecture, CQRS, DDD, JWT, Docker, Observability und Pipeline-Integration. Die generierte Basis muss weiterhin für jede Produktionsumgebung geprüft, getestet und konfiguriert werden.

Der Hauptunterschied von Lino besteht darin, die Erstellung von .NET-Anwendungen mit einer konsistenten Architekturbasis vom ersten Befehl an zu beschleunigen.

Es vereint Codegenerierung, modulare Organisation, APIs, Frontend, Authentifizierung, Ereignisse und Infrastruktur in einem einzigen Ablauf.

Um Lino verwenden zu können, müssen Sie .NET SDK, Git, Entity Framework CLI und Docker installiert haben.

dotnet tool install --global Tolitech.Lino

Nach der Installation können Sie die Version mit lino --version überprüfen.

lino project new --name MyProject

Dieser Befehl erstellt die anfängliche Projektstruktur mit Ebenen, Modulen und Basiskonfigurationen.

Lino kann Projektstruktur, Services, Module, Entities, Value Objects, Enumerationen, Commands, Queries, APIs, Seiten, Events, Event Handlers, Migrations, Secrets-Konfiguration, Background Jobs und Docker-Images erzeugen, abhängig von den ausgewählten Features.

Ja. Der generierte Code gehört vollständig Ihnen und ist für die weitere Arbeit nicht vom Tool abhängig.

Ja. Lino ist eine gute Option für MVP, wenn Sie Geschwindigkeit wollen, ohne eine saubere Basis für die spätere Weiterentwicklung aufzugeben.

Ja. Lino unterstützt SaaS-Projekte, die ein geordnetes Backend, Authentifizierung, APIs, Web-Frontend, standardisierte Infrastruktur, Tenant-Isolation, kontextbezogene Berechtigungen, Secrets-Verwaltung und Rate Limiting benötigen.

Ja. Lino wurde für Geschäftsanwendungen in .NET entwickelt, die eine Trennung von Schichten, klar definierte Module, APIs, Ereignisse und Integration mit der realen Infrastruktur erfordern.

Beide Szenarien sind gültig. Bei den meisten Produkten ist es oft einfacher und kostengünstiger, mit einem modularen Monolithen zu beginnen.

Lino ist sinnvoll, wenn Sie ein .NET-Projekt mit einer konsistenten Architektur, schneller Einrichtung und Raum zum Wachsen liefern müssen, ohne die Basis neu schreiben zu müssen.

Wenn das Projekt extrem klein oder verfügbar ist oder keine modulare Architektur erfordert, kann der Gewinn von Lino geringer ausfallen.

Ja. Der Vorteil besteht darin, dass Stunden oder Tage der sich wiederholenden Einrichtung für Backend, Frontend, Authentifizierung, Endpunkte, Ereignisse, Persistenz und anfängliche Infrastruktur entfallen.

.NET-Teams, die Webprodukte, SaaS, interne Systeme, B2B-Plattformen und Enterprise-Services entwickeln, profitieren in der Regel am meisten von Lino.

Lino verwendet Clean Architecture und unterteilt das System in Schichten wie Domäne, Anwendung, Infrastruktur und Präsentation.

Ja. Lino fördert die domänenbasierte Modellierung mit Entities, Value Objects, Enums, Domain Events und bounded contexts.

Ja. Commands und Queries sind getrennt, um die Organisation, Wartung und Skalierbarkeit der Anwendung zu erleichtern.

Ja. Der modulare Monolith ist eines der natürlichsten Szenarien für Lino, insbesondere wenn das Team niedrige Betriebskosten bei guter interner Trennung wünscht.

Ja. Lino kann zum Erstellen modularer Monolithe, unabhängiger Dienste und auf Mikrodiensten basierender Architekturen verwendet werden.

Ja. Lino wurde entwickelt, um die Trennung von Verantwortlichkeiten, die lose Kopplung, die Modularität und die nachhaltige Codeentwicklung zu stärken.

Entities stellen Objekte mit einer eigenen Identität innerhalb der Domäne dar, z. B. Benutzer, Bestellung oder Produkt.

Value Objects stellen unveränderliche Domänenkonzepte dar, die keine eigene Identität haben, wie z. B. Geld, Adresse oder E-Mail.

Ja. Lino unterstützt Domain Events, um relevante Ereignisse innerhalb der Domäne darzustellen und eine geringe Kopplung zwischen Teilen des Systems aufrechtzuerhalten.

Die Domäne kann in Module oder bounded contexts unterteilt werden, um unterschiedliche Geschäftsbereiche wie Katalog, Verkauf, Inventar, Identität oder Abrechnung abzubilden.

Ja. Sie können mit ein paar Modulen und einfacheren Regeln beginnen und die Modellierung weiterentwickeln, wenn das Produkt ausgereift ist.

Ja. Lino kann automatisch Endpunkte basierend auf Anwendungsbefehlen und -abfragen generieren.

Ja. Die generierten APIs verwenden Minimal APIs von .NET und sind direkt in die Anwendungsschicht integriert.

Das generierte Projekt ist mit der API-Dokumentation über OpenAPI und Swagger kompatibel, was Vertragsprüfung, Tests und Integration zwischen Teams erleichtert.

Die Versionierung kann bekannten REST Standards folgen und mit der Organisation nach Endpunkten, Verträgen und Builds kombiniert werden.

Ja. Mit der Lino-Architektur können Sie externe APIs, Webhooks, SDKs und Dienste von Drittanbietern über die Infrastrukturschicht integrieren.

Das generierte Projekt stellt API-Verträge über OpenAPI/Swagger bereit, und praktische Endpoint-Tests können je nach Template und gewähltem Workflow durch HTTP-Dateien oder ähnliche Client-Tools unterstützt werden.

Ja. Lino unterstützt die Generierung von Authentifizierung und Autorisierung für Frontend- und Backend-Projekte.

Ja. Lino unterstützt die Authentifizierung basierend auf JWT für APIs und Webanwendungen, mit Schwerpunkt auf Sicherheit und nativer Integration mit ASP.NET Core.

Ja. Das Sicherheitsmodell von Lino umfasst eine detailliertere Zugriffskontrolle mit Rollen, Ansprüchen und Authorization Policies von ASP.NET Core.

Ja. Das Frontend kann in den Authentifizierungsfluss für Anmeldung, Token-Erneuerung und geschützten Zugriff auf Seiten und APIs integriert werden.

Lino stellt Secret-Befehle wie lino secret list, lino secret set, lino secret remove und lino secret clear bereit, um lokale sensible Werte aus versionierten Dateien herauszuhalten. Generierte Secrets können auch als Aspire Parameters für Publish- und Deploy-Flows modelliert werden.

Ja. Generierte APIs können mit Rate-Limiting-Policies für öffentlichen Traffic, authentifizierte Benutzer, API-key-Routen und temporäre Token-Flows starten, wodurch die Exposition vor dem produktiven Feintuning reduziert wird.

Domain Events stellen interne Ereignisse innerhalb der Domäne dar. Integration Events dienen der entkoppelten Kommunikation von Modulen, Diensten oder externen Systemen.

Ja. Lino unterstützt Ereignisse für die Kommunikation zwischen Teilen der Anwendung und für die Integration zwischen Diensten, wenn die Architektur dieses Modell erfordert.

Ja. Wenn asynchrone Messaging-Funktionalität aktiviert ist, konfiguriert Lino RabbitMQ als Broker, damit Services und Module Nachrichten entkoppelt und resilient austauschen können.

Ja. Lino verwendet MassTransit in Messaging-Szenarien, um Publishing, Consumption und Registrierung verteilter Events mit dem nativen Dependency-Injection-Modell zu vereinfachen.

Ja. Lino unterstützt Background Jobs mit Hangfire für geplante Aufgaben, asynchrone Verarbeitung, wiederkehrende Operationen und operative Sichtbarkeit über das Hangfire-Dashboard.

Verwenden Sie Domain Events für Änderungen innerhalb der Domain, Integration Events für Kommunikation zwischen Modulen oder Services, Queues für asynchrone Verarbeitung und Background Jobs für geplante, wiederkehrende oder lange laufende Arbeit. Für zuverlässiges Publishing verwenden Lino-Szenarien das Outbox Pattern.

Derzeit unterstützt Lino Datenbanken, die mit Entity Framework Core kompatibel sind, wie z. B. SQL Server und PostgreSQL.

Ja. Die Datenpersistenz basiert auf Entity Framework Core für Modellierung, Migrationen und Datenbankentwicklung während des gesamten Projektlebenszyklus.

Migrations werden mit Entity Framework Core verwaltet und können über lino database migrations add erstellt werden, sodass Modelländerungen vor dem Deploy explizit, versionierbar und prüfbar bleiben.

Nicht unbedingt. Bei modularen Monolithen ist eine gemeinsame Bank mit klarer Organisation pro Modul am häufigsten.

Bei Microservices kann jeder Dienst eine eigene Bank haben, wenn es architektonisch sinnvoll ist.

Ja. Lino unterstützt Datenbankweiterentwicklung mit Migrations und scriptorientierten Deploy-Praktiken und kombiniert diesen Flow mit Build- und Versionierungsfunktionen, wenn Services für ein Release vorbereitet werden.

Ja. Lino kann im Backend integrierte Webanwendungen generieren, um die Bereitstellung kompletter Systeme zu beschleunigen.

Ja. Lino kann integrierte Blazor Web Apps generieren, einschließlich Frontend-Ressourcen, die mit Backend-APIs verbunden sind, sowie Lokalisierung und Authentifizierung, wenn diese Features ausgewählt sind.

Ja. Die Lino-Architektur verhindert nicht die Verwendung von React, Angular, Vue oder einem anderen Frontend, das die APIs des Projekts nutzt.

Ja. Das Frontend kann mit Anmeldung, Token-Erneuerung und Nutzung von APIs arbeiten, die durch JWT und Autorisierungsrichtlinien geschützt sind.

Ja. Lino hilft dabei, Seiten, Komponenten und Funktionen standardisierter zu strukturieren und so sich wiederholende Entscheidungen im Frontend zu reduzieren.

Ja. Von Lino generierte Projekte können strukturiertes Logging, Integration mit dem Aspire-Dashboard, Traces, Metriken und operative Diagnosen enthalten, um Debugging und Produktionsanalyse zu unterstützen.

Ja. Lino unterstützt Cache-Szenarien mit Microsoft HybridCache und verteiltem Cache mit Redis, wenn diese Option aktiviert ist, wodurch die Konsistenz über mehrere Instanzen verbessert wird.

Ja. Durch die Standardisierung von Struktur, Protokollen, Authentifizierung, APIs und Infrastruktur erleichtert Lino die Problemuntersuchung und die Betriebswartung.

Die generierte Lösung kann Health Checks, Metriken, Traces, Logs und Ressourcensichtbarkeit über Aspire integrieren und den Praktiken des .NET-Ökosystems folgen, die von der gewählten Architektur verwendet werden.

Ja. Lino kann Docker-Images von Services und Web Applications über den Build-Flow generieren und hilft so, Artefakte für Registries und containerisierte Umgebungen zu paketieren.

Ja. Die generierten Projekte können in CI/CD-Pipelines für Build, Tests, Paketierung, Migrationen und automatisierte Bereitstellung integriert werden.

Build und Versionierung können SemVer-orientierten Praktiken folgen, mit Lino-Unterstützung zum Paketieren ausgewählter Services und Web Applications als versionierte Docker-Images für ein Release.

Ja. Das Projekt kann je nach Betriebsstrategie des Teams in der Cloud, in Containerumgebungen oder in der eigenen Infrastruktur veröffentlicht werden.

Ja. Lino beschleunigt die technische Einrichtung für die Bereitstellung in der Produktion mit Docker, standardisiertem Build, Persistenz, Authentifizierung und Integration mit Pipelines.

Lino enthält Multi-tenant-Support über lino feature tenant add oder lino features tenant add. Die generierte Struktur kann Tenants nach Domain oder Slug auflösen, Berechtigungen nach Kontext anwenden und tenantbezogene Daten schützen.

Shadow entities sind lokale Kopien der minimalen Daten, die ein Modul aus einem anderen Kontext benötigt. Der Befehl lino shadow new erstellt die Struktur, und der zugehörige Integration Event Handler muss separat mit lino event-handler new generiert werden.

Ja. Die Roadmap zeigt kontinuierliche Weiterentwicklung und markiert auch viele bereits abgeschlossene Fähigkeiten, wie JWT-Authentifizierung, Blazor Web Apps, Hangfire, RabbitMQ/MassTransit, Migrations, Docker Build, HybridCache, mehrsprachige Ressourcen, Smart Merge, Secrets und Rate Limiting.

Die abgeschlossene Roadmap umfasst mehrere Kernfähigkeiten: .NET/Aspire-Projektgenerierung, modulare Services, Minimal APIs, Unterstützung für SQL Server und PostgreSQL, Background Jobs, Messaging, JWT-Sicherheit, Blazor Web Apps, Docker Build/Versionierung, User Secrets, Rate Limiting, Tenant-Support und Shadow Entities.

Codegenerierung, Integrationen, Developer Experience, Deploy-Workflows, Observability, Security Hardening und Template-Abdeckung entwickeln sich weiter, während das Produkt wächst.

Änderungen können Sie auf der Roadmap-Seite, in der Dokumentation und über die offiziellen Produktkanäle verfolgen. Bevorzugen Sie den Roadmap-Status, wenn Sie abgeschlossene Features von geplanten Verbesserungen unterscheiden müssen.

Ein unbehandelter Fehler ist aufgetreten. Aktualisieren 🗙