Kontakt

Kontakt

Oder schreiben Sie eine Mail an felix@infomatik.eu

Infomatik Validation

Objektvalidierung ist ein wichtiger Aspekt der Softwareentwicklung, da sie sicherstellt, dass die von Benutzern oder externen Quellen eingegebenen Daten gültig und den Anforderungen der Anwendung entsprechen. Ungültige Daten können verschiedene Probleme verursachen, einschließlich Fehlern, Abstürzen, Sicherheitslücken und anderen Problemen, die die Benutzererfahrung und die Integrität des Systems beeinträchtigen können.

In .NET gibt es bereits verschiedene Möglichkeiten, Objekte zu validieren, z. B. Data Annotations-Attribute und das IValidatableObject-Interface. Allerdings können Attribute und IValidatableObject nicht kombiniert werden, was schade ist, da Attribute in etwa 80% der Fälle ausreichen und sehr schnell zu verwenden sind.

Soll aber eine spezielle Validierungslogik entwickelt werden, oder eine Eigenschaft in Abhängigkeit einer anderen Eigenschaft ausgewertet werden, so ist der Implementierungsaufwand von immer wieder neuen Attributen sehr hoch. Hier wäre es schön, bei Bedarf einfach das IValidatableObject Interface implementiert um eine erweiterte Validierung vorzunehmen. Der statische Validator von .NET wertet jedoch nicht immer aus.

Um dies zu lösen, habe ich die Bibliothek “Infomatik.Validation” entwickelt. Diese Bibliothek berücksichtigt Attribute und die IValidateObject.Validate-Methode und bietet weitere Vorteile wie eine nicht statische Validator-Klasse, die Unit-Tests ermöglicht. Zusätzlich unterstützt sie die Validierung von verschachtelten Objekten durch das [DeepValidation]-Attribut.

Ein weiterer Vorteil der Bibliothek ist die Möglichkeit, fehlende Werte und Fehler separat zu behandeln, um sie unterschiedlich zu visualisieren. Zum Beispiel können fehlende Werte mit einem Platzhalter dargestellt werden, während Fehlermeldungen für ungültige oder außerhalb des erwarteten Bereichs liegende Werte angezeigt werden.

Die Bibliothek bietet auch Komponenten, um Fehler und fehlende Eigenschaften in WinForms und Blazor zu visualisieren, sowie eine Basisklasse ValidatableViewModel für MVVM-basierte Technologien wie WPF, MAUI oder WinUI.

Insgesamt bietet die “Infomatik.Validation”-Bibliothek eine leistungsstarke Möglichkeit, den Validierungsprozess in C#-Anwendungen zu vereinfachen und zu verbessern, die Benutzererfahrung zu verbessern und die Barrierefreiheit zu erhöhen.

Bei Interesse können Sie sich diese Bibliothek gerne auf GitHub ansehen, oder diese von NuGet

Technologien
C#
.NET