Skip to content

Instantly share code, notes, and snippets.

@sirojiddin0198
Last active August 3, 2025 12:13
Show Gist options
  • Select an option

  • Save sirojiddin0198/4c71d70dbf5cfcaaa058c9832f5d1bfe to your computer and use it in GitHub Desktop.

Select an option

Save sirojiddin0198/4c71d70dbf5cfcaaa058c9832f5d1bfe to your computer and use it in GitHub Desktop.
FluentValidation

✅ FluentValidation

🟡 Validatsiya nima?

Validatsiya — bu, foydalanuvchi yoki tizimdan kelgan ma’lumotlar to‘g‘ri qabul qilinadiganligini tekshirish jarayoni.

Misol: Email noto‘g‘ri formatda yoki Ism bo‘sh bo‘lsa, bu xatolik deb hisoblanadi.


❓ Nega FluentValidation?

Xususiyat FluentValidation DataAnnotation
Sintaksis O‘qishga qulay, ketma-ket yoziladi [Attribute] orqali
Qayta foydalanish Albatta mumkin Cheklangan
Testlash Oson, chunki validator alohida klass Qiyinroq
Moslashtirish Katta imkoniyatlar (Must, When) Cheklangan

🚀 Boshlanish

  1. Paket o‘rnatiladi:

    dotnet add package FluentValidation
  2. Model uchun validator yaratiladi:

    public class UserValidator : AbstractValidator<User>
    {
        public UserValidator()
        {
            RuleFor(x => x.Name).NotEmpty();
        }
    }
  3. So‘ng Validate() orqali tekshiriladi.


🔍 Asosiy imkoniyatlari

  • NotEmpty(), EmailAddress(), InclusiveBetween() — tayyor qoidalar
  • WithMessage() — xatolik matnini sozlash
  • Equal(), Matches() — solishtirish
  • Must() — o‘zingiz yozgan funksiya bilan tekshirish
  • When() — shartli validatsiya
  • CascadeMode.Stop — birinchi xatoda to‘xtatish

⚙️ ASP.NET bilan integratsiya

  • FluentValidation.AspNetCore paketini o‘rnating
  • Program.cs da AddFluentValidation() bilan sozlang
  • Validatorlar avtomatik ishlaydi (ModelState.IsValid bilan)

✅ Afzalliklari

  • Modulli va testga qulay
  • Murakkab validatsiyalarni soddalashtiradi
  • Kodni toza va tartibli saqlashga yordam beradi

📌 Xulosa

Agar siz katta, jiddiy loyihalarda validatsiyani mustaqil, test qilinadigan, moslashuvchan holatda boshqarmoqchi bo‘lsangiz — FluentValidation eng to‘g‘ri tanlovdir.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment