FluentMetadata is a project to provide Metadata and Validation to Entities and ViewModels.
One Goal of this implementaion is to Don’t Repeat Yourself. So you can define the Metadata (in a fluent way) on one place an use it on several other places like:
ASP.NET MVC 2
NHibernate with FluentNHibernate
Also the Metadata can easily copied to ViewModels for ASP.NET MVC 2 Application. So that you don’t to repeat the Metadata for the ViewModels.
Rule Based Model-Validation is also part of FluentMetadata, so that the Rule for Entities must only declared on one Place.