Fluent Validation Kütüphanesinin Temel Kullanımı

Yunus Ünver
3 min readSep 24, 2019

Projelerimizde veri tabanına kayıt ekleme, kullanıcı girişi gibi post işlemlerinde girilen değerlerin doğruluğunu kontrol etmemiz için bazı kurallara ihtiyaç duyarız. Bu kuralları genelde .Net projesi içerisinde tanımlı gelen Data Annotation’lar ile tanımlarız. Ben bu yazımda ayrı bir kütüphane olan ve validasyon işlemlerini yapmamızı sağlayacak olan Fluent Validation kütüphanesinin kullanımını anlatacağım.

İlk olarak paket yöneticimiz nuget manager’dan FluentValidation paketinin kurulumu yapmakla başlıyoruz. FluentValidation paketi, validasyon işlemlerini yapmamızı sağlayacak olan paketin kendisi zaten.

Models klasörü içerisine kuralları uygulayacağım Person sınıfını oluşturuyorum ve içerisine gerekli alanları tanımlıyorum.

Person Sınıfı

Şimdi sıra kurallarımı tanımlamaya geldi. Projede Validator isminde bir klasör oluşturup içerisine PersonValidator adında bir sınıf oluşturuyorum. Öncelikle bu sınıfı AbstractValidator sınıfından miras alıp Person sınıfını generic olarak gönderiyorum. Burada Person sınıfımda tanımladığım alanların kural tanımlamalarını constructor içerisinde yapacağım.

PersonValidator Sınıfı

Resimde farkettiyseniz WithMessage methodunu her kural tanımlamamdan sonra kullandım. Bu method tanımladığımız kuraldan sonra kullanılarak o kuralın kullanıcıya gösterilecek mesajını içerir. Hangi mesajı istersek yazabiliriz. Örneğin NotEmpty methodu tanımlandığı alanın boş geçilmesini önlemek için kullanılır. Boş geçilmesin diye tanımladığımız kuralın mesajını ise bu kuraldan sonra tanımladığımız WithMessage methodu ile yazarız.

Kurallarımızı tanımladıktan sonra Controller içerisinde bir Action oluşturuyoruz. Oluşturduğumuz Action’ın içinde geri dönüş değerindeki View() ’e sağ tıklayarak Add View diyoruz ve template değerini Create, model class değerini ise Person tanımlıyoruz. Şuan kolayca View’ımizi oluşturduk.

Create Person Action’ı

İlk olarak form sayfasında yaptığımız post işlemi sonucunda girilen değerler tanımladığımız Person tipindeki parametrenin içerisine aktarılır. Bu gelen bilgileri hangi kurala kontrol edeceğimiz sınıf ise PersonValidator sınıfıdır. Daha önceden Person ile ilgili kurallarımızı bu sınıfın içerisine tanımlamıştık.

ValidationResult sınıfını tanımlamamızın sebebi ise PersonValidator sınıfında oluşturduğumuz kurallara göre Person sınıfını kontrol et, bunun sonucunda kurala uymayan alanlar varsa bunları result.Errors’ın içine tanımla ve bir tane bile kurala uymayan alan varsa result.IsValid’e false değerini ata.

Sonra result.IsValid değeri false ise result.Errors içerisindeki hataları ModelState.AddModelError ile formda tanımlı olan ValidationMessage kısmında göster şeklinde tanımlıyoruz.

Aşağıdaki resimde debug’lı hali nasıl onu görüyorsunuz.

Formdan Gelen Bilgilerin Kontrolü (Debug İşlemi)

Projeyi çalıştırıp kontrol ettiğimizde resimdeki görüntü oluşuyor.

Form Sayfası

Fluent Validation’ın bütün kural tanımlamalarını anlatmaya gerek duymadım. Buradaki linkte tüm kuralların kullanımı mevcut.

--

--