Ich bin auf der Suche nach Validierung Framework und während ich bin bereits mit NHibernate Ich denke an die Verwendung von NHibernate.validator von Contrib Projekt aber ich auch auf MS Validation Block, die robust zu sein scheinen, aber ich bin nicht noch in jedes Detail zu vertiefen, aber ich frage mich, ob jemand in diese beiden Frameworks getreten ist und wie ist die Erfahrung?Validierung Block vs Nhibernate.Validator
Antwort
Für den NHibernate-Validator müssen Sie NHibernate nicht für die Persistenz verwenden. Nutzung kann so einfach sein wie:
var engine = new ValidatorEngine();
InvalidValue[] errors = engine.Validate(someModelObjectWithAttributes);
foreach(var error in errors)
{
Console.WriteLine(error.Message);
}
Natürlich kann es in NHibernate Haken und Persistenz von ungültigen Objekten verhindern, aber Sie können es verwenden, nicht-persistente Objekte als auch zu validieren.
Wie wäre es mit D) Keine der oben genannten. Ich erinnere mich daran, dieses letzte Jahr ausgewertet zu haben und entschied mich dafür, mit dem Validierungs-Framework von Spring.NET zu gehen.
Wenn Sie NHibernate verwenden, möchten Sie wahrscheinlich Spring.NETs Funktionen für die Verwendung von NHibernate verwenden.
Zum größten Teil würde ich sagen, dass Spring.NET ziemlich unabhängig ist. Das heißt, es sollte dich nicht zwingen, neu zu gestalten. Sie können so viel oder so wenig verwenden, wie Sie möchten. Es sollte ziemlich einfach sein, ein Objekt zu schreiben, das Sie in Klassen injizieren können, die mit Spring validiert werden müssen. Sie würden dann dieses Objekt in Schloss verdrahten, um den Namen der "Validierungsgruppe" oder "Validatoren" zu nehmen, die Sie benötigen, und dann spring die Validatoren in das Objekt injizieren, wo Ihr Formular/Geschäftsobjekt/Dienst dann die Validatoren verwenden würde.
Hier ist ein Link auf das Dokument ist, ist Validation Abschnitt 12:
http://www.springframework.net/docs/1.2.0-M1/reference/html/index.html
Sind Sie gerade Castle mit oder verwenden Sie Monorail?
Natürlich können Sie versuchen, Ihr eigenes Validierungs-Framework zu schreiben. Für z. Karl Seguin helfen Ihnen:
http://codebetter.com/blogs/karlseguin/archive/2009/04/26/validation-part-1-getting-started.aspx
http://codebetter.com/blogs/karlseguin/archive/2009/04/27/validation-part-2-client-side.aspx
http://codebetter.com/blogs/karlseguin/archive/2009/04/28/validation-part-3-server-side.aspx
Es ist wirklich schön Lösung :)
- 1. Bean-Validierung VS JSF-Validierung
- 2. Wenn Block vs Switch-Case-Block
- 3. AtomicBoolean vs synchronisierten Block
- 4. Ausnahme vs Validierung
- 5. Eingang Sanitization VS-Validierung
- 6. nhibernate.validator & x.Val & jQuery mit benutzerdefinierten Validatoren
- 7. css inline-block vs float
- 8. File.open mit Block vs ohne
- 9. Knockout-Validierung ko.validation.group vs ko.validatedObservable
- 10. Erstellen eines horizontalen Menüs - Inline vs Inline-Block, vs. Floats?
- 11. VB.NET For-Schleife Funktionsumfang vs Block Umfang
- 12. css Inline-Block vs Tabelle-Zelle
- 13. Konstruktor vs nicht-statische Init-Block
- 14. Javascript vs ASP.NET Validierung, welche man wählen?
- 15. Rails: Validierung in Modell vs Migration
- 16. Laravel 4 Modellvalidierung vs Controller-Validierung
- 17. Validierung von Geschäftsregeln in NHibernate Validator
- 18. NHibernate Validierung Lokalisierung mit S # arp Architektur
- 19. Erstellen eine Ressource in der Verwendung von Block vs außerhalb des mit Block
- 20. Leistung von Inline-Null-Check vs If-Block?
- 21. Naming: BEGIN ~ END vs Live ~ EVIL Block strukturierte Sprachen
- 22. VERWENDUNG Block verhält sich anders in Website vs Windows-Formular
- 23. Validierung in Symfony2: Entität vs FormType - Best Practices?
- 24. MVC Validierung Passwort ändern. aktuelles Passwort vs. neues Passwort
- 25. Block-Syntaxfehler von Apple Beispiel 'Erstellen eines Block'
- 26. Knockout Validierung deaktivieren Validierung
- 27. Validierung und Linq
- 28. Mysterious Ruby-Block-Verhalten: & Block gegen {block.call}
- 29. Unterschied zwischen Block und & Block in Ruby
- 30. Zwei Textdateien Block für Block verschmelzen