Fluent Validation


Qualche tempo fa ricordo di un post di Janky in cui descriveva il modo con cui gestiva la logica di validazione del domain model. Quella poche righe di codice mi hanno colpito molto in quanto per la prima volta realizzavo quanto fosse importante poter separare la logica di validazione da tutto il resto. Da allora mi sono imbattuto in molte librerie che in modo più o meno diverso realizzano la validazione. Ultimamente con il proliferare di librerie fluent like mi è venuta l’idea di creare una mia liberia di validazione che appunto utilizzasse l’approccio fluent, il mio errore è stato quello di non controllare che altri avessero già realizzato ciò.

Per farla breve ho trovato Fluent Validation che sembra essere la libreria di Janky + quello che avevo in testa io.

In pratica si possono scrivere cose di questo tipo:

public class CustomerValidator: AbstractValidator {

public CustomerValidator() {

RuleFor(customer => customer.Surname).NotEmpty();

RuleFor(customer => customer.Forename).NotEmpty().WithMessage(“Please specify a first name”);

RuleFor(customer => customer.Company).NotNull();

RuleFor(customer => customer.Discount).NotEqual(0).When(customer => customer.HasDiscount);

RuleFor(customer => customer.Address).Length(20, 250);

RuleFor(customer => customer.Postcode).Must(BeAValidPostcode).WithMessage(“Please specify a valid postcode”);

}

A me piace e a voi?

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...