I'm not sure about data annotations, but we used FluentValidation for part of validation in business logic. And simple integration with ASP.NET MVC is a good bonus :)
It supports many built-in rules, the localization of error messages, the use of object data in error messages, selective verification methods, conditional verification - apply some rules if the object data matches the condition, rule sets - use a named set of rules, validation of aggregated objects and collections - and property names will be compatible with ASP.NET MVC property names, etc.
source share