This post shows how to combine ASP.NET validation attributes with DDD Value Objects for input validation such that you have the best of the two worlds:
Enjoy the declarativeness of ASP.NET validation attributes
Keep the domain knowledge DRY and concentrated in the domain layer
Simplify the controllers
In the next article, I’ll try to lay out a solution for gathering and returning to the client multiple errors. This is another problem that is hard to implement with proper encapsulation and without an excessive amount of code in each controller.