The .NET Framework also provides us with an alternative, attribute-based validation system in the System.ComponentModel.DataAnnotations namespace. It is mostly comprised of a wide range of attribute classes that we can decorate our data Model properties with, so as to specify our validation rules. In addition to these attributes, it also includes a few validation classes, which we will investigate later.
As an example, let's look at replicating the current validation rules from our ProductNotify class with these data annotation attributes. We need to validate that the Name property is entered and has a length of 25 characters or less, and that the Price property value is more than zero. For the Name property, we can use the RequiredAttribute and the MaxLengthAttribute attributes:
using System.ComponentModel.DataAnnotations;
...
[Required(ErrorMessage = "Please enter the product name.")] [MaxLength(25, ErrorMessage = "The product name cannot be longer...