Entwicklungs-Roadmap

Verfolge unseren Fortschritt und kommende Funktionen. Wir entwickeln uns ständig weiter, um dir die beste Entwicklungserfahrung zu bieten.

Kompatibilität und Generierung mit .NET 10

Geplant

Dieses Update wird vollständige Unterstützung für die Projektgenerierung auf Basis von .NET 10 bieten, sobald die neue Version offiziell von Microsoft veröffentlicht wird.

Derzeit generiert Lino Projekte auf Basis von .NET 9 und nutzt dabei alle verfügbaren Plattformfunktionen, einschließlich Leistungsverbesserungen, fortgeschrittene Features von C# 13 und moderne Integration mit ASP.NET Core.

Das Ziel dieser zukünftigen Version ist es, sofortige Unterstützung für .NET 10 mit aktualisierten Templates, passenden Target Framework-Konfigurationen und einem für neue Sprach- und Laufzeitfunktionen vorbereiteten Scaffolding bereitzustellen.

Verbesserung
November 2025 v1.0.0-rc

Automatisierte Testgenerierung

Geplant

Automatisierte Testgenerierung mit Unterstützung für zwei Hauptstufen:

Unit-Tests:
Erstellung von Tests für einzelne Klassen und Methoden mit Fokus auf Geschäftslogik.

Integrationstests:
Erstellung von Tests zur Überprüfung der Integration zwischen Komponenten, indem Interaktionen mit Datenbanken und externen Diensten simuliert werden.

Funktion
Oktober 2025 v1.0.0-preview

Generierung von .http-Dateien

Geplant

Implementierung der automatischen Generierung von .http-Dateien zur Vereinfachung von Tests und Dokumentation von REST-Endpunkten in Entwicklungsumgebungen.

Funktion
September 2025 v1.0.0-preview

Zugriffskontrolle über Richtlinien

Abgeschlossen

Berechtigungsbasiertes Zugriffskontrollsystem (PBAC) unter Verwendung von Policies in ASP.NET Core.
Die Berechtigungen werden automatisch durch Source Generators erstellt und als Policies in .NET registriert.
Jeder Dienst, der diese Berechtigungen nutzt, löst Ereignisse aus, die die Berechtigungsdatenbank des Systems automatisch aktualisieren.

Hauptmerkmale:
_ Automatische Generierung von Berechtigungen über Source Generators
_ Automatische Registrierung von Policies in ASP.NET Core
_ Dynamische Aktualisierung der Berechtigungsdatenbank über Ereignisse/Nachrichten
_ Unterstützung für hybrides RBAC, das die Einfachheit von Rollen mit der Granularität von Berechtigungen kombiniert

Vorteile:
_ Maximale Leistung und Skalierbarkeit
_ Automatisierte Verwaltung und vereinfachte Wartung
_ Flexibilität für unterschiedliche Sicherheitszenarien

Funktion
August 2025 v1.0.0-beta

Unterstützung für Datei-Uploads

Abgeschlossen

Implementierung der nativen Unterstützung für den Typ IFormFile bei Endpunkten, die mit Minimal APIs erstellt wurden. Diese Funktion ermöglicht die automatische Generierung von Routen mit Datei-Uploads, darunter:

_ Definition von Endpunkten mit Unterstützung für Uploads über multipart/form-data;
_ Automatische Validierung von MIME-Typen und maximal zulässiger Dateigröße;
_ Unterstützung für lokale Speicherung und Integration mit Cloud-Diensten wie Azure Blob Storage und AWS S3;

Ideal für Anwendungen, die einen sicheren und performanten Datei-Upload benötigen – z. B. für Bilder, Dokumente und Medien.

Funktion
August 2025 v1.0.0-beta

Intelligentes Zusammenführen von Dateien

Abgeschlossen

Ab dieser Version führt die Lino CLI ein intelligentes automatisches Zusammenführen der generierten Dateien durch. Früher ersetzten die von Lino erstellten Dateien direkt die vorhandenen, wodurch manuelle Änderungen des Entwicklers überschrieben werden konnten.

Jetzt kann Lino dank der neuen 3-Wege-Merge-Strategie (original generierte Datei, vom Benutzer bearbeitete Version und neu generierte Datei) Anpassungen erhalten und gleichzeitig strukturelle Updates der Vorlage anwenden.

Vorteile dieses Ansatzes:
_ Verhindert versehentliches Überschreiben von manuellem Code.
_ Erleichtert die kontinuierliche Weiterentwicklung von templatebasierten Projekten.
_ Reduziert manuelle Konflikte bei Updates.
_ Verbessert die Integration zwischen lokalen Anpassungen und der Weiterentwicklung des Frameworks.

Verbesserung
Juli 2025 v1.0.0-beta

Registrierung von Minimal APIs mit Source Generators

Abgeschlossen

Mit Lino CLI generierte Projekte können nun Minimal APIs automatisch registrieren, indem sie die Tolitech.Presentation.API.Generators-Bibliothek verwenden, die auf Source Generators basiert.

Dieser Ansatz ersetzt die Notwendigkeit:
_ Jede Route manuell über MapGet, MapPost usw. zu registrieren
_ Reflection zu verwenden, um Routen zu scannen und zuzuordnen — was performanceintensiv ist.

Durch den Einsatz von Source Generators erfolgt das Routing zur Compile-Zeit, was optimierten, sauberen und nachvollziehbaren Code erzeugt.

Hauptvorteile:
_ Beseitigt die Wiederholung und Umständlichkeit manueller Routendeklaration
_ Verzicht auf Reflection reduziert CPU- und Speicherverbrauch
_ Verbesserte Codeorganisation und klare Trennung der Verantwortlichkeiten
_ Sichere, automatische Routenerstellung mit Compile-Time-Validierung
_ Erleichtert Wartung und Skalierbarkeit des Projekts

Leistung
Juni 2025 v1.0.0-beta

Abhängigkeitsinjektion mit Source Generators

Abgeschlossen

Wir verwenden jetzt die Bibliothek Tolitech.DependencyInjection.Generators, die den auf Reflection basierenden Ansatz von Tolitech.DependencyInjection.Extensions ersetzt.

Diese neue Bibliothek nutzt die Source Generators von .NET, um Abhängigkeitsregistrierungen automatisch zur Kompilierzeit zu generieren.

Das bietet mehrere Vorteile:
_ Entfernung von Reflection zur Laufzeit, wodurch die Anwendungsleistung verbessert wird.
_ Vorhersehbare und nachvollziehbare Codegenerierung.
_ Sicherere Kompilierung mit frühzeitiger Fehlererkennung.
_ Native Integration in die .NET-Build-Pipeline.

Leistung
Juni 2025 v1.0.0-beta

Einführung des Central Package Manager

Abgeschlossen

Wir verwenden jetzt den Central Package Manager (CPM), einen modernen Ansatz zur Verwaltung von NuGet-Paketen in Lösungen mit mehreren Projekten. Damit werden alle Paketversionen zentral in der Datei Directory.Packages.props definiert, was Inkonsistenzen beseitigt und sichere, koordinierte Updates erleichtert. Dies reduziert Fehler durch Versionskonflikte zwischen Projekten, verbessert die Nachverfolgbarkeit und vereinfacht großflächige Aktualisierungen von Abhängigkeiten.

Verbesserung
Mai 2025 v1.0.0-beta

Unterstützung für das neue .SLNX-Format

Abgeschlossen

Lino erstellt jetzt Lösungen im neuen Format .slnx, einer modernen Weiterentwicklung des traditionellen .sln.
Das auf XML basierende .slnx wurde übernommen, da es für Menschen und Tools besser lesbar ist und die Komplexität bei der Integration mit externen Systemen und CI/CD-Pipelines reduziert.

Darüber hinaus verbessert seine sauberere Struktur die Versionskontrolle erheblich – Änderungen sind vorhersehbarer und leichter zu überprüfen.
Diese Änderung entspricht der zukünftigen Ausrichtung des .NET-Ökosystems und fördert eine bessere Interoperabilität, Erweiterbarkeit und Automatisierung in der Projektentwicklung.

Verbesserung
Mai 2025 v1.0.0-beta

Unterstützung für .NET / Aspire-Generierung in der Community-Version

Abgeschlossen

Das Community-Abonnement bietet nun Unterstützung für die Erstellung von Projekten basierend auf .NET 9 und Aspire 9.2.1, sodass Benutzer die Funktionen der Plattform kostenlos und technisch erkunden können.

Diese Version umfasst:
_ Erstellung von Services und Entitäten mit automatisiertem Scaffolding;
_ Auswahl der Datenbank und vollständige Initialkonfiguration;
_ Funktionale Generierung bis zur Phase von EF Core Migrations.

Obwohl fortgeschrittene Funktionen wie Mikrodienste und modulare Monolithen auf kostenpflichtige Pläne beschränkt sind, bietet diese Version eine solide Grundlage zur Bewertung der generierten Architektur, der Codequalität und der Integration mit dem modernen .NET-Ökosystem.

Verbesserung
April 2025 v1.0.0-beta

In die CLI integrierter Datenbank-Migrationsbefehl

Abgeschlossen

Die CLI bietet jetzt den Befehl lino database migrations add an, um die Erstellung von Migrationen für beliebige Dienste oder Module des Projekts zu erleichtern.

Diese Funktion automatisiert die Generierung von Migrationsskripten, die an die Build-Version gebunden sind, und ermöglicht eine konsistente Dokumentation der Änderungen.

Hauptvorteile:
_ Schnelle Erstellung von Migrationen pro Dienst oder Modul mit einfachen und direkten Befehlen.
_ Automatische Generierung von .sql-Skripten, die mit der Projektversionierung kompatibel sind.
_ Erleichtert die Versionskontrolle der Datenbank auch in verteilten Architekturen.
_ Standardisiert und dokumentiert strukturelle Datenbankänderungen sicher und prüfbar.
_ Natürliche Integration in den Build- und Deployment-Prozess der Anwendung.

Funktion
März 2025 v1.0.0-beta

Versions- und Build-Management mit Docker

Abgeschlossen

Die neue Versionierungsfunktion ermöglicht es, vorhandene Versionen aufzulisten und einen Versions-Bump für mit dem Tool generierte Dienste und Webanwendungen durchzuführen, gemäß der SemVer-Konvention (Semantische Versionierung). Dies sorgt für mehr Nachvollziehbarkeit, Standardisierung und Kontrolle im Release-Zyklus.

Mit dem Befehl version kann die Versionsnummer eines jeden Dienstes oder einer Anwendung einfach festgelegt und aktualisiert werden, was Audits erleichtert und Best Practices in den Entwicklungsprozess integriert.

Der Befehl build wurde ebenfalls verbessert, um Docker-Images mit dem definierten Versionstag zu erstellen, was das Packaging vereinfacht und die Anwendungen für die Veröffentlichung vorbereitet.

Diese Verbesserungen erhöhen die Konsistenz und Vorhersehbarkeit im Release-Management und bieten mehr Transparenz für Entwicklungs- und Betriebsteams.

Verbesserung
Februar 2025 v1.0.0-beta

Auswahl von Eigenschaften in Commands und Queries

Abgeschlossen

Anpassen, welche Eigenschaften bei der Generierung von Artefakten des Typs Command (Post, Put, Patch) und Query (Get) berücksichtigt werden.

Diese Funktion bietet:
_ Interaktive CLI-Oberfläche zur Auswahl von Eigenschaften während des Entity-Scaffoldings;
_ Automatische Generierung von Objekten mit nur den ausgewählten Feldern für Input/Output;
_ Vollständige Unterstützung zur Anpassung von Payloads in REST-APIs, wodurch Flexibilität und Kontrolle über übertragene Daten erhöht werden;
_ Integration mit Validierung und generierten Datenverträgen unter Einhaltung von Pflicht- und Konsistenzregeln.

Diese Verbesserung zielt darauf ab, eine feinere Modellierung von Artefakten zu ermöglichen, damit Entwickler genau steuern können, was über die von der CLI generierte Architektur exponiert, gespeichert oder abgefragt wird.

Verbesserung
Januar 2025 v1.0.0-beta

Automatischer Backup-Mechanismus im CLI

Abgeschlossen

In Lino CLI wurde ein automatischer Mechanismus zur Versionierung und Sicherung von Dateien implementiert, um Sicherheit und Nachverfolgbarkeit bei der Erstellung und Überschreibung von Dateien zu gewährleisten.

Alle generierten Dateien werden im Ordner /.lino/files/.../received/ gespeichert, was eine zeitliche Organisation und einfache Auffindbarkeit sicherstellt.

Ersetzte Dateien bleiben im Ordner /.lino/files/.../replaced/ gespeichert, wodurch eine Wiederherstellung früherer Versionen bei Bedarf möglich ist. Diese Backup-Struktur bietet mehr Kontrolle und Sicherheit und ermöglicht eine vollständige Überprüfung der generierten Dateien, insbesondere in kollaborativen und automatisierten Entwicklungsumgebungen.

Verbesserung
Januar 2025 v1.0.0-beta

Integrierte Authentifizierung und Autorisierung mit JWT

Abgeschlossen

Vollständige Implementierung von Authentifizierung und Autorisierung für Frontend- und Backend-Projekte basierend auf JWT (JSON Web Tokens) und granularem Berechtigungsmanagement durch benutzerdefinierte Authorization Policies in ASP.NET Core.

Highlights:
_ Sicheres Login mit Ausgabe und Validierung von JWTs.
_ Autorisierung basierend auf benutzerdefinierten Richtlinien (Claims und Rollen).
_ Automatische Integration zwischen generierten APIs und Frontends (Blazor).
_ Schutz von Routen und Komponenten basierend auf Benutzerberechtigungen.

Vorteile:
_ Robuste Sicherheit für moderne Anwendungen.
_ Standardisierung des Zugriffsmodells nach Profil und Domäne.
_ Sicheres und integriertes Nutzungserlebnis zwischen den Anwendungsschichten.
_ Einfach erweiterbar und an Unternehmensszenarien anpassbar.

Sicherheit
Dezember 2024 v1.0.0-alpha

Unterstützung für die Generierung integrierter Frontends (Blazor Web Apps)

Abgeschlossen

Es ist jetzt möglich, ein oder mehrere Frontends zu generierten Projekten hinzuzufügen, mit anfänglicher Unterstützung für Blazor Web Apps — einschließlich der Server- und WebAssembly-Modelle.

Diese Frontends werden automatisch mit den von dem Tool generierten APIs integriert, wodurch die Erstellung kompletter CRUD-Seiten mit direkten Aufrufen der Backend-Endpunkte und Persistenz in der Datenbank ermöglicht wird.

Highlights:
_ UI-Generierung basierend auf Domänenentitäten.
_ Native Kommunikation mit den generierten APIs.
_ End-to-End-Funktionalität: Frontend, Backend und Datenbank arbeiten zusammen.
_ Möglichkeit mehrerer Frontends im selben Projekt (z.B. Admin, Portal, Öffentlich).

Vorteile:
_ Schnelle Entwicklung von Benutzeroberflächen.
_ Weniger Nacharbeit und manuelle Integration.
_ Einheitlicher Standard für Navigation, Stil und Datenzugriff.
_ Höhere Produktivität durch automatische Generierung von CRUD-Seiten.

Funktion
November 2024 v1.0.0-alpha

Unterstützung des Transactional Outbox-Standards

Abgeschlossen

Wir haben das Muster Transactional Outbox implementiert, um die Zuverlässigkeit beim Versenden von Integrationsereignissen zu gewährleisten. Anstatt das Ereignis direkt während der Anwendungstransaktion zu veröffentlichen, wird es nun in einer speziellen Tabelle innerhalb derselben Datenbanktransaktion registriert.

Anschließend liest ein background job diese Outbox und führt die tatsächliche Auslösung des Ereignisses durch.

Vorteile dieses Ansatzes:
_ Gewährleistet Konsistenz zwischen Datenbankänderungen und Ereignisveröffentlichung.
_ Verhindert Nachrichtenverlust bei Zwischenfehlern.
_ Ermöglicht Kontrolle von Wiederholungen und Auditierung veröffentlichter Ereignisse.
_ Entspricht bewährten Praktiken ereignisgesteuerter Architektur und Microservices.

Funktion
Oktober 2024 v1.0.0-alpha

Unterstützung von Hintergrundaufgaben mit Hangfire

Abgeschlossen

Es wurde die Möglichkeit hinzugefügt, Background Jobs in generierten Services — ob einfach oder modular — mithilfe der Bibliothek Hangfire zu integrieren.

Damit verfügen Projekte nun standardmäßig über Terminierung und Ausführung von Hintergrundaufgaben, einschließlich:
_ Wiederkehrende (cron), geplante oder sofortige Ausführung.
_ Überwachung über ein integriertes Dashboard.
_ Sichere Persistenz und Wiederverarbeitung von Jobs.

Dieser Mechanismus kann auch zusammen mit dem Transactional Outbox Pattern verwendet werden, um eine zuverlässige Auslösung von Integrationsereignissen selbst bei Teilfehlern oder in verteilten Szenarien zu gewährleisten.

Hauptvorteile:
_ Automatisierung wiederkehrender und langwieriger Aufgaben ohne Blockierung des Hauptflusses.
_ Hohe Resilienz und Beständigkeit von Hintergrundaufgaben.
_ Sofortige Integration mit dem Outbox-Pattern für zuverlässige Ereignisse.
_ Einfache Konfiguration und Anpassung von Jobs pro Service.
_ Integriertes Dashboard zur Überwachung und Steuerung von Ausführungen.

Funktion
September 2024 v1.0.0-alpha

Messaging mit MassTransit und RabbitMQ

Abgeschlossen

Die Möglichkeit wurde hinzugefügt, Unterstützung für asynchrone Nachrichtenübermittlung mit RabbitMQ zu konfigurieren, unter Nutzung der Abstraktion und fortgeschrittenen Funktionen von MassTransit.

Dadurch können generierte Services entkoppelt und resilient kommunizieren, indem sie verteilte Events und Commands verwenden.

Highlights der Integration:
_ Automatisierte Transportkonfiguration mit RabbitMQ.
_ Veröffentlichung und Empfang von Events via MassTransit mit nativer Dependency Injection.
_ Kompatibel mit dem Transactional Outbox Pattern für höhere Zuverlässigkeit.

Vorteile:
_ Hohe Skalierbarkeit durch eventbasierte Kommunikation.
_ Entkopplung von Produzenten und Konsumenten.
_ Höhere Fehlertoleranz und automatische Wiederverarbeitung.
_ Einfache Wartung und Erweiterung asynchroner Geschäftsabläufe.

Funktion
September 2024 v1.0.0-alpha

Erweiterte Transaktionskontrolle mit Unit of Work

Abgeschlossen

Ein robustes Unit of Work-System wurde implementiert mit voller Transaktionskontrolle, Verwaltung von Domain-Events, Veröffentlichung von Integrations-Events (Outbox Pattern), automatischem Rollback und Unterstützung des Result-Patterns für Commit/Rollback basierend auf Erfolg oder Misserfolg der Operation.

Highlights:
_ Explizite Erstellung von Transaktionen mit Isolationslevel-Kontrolle.
_ Veröffentlichung von Domain Events, synchron zur Datenpersistenz.
_ Entkoppelte Veröffentlichung von Integration Events via Outbox Pattern.
_ Automatisches Rollback und Ausnahmebehandlung mit Unterstützung von Constraint-Validierungen.
_ Commit bedingt durch das Result der Operation.
_ Strukturierte Protokollierung von Events, Transaktionen und Fehlern.

Vorteile:
_ Transaktionale Konsistenz zwischen Datenbankoperationen und generierten Events.
_ Flexibilität bei der Nutzung von Standard-SaveChanges oder vollständiger Steuerung des Ablaufs.
_ Einfachheit bei Unit-Tests und Fehlernachverfolgung.
_ Klare Trennung zwischen Domäne und Infrastruktur mit MediatR-Unterstützung.

Verbesserung
August 2024 v1.0.0-alpha

Dienstspezifische Datenbank mit Unterstützung für SQL Server und PostgreSQL

Abgeschlossen

Es ist jetzt möglich, für jeden generierten Dienst individuell die zu verwendende Datenbank festzulegen — mit nativer Unterstützung für SQL Server und PostgreSQL.

Dieser Ansatz ermöglicht es, dass jeder Dienst seine eigene exklusive Datenbank hat, was vollständige Isolation gewährleistet und die Umsetzung von echten Microservice-Architekturen erleichtert.

Bei modularen Diensten verwendet die Anwendung weiterhin eine einzelne Datenbank pro Dienst, wobei jeder Modul durch ein Schema getrennt wird, was Organisation und Kohärenz bewahrt.

Hauptvorteile:
_ Datenisolation zwischen Diensten erhöht Sicherheit und Verantwortlichkeitsklarheit.
_ Stufenweise Einführung von Microservices mit unabhängigen Datenbanken möglich.
_ Trennung per Schema bei modularen Diensten erleichtert Wartung und Domänenverständnis.
_ Volle Flexibilität bei der Wahl des passenden DBMS pro Dienst.
_ Einfache Tests, isolierte Deployments und horizontale Skalierbarkeit.

Funktion
Juli 2024 v1.0.0-alpha

Unterstützung für die Erstellung einfacher und modularer Dienste

Abgeschlossen

Das Lino CLI ermöglicht dem Entwickler jetzt, während der Projekterstellung zwischen der Erstellung von einfachen Diensten (traditionell) oder modularen Diensten zu wählen, mit voller Freiheit, beide nach Bedarf innerhalb der Lösung zu kombinieren.

Dieser Ansatz bietet direkte Unterstützung für unterschiedliche Architekturansätze:
Einfache Dienste: ideal zur Zusammensetzung von Microservice-basierten Lösungen oder zum Aufbau traditioneller monolithischer Anwendungen auf direkte und isolierte Weise.
Modulare Dienste: strukturieren die Anwendungsdomäne in Bounded Contexts und erleichtern die Einführung eines Modular-Monolithen mit klarer Verantwortlichkeitsverteilung und besserer Komponenten-Zusammenhalt.

Sie können beliebig viele Dienste hinzufügen — einfach, modular oder beides — je nach Anwendungsszenario.

Vorteile dieses Ansatzes:
_ Größere Flexibilität bei der Architekturmodellierung.
_ Einfache schrittweise Skalierung von einem Monolithen zu Microservices.
_ Klare Trennung der Verantwortlichkeiten nach Domäne oder Kontext.
_ Bessere Codeorganisation und Ausrichtung an modernen Architekturpraktiken.
_ Weniger Kopplung und höhere Wartbarkeit.

Entwickeln Sie mit Microservices oder entscheiden Sie sich für einen modularen Monolithen — Sie wählen den idealen Weg für Ihre Anwendung.

Funktion
Juni 2024 v1.0.0-alpha

Hybrides Caching mit Microsoft.Extensions.Caching.Hybrid

Abgeschlossen

Native Unterstützung für hybrides Caching wurde mit der Bibliothek Microsoft.Extensions.Caching.Hybrid hinzugefügt.

Die Implementierung kombiniert In-Memory-Caching (MemoryCache) mit verteiltem Caching (DistributedCache) und bietet so das Beste aus beiden Welten.

Dieser Ansatz ermöglicht extrem schnelle Antworten auf häufige Anfragen und sorgt gleichzeitig für Synchronisierung und Skalierbarkeit in verteilten Umgebungen.

Vorteile der hybriden Strategie:
_ Hohe Leistung durch sofortigen Lesezugriff auf lokalen Speicher.
_ Persistenz und Datenaustausch zwischen Instanzen über verteilten Cache.
_ Reduzierung von Datenbank- und API-Aufrufen.
_ Bessere horizontale Skalierbarkeit bei Anwendungen mit mehreren Replikas.
_ Intelligente Synchronisierung zwischen beiden Cache-Ebenen.

Ideal für Szenarien, die Leistung und Konsistenz erfordern, ohne auf architektonische Flexibilität zu verzichten.

Funktion
Mai 2024 v1.0.0-alpha

Mehrsprachige Unterstützung in generierten Projekten

Abgeschlossen

Lino CLI generiert jetzt Projekte mit integrierter Mehrsprachigkeitsunterstützung, einschließlich automatischer Übersetzung für die folgenden Kulturen:
en, pt-BR, es, fr, it, de, ja, ko, zh-Hans und ru.

Die Ressourcen-Dateien (resx) werden automatisch basierend auf der Hauptsprache generiert und die Inhalte automatisch übersetzt, bereit zur sofortigen Verwendung in globalen Anwendungen.

Vorteile der Mehrsprachigkeitsunterstützung:
_ Erleichtert die Erstellung von Anwendungen für verschiedene Regionen und Kulturen.
_ Verkürzt die für die Internationalisierung benötigte Zeit.
_ Native Integration mit dem .NET-Lokalisierungssystem.
_ Verbessert die Endbenutzererfahrung in mehrsprachigen Anwendungen.
_ Ermöglicht schnelles Skalieren von Lösungen für den globalen Markt.

Funktion
April 2024 v1.0.0-alpha

Hochleistungs-Logging

Abgeschlossen

Die vom Lino CLI generierten Codes verwenden jetzt LoggerMessage, um Logs effizienter und leistungsfähiger zu erfassen.

Im Gegensatz zu herkömmlichen Erweiterungsmethoden von ILogger, die Boxing von Werttypen erzeugen und die Speicherallokation zur Laufzeit beeinflussen, erstellt das LoggerMessage-Muster stark typisierte und statische Actions für jede Lognachricht.

Vorteile dieses Ansatzes:
_ Deutliche Reduzierung der Speicherallokationen.
_ Vermeidet Boxing von Werttypen wie int, Guid, DateTime usw.
_ Bessere Leistung bei Szenarien mit hohem Log-Aufkommen.
_ Standardisierung und Zentralisierung von Lognachrichten.
_ Mehr Klarheit bei Audit, Diagnose und Überwachung.

Diese Verbesserung ist besonders relevant in APIs und Backend-Services, bei denen Leistung und Nachverfolgbarkeit entscheidend sind.

Funktion
April 2024 v1.0.0-alpha

Optionale Unterstützung für Strongly Typed Id

Abgeschlossen

Die Lino CLI bietet jetzt eine optionale Unterstützung für Strongly Typed Ids, wodurch Entitätskennungen mit spezifischen, stark typisierten Typen statt generischer Typen wie Guid oder int dargestellt werden können.

Diese Funktion hilft, häufige Fehler wie das versehentliche Zuweisen eines Identifikators zwischen verschiedenen Entitäten zu vermeiden und macht den Code zugleich ausdrucksstärker und domänenorientierter.

Vorteile der Verwendung von Strongly Typed Ids:
_ Höhere Typsicherheit zur Kompilierzeit.
_ Verhindert versehentliche Zuweisungen zwischen verschiedenen Entitäten.
_ Verbessert Lesbarkeit und Ausdruck der Absicht im Code.
_ Erleichtert das Nachverfolgen und Debuggen von Identifikatoren im Domänenkontext.
_ Integration mit EF Core, JSON-Serialisierung und Validierung.

Die Funktion ist optional und kann bei der Projekterstellung aktiviert werden.

Funktion
März 2024 v1.0.0-alpha

Integrierte statische Codeanalyse in Projekte

Abgeschlossen

Generierte Projekte können jetzt mit Unterstützung für statische Codeanalyse konfiguriert werden, unter Verwendung der wichtigsten Analyzer des .NET-Ökosystems. Diese Tools sind direkt in den Build integriert und helfen, Formatierungs-, Stil-, Architekturprobleme und mögliche logische Fehler bereits in der Entwicklungsphase zu erkennen.

Vorteile:
_ Fördert Konsistenz und Standardisierung im Code von Anfang an.
_ Erkennt frühzeitig Bugs und schlechte Praktiken.
_ Erleichtert Code-Reviews und technische Onboardings.
_ Verbessert Qualität und Wartbarkeit des Codebestands.
_ Verhindert häufige Fehler und verbessert die Einhaltung der .NET-Best-Practices.

Die Konfiguration kann pro Projekt angepasst werden, was eine größere Flexibilität beim gewünschten Strengegrad ermöglicht.

Funktion
Februar 2024 v1.0.0-alpha

Standardisierung mit Result Pattern

Abgeschlossen

Erstellung der Bibliothek Tolitech.Results, die das Result Pattern in .NET vollständig und flüssig implementiert.

Diese Bibliothek kapselt das Ergebnis von Operationen — egal ob erfolgreich oder fehlerhaft — in strukturierte Objekte, die HTTP-Status, Nachrichten, Fehler, Titel, Details und optionale Daten enthalten (mit Unterstützung für Result<T>).

Vorteile der Verwendung des Result Pattern:
_ Standardisierung der Rückgabe von Operationen in der gesamten Anwendung.
_ Reduzierung von Ausnahmen als Flusskontrolle.
_ Erleichterung der Komposition und Verkettung von Operationen.
_ Bessere Unterstützung der Kommunikation zwischen Schichten und Diensten.
_ Fließende Integration mit HTTP-APIs, Validierungen und Fehlermeldungen.
_ Verbesserte Debugging- und strukturierte Protokollierungserfahrung.

Darüber hinaus erweitern Erweiterungen wie Tolitech.Results.Http und Tolitech.Results.Guards die Integration mit REST-APIs und defensiven Validierungen.

Funktion
Januar 2024 v1.0.0-alpha
Ein unbehandelter Fehler ist aufgetreten. Aktualisieren 🗙