Prawie każda aplikacja internetowa wymaga jakiegoś rodzaju walidacji. Ale czym są walidacje i dlaczego ich potrzebujesz? Otóż, dane wprowadzane przez użytkowników nie zawsze są wiarygodne. Czasami, świadomie lub nieświadomie, wprowadzają oni błędne dane. Czasami, niektórzy złośliwi użytkownicy chcieliby zakłócić działanie aplikacji poprzez świadome wprowadzanie nieodpowiednich danych. W każdym z tych przypadków, należy sprawdzić poprawność danych wejściowych przed użyciem ich do dalszego przetwarzania. W idealnej sytuacji użytkownicy powinni wprowadzać poprawne dane w poprawnym formacie. Ale jak wiesz, prawdziwy świat nie jest tak idealny i ludzie popełniają błędy. Tak więc, jako programista, musisz sprawdzić poprawność danych wejściowych w swojej aplikacji. Jeśli dane wejściowe użytkownika są nieprawidłowe, powinieneś powiadomić użytkownika, a następnie użytkownik powinien ponownie wprowadzić poprawne dane wejściowe i przesłać je ponownie.

W skrócie, walidacja jest praktyką zapewnienia jakości danych. Walidacja może być wykonana po stronie serwera, po stronie klienta lub na obu końcach. Walidacja jest podstawowym aspektem w aplikacjach ASP.NET MVC, co sprawia, że programiści zwracają się do jednego z wielu dostępnych frameworków, aby pomóc im zdefiniować i wykonać walidację danych. Data Annotation i Fluent Validation są dwoma takimi walidacjami używanymi do walidacji danych wejściowych użytkownika.

Adnotacje do danych





Data Annotations to nic innego jak zestaw atrybutów, które można wykorzystać do skonfigurowania klas modeli w celu sprawdzenia poprawności danych wejściowych wprowadzanych przez użytkowników. Zapewnia zestaw atrybutów .NET, które można zastosować do właściwości klasy obiektu danych. Atrybuty te oferują bardzo deklaratywny sposób stosowania reguł walidacji bezpośrednio do modelu. Adnotacje danych są mechanizmem ogólnego przeznaczenia, który może być użyty do przekazania metadanych do frameworka. Framework napędza walidację z metadanych, i używa metadanych podczas budowania HTML do wyświetlania i edycji modeli. Cóż, możesz ręcznie walidować model widoku w ASP.NET MVC, ale używanie adnotacji do danych sprawia, że logika walidacji jest wielokrotnego użytku, a także oszczędza czas. Ponadto minimalizuje złożoność w metodach akcji. Chodzi o to, aby dodać metadane ograniczeń do właściwości w modelu widoku, które mogą być później odebrane przez domyślne spoiwo w procesie wiązania modelu.

Walidacja Fluent

Fluent Validation to popularna biblioteka walidacji open-source używana do rozwiązywania złożonych wymagań walidacji. Jest to biblioteka walidacji innej firmy dla .NET, która wykorzystuje łatwy w użyciu interfejs fluent do budowania silnie typowanych reguł walidacji. Używa również wyrażeń lambda, aby umożliwić pisanie czytelnych reguł walidacji. Jest to framework po stronie serwera używany do tworzenia zaawansowanych i złożonych walidacji dla danych użytkownika. Jest to świetne narzędzie, które pomaga uczynić twoją walidację łatwą do utworzenia i łatwą do utrzymania. Ponadto działa również dobrze na modelach, których nawet nie posiadasz lub nie możesz zmienić. Ideą płynnej walidacji jest użycie łańcuchowych wywołań metod do produkcji kodu, który jest łatwy do odczytania przez programistów. Typ zwrotny każdego wywołania następnie definiuje prawidłowe metody dla następnego wywołania.

Różnica pomiędzy adnotacją danych a płynną walidacją

Prostota



– Konfiguracja za pomocą Adnotacji Danych jest dość prosta, ponieważ pozwala skonfigurować wszystkie reguły walidacji w jednym miejscu, które znajduje się w klasie metadanych modelu i nie trzeba ich konfigurować w żadnym innym miejscu. Jest to nadal jeden z najczęstszych sposobów używanych do walidacji modelu w ASP.NET MVC. Fluent Validation, z drugiej strony, jest biblioteką walidacji open-source używaną do rozwiązywania złożonych wymagań walidacji. Jest to świetne narzędzie, które pomaga uczynić twoją walidację łatwą do stworzenia i łatwą do utrzymania.



Walidacja warunkowa

– Fluent Validation używa potężnego API Fluent i wyrażeń lambda do budowania silnie typowanych reguł walidacji. Zapewnia doskonałe wsparcie dla walidacji po stronie klienta, a logika walidacji jest łatwa do przetestowania. Fluent Validation sprawia, że łatwo jest zaimplementować warunkową walidację opartą na jakimś polu. Wbudowane adnotacje takie jak Adnotacje danych nie wspierają warunkowej walidacji po wyjęciu z pudełka. Adnotacje danych nie obsługują żadnego rodzaju logiki warunkowej. Fluent API umożliwia to poprzez użycie metod When/Unless.

Podsumowanie

Zarówno Data Annotations jak i Fluent Validation są doskonałymi narzędziami walidacyjnymi w ASP.NET MVC, które zapewniają świetną walidację po stronie klienta. Fluent Validation wydaje się zapewniać lepszą kontrolę nad twoimi regułami walidacji, ponieważ używa potężnego interfejsu API Fluent do rozwiązywania złożonych wymagań dotyczących walidacji. Cóż, w zasadzie wszystko, co możesz skonfigurować z Adnotacjami danych, możesz zrobić to samo z Fluent Validation, ale nie na odwrót. Możliwe jest również użycie ich razem, ale wtedy twój kod stanie się niespójny. Fluent Validation to świetne narzędzie, które pomaga uczynić twoją walidację łatwą do stworzenia i łatwą do utrzymania, a także sprawia, że twój kod wygląda czysto.