W poprzednim poście pisałem o bibliotece FluentValidation i jak ją dodać do naszego projektu. W tym poście skupimy się na bardziej zaawansowanych funkcjonalnościach, jakie nam ta biblioteka udostępnia: - Walidacja złożonych właściwości (manualna i automatyczna) - Wspólny walidator właściwości - Walidacja listy - Własny komunikat błędu walidacji - Wspólne walidatory - Warunki walidacji - Reguły zależne od siebie - Wywołanie zwrotne - Asynchroniczna walidacja
W prawie każdym projekcie jest potrzebna jakaś walidacja danych. Klasy służące do walidacji można napisać samemu, ale można również skorzystać z gotowych bibliotek. Najbardziej lubię FluentValidation. Jest to biblioteka, która ułatwia tworzenie „walidatorów” – klas zawierających reguły walidacji.
W poprzednim wpisie pokazałam prosty (i przy okazji brzydki) sposób na użycie pakietu FluentValidation do walidacji danych po stronie serwera. Czas na refactoring.
Sztuka programowania 2356 dni, 5 godzin, 11 minut temu 69 źrodło rozwiń
We wpisie pokazuję przykład walidacji po stronie serwera z wykorzystaniem pakietu FluentValidation. Na początek pokazuję proste użycie pakietu, w kolejnych wpisach - refactoring i testy.
Sztuka programowania 2362 dni, 5 godzin, 22 minuty temu 58 źrodło rozwiń
W poprzednim wpisie pokazałem, jak użyć Fluent Validation w aplikacji WPF. Wspomniałem, że tamta implementacja niestety nie nadaje się, gdy potrzebujemy walidować dane w sposób asynchroniczny – np. sprawdzić w usłudze, czy dane są unikalne. W tamtym wpisie pokazałem użycie IDataErrorInfo ponieważ jest on najczęściej wykorzystywany do realizacji walidacji. Natomiast dzisiaj opiszę nową wersję tego interfejsu, dodaną w .NET 4.5 – INotifyDataErrorInfo. Co fajne nowy interfejs...
W poprzednich wpisie pokazałem w jaki sposób można zintegrować Fluent Validation z aplikacją ASP.NET MVC, dzisiaj przyszedł czas na WPF. W WPF jest kilka sposobów na realizację walidacji. Najczęściej wykorzystuje się do tego interfejs IDataErrorInfo, który definiuje dwa elementy: właściwość Error zawierającą informacje o błędach oraz indekser, który zwraca błąd dla właściwości o nazwie przekazanej jako indeks. Interfejs ten można wykorzystać do integracji Fluent Validatio...
W dzisiejszym wpisie pokaże dwa sposoby w jaki sposób można integrować bibliotekę Fluent Validation z ASP.NET MVC. Pierwszy domyślny, który dostarcza sama biblioteka oraz drugi mój, który rozwiązuje cześć problemów z domyślnej integracji.Domyślna integracja Integracja Fluent Validation z ASP.NET MVC jest bardzo prosta, sprowadza się do dwóch kroków:Instalacja pakietu FluentValidation.Mvc5 z nugetaDodanie linijki konfiguracji biblioteki w metodzie startującą aplikację (Mvc...
W poprzednim wpisie opisałem w jaki sposób można wykorzystać bibliotekę Fluent Validation do zorganizowania walidacji danych w aplikacji. W walidatorze możemy użyć metodę Must do definiowania własnej logiki walidacji (jak to było zrobione na przykładzie walidacji nipu). W większości przypadków takie podejście jest wystarczające. Czasami, gdy jakąś logikę musimy współdzielić między różnymi walidatorami w aplikacji (lub nawet między różnymi aplikacjami) możemy stworzyć wali...
Przegląd i streszczenie technik programowania defensywnego, na podstawie kursów Pluralsight "Defensive Coding in C#" oraz "Advanced Defensive Programming Techniques". Forma podcastu lub jego transkrypt.
Sztuka programowania 2496 dni, 19 godzin, 4 minuty temu 54 źrodło rozwiń
Żeby sprawdzić poprawność adresu email, wcale nie trzeba męczyć się ze skomplikowanymi wyrażeniami regularnymi. W C# z pomocą przychodzi klasa MailAddress. Oczywiście jest to rozwiązanie wysokopoziomowe i wolne (rzuca wyjątki). Zapewnia jednak czytelność kodu.
Przedstawienie podstaw FluentValidation - 1 część cyklu.
Sztuka programowania 3203 dni, 20 godzin, 21 minut temu 146 źrodło rozwiń
W internecie znaleźć można mnóstwo sposobów na zwalidowanie modelu. Najlepszym sposobem jest zastosowanie atrybutów z przestrzeni System.ComponentModel.DataAnnotations, ponieważ walidacja odbywa się automagicznie. Niestety kiedy te same atrybuty wykorzystamy do parametrów akcji, to już tak automagicznie nie jest. W tym poście zaprezentuję problem oraz pokażę jak można sobie z nim poradzić.
Sztuka programowania 3228 dni, 2 godziny, 1 minutę temu 270 źrodło rozwiń
Walidacja formularzy w AngularJS jest moim zdaniem jednym z największych minusów tego frameworka. Ja jako programista z doświadczeniem w C# i ASP.NET MVC byłem przyzwyczajony do czegoś zupełnie innego… Tam wystarczy właściwości modelu oznaczyć odpowiednimi atrybutami i użyć odpowiedniego „helpera” na widoku, a mechanizm „jQuery unobtrusive validation” robi resztę za mnie – oczywiście przy bardziej niestandardowych walidacjac...
Walidacja danych to bardzo szeroki temat. Sprawdzamy poprawność danych zarówno po stronie klienta (JavaScript) jak i serwera. Występuje ona we wszystkich warstwach systemu. Dzisiaj napiszemy metodę po stronie serwera, która będzie weryfikowała dane. W przeciwieństwie jednak do klasycznego podejścia, nie będziemy przeładowywać całej strony od nowa. Wywołanie będzie Ajaxowe czyli w tle (asynchroniczne). Użytkownik wpisując jakieś dane do formularza, spowoduje tym samym wysyłanie w tle żądania do serwera, k...
Korzystamy z ASP.NET MVC, bindujemy model z widokiem, a w modelu mamy pole daty z określonym formatem. Problem pojawia się, gdy walidacja nie działa jak powinna...
Już od jakiegoś czasu nie "postowałem" na moim blogu... Na usprawiedliwienie napiszę, że po godzinach pracuję obecnie nad własnym czytnikiem RSS online (wiadomo, google reader niebawem zniknie, a jak na razie nic innego nie przypadło mi do gustu, tak że postanowiłem stworzyć coś własnego... zobaczymy co z tego wyjdzie...). W każdym bądź razie czas nadrobić zaległości, a prace nad czytnikiem również potrafią dostarczyć trochę tematów do opisania ;) Jednym z nich tytułowy problem sprawdzania jakości wprowa...
Na temat walidacji formularzy w ASP.NET MVC napisałem już w przeszłości kilka postów. Jako, że ostatnio pracuję po godzinach nad pewnym swoim projektem (jeśli starczy mi zapału i doprowadzę go do końca to na pewno się pochwalę), znów natknąłem się na pewien problem związany właśnie z walidacją. Rozwiązanie jest w sumie banalne ale może komuś się przyda ;) Myślę, że najlepiej będzie rozpocząć od przedstawienia problemu, zacznijmy więc!Opis problemu Czasem tworząc skomplikowany widok, mamy potrzebę zawrze...
Dziś kontynuować będziemy temat formularzy w HTML5. W poprzednim poście, opisałem walidację dostarczaną bezpośrednio przez kontrolki formularzy. Jak jednak widzieliśmy, pozwalają one tylko na przeprowadzenie podstawowych walidacji, takich jak sprawdzenie czy wprowadzono dane w pola wymagane, czy w pole typu 'email' wprowadzono prawidłowy email. Ponadto omówiliśmy sposób na definiowanie walidacji wprowadzanych danych za pomocą wyrażeń regularnych (atrybut 'pattern'). Jeśli więc chcielibyśmy dokonać bardz...
Kolejnym głównym zagadnieniem wymaganym na egzaminie MCSD 70-480, jest dostęp i zabezpieczanie danych (ang. access and secure data). Pytania z tego zakresu stanowią 26% wszystkich pytań na egzaminie. W związku z tym, dzisiejszym postem rozpoczynam omawianie tego zagadnienia. Pierwszym z tematów jakie w ramach tego zagadnienia Microsoft zaleca poznać, jest kwestia wykorzystania, wprowadzonych w HTML5, elementów służących do tworzenia formularzy. Oprócz tego, w HTML5 wprowadzona została możliwość zdefiniow...
Netmajor's Tech BlogHOMEO mnieKontaktWalidacja zdalna w ASP.NET MVC za pomocą atrybutu Remote W asp.net mvc pojawił się atrybut Remote, który nakładamy na pole z modelu zbindowanego do widoku.