What are the operative differences between these two validation packages when used for ASP.NET MVC validatation? They seem to have similar objects, all the way to their object na开发者_高级运维mes. Is one related to another? What are their differences? In what way do these differences denote different use cases?
- Fluent Validation (3rd party solution)
- Data annotations (Microsoft "baked-in")
I prefer Fluent Validation:
- It gives me far better control of my validation rules
- Doing conditional validation on different properties is so much easier compared to Data Annotations
- It separates the validation from my view models
- Unit testing is far easier compared to Data Annotations
- It has excellent client side validation support for most standard validation rules
I clearly prefer Data Annotations because ...
- all validation rules can be configured in one place in code (within the model metadata class) and don't need to be repeated anywhere else.
- there is excellent support for client side validation (again – without repetition of validation rules!) when using Data Annotation attributes.
- Data Annotation attributes can be tested to ensure they're there.
- there are nice additional validation attributes created by the community (e.g. Data Annotations Extensions).
精彩评论