Das validation framework würdest du empfehlen für .net-Projekten?
Nutzen für eine web-basierte mvc3 .net-Anwendung, die Validierung framework würdest du empfehlen? Anwendung folgt dem domain-model-Muster und domain-Modelle POCOs sind in separaten Klassenbibliothek?
Die Art der Validierung, die erforderlich sein wird, werden... Nicht Null, Regulärer Ausdruck basierte etc
- Haben Sie irgendwelche Vorteile/Nachteile-Vergleiche von unterschiedlichen Rahmen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde mit FluentValidation, es ist ein tolles open-source-Projekt
https://github.com/JeremySkinner/FluentValidation
Es ist gleichermaßen gut für einfache und komplexere Validierungen
Falls Sie eine Liste der Misserfolge (und nicht nacheinander Ausnahmen), dann mag ich die Enterprise Library Validation block.
Finden Sie in der powerpoint-Präsentation unter:
http://msdn.microsoft.com/en-us/library/ff650484.aspx
Können Sie den Draht, bis die meisten basic-Validierungen gegen die POCO-Objekte.
Und eine Menge von der pre-fab-Regeln sein können, setup in einer .config-Datei.
Und Sie können schreiben Sie Ihre eigenen Regeln.
Meine Regeln sind sehr präzise. Führen Sie 1-Validierung zu einem Zeitpunkt.
Als einfaches Beispiel: ich hätte 2 unterschiedliche Regeln, um zu entscheiden, ob ein Mitarbeiter hireable (basierend auf Geburtstag).
Eine Regel würde sicherstellen, dass das Geburtsdatum des Arbeitnehmers angegeben wurde.
Eine zweite Regel würde sicherstellen, dass das aktuelle Datum minus der Geburt-Datum größer war als 18 Jahre. (oder, was die Regel war).
(Jetzt nehmen wir an ich habe eine Reihe von Vorschriften in place).
So nach dem Validierungs-Routinen laufen, bekomme ich wieder eine Liste von allen (ungültige) Situationen in einer Liste. Zum Beispiel, wenn ich die Validierung eines Mitarbeiters, ich würde eine Liste der Invaliden.
"Nicht LastName"
"Nicht zu bieten hat FirstName"
", Die nicht für SSN"
anstelle von "one at a time". (tut es "ein zu einer Zeit" dauern würde, möglicherweise viele Pässe, um schließlich herauszufinden, die Gültigkeit der Prüfungen).
Unten finden Sie einige Beispiel-code. Lassen Sie sagen, jemand versucht, ein Buch zu kaufen, die mit der ISBN "ABC123456".
Die unten ist eine benutzerdefinierte Regel würde überprüfen, um zu sehen, ob das Buch vorhanden ist (in Ihrer Produkt-Datenbank zum Beispiel). Ich denke, man kann Folgen. Es wäre verdrahtet gegen das Buch.cs) poco-Objekt. (Keiner der "Draht" wird angezeigt). Ich versuche nur, um Ihnen einen schnellen Beispiel, wie schwer (oder nicht schwer) es ist, erstellen Sie eine einfache Regel.
Wenn ein Buch nicht gefunden wird (über die isbn)....dann sehen Sie die validationResults.AddResult Methode. Das ist, wie Sie bekommen mehrere Invaliden. Sie haben Zugang zu der Sammlung später, wenn Sie die überprüfung der Validierung Abfrage.