"Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach,and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto introduced the

Based on CodePlex definition: "FluentValidation is A small validation library for .NET that uses a fluent interface and lambda expressions for building validation rules for your business objects."

There is no any problem to use Asp.net MVC built in DataAnnotation but in some cases it's better to use FluentValidation instead. I list my reasons about which should be selected to use here.

Use DataAnnotation if :

Your system is simple and you don't have any complex valid

“Inversion of Control, or IoC, is an abstract principle describing an aspect of some software architecture designs in which the flow of control of a system is inverted in comparison to procedural programming” wikipedia"Inversion of Control (IoC) means that objects do not create other objects on which they rely to do their work" ~Martin Fowler.

DI  is  sometimes as The Hollywood Principle – "Don’t call us, we’ll call you”! I