FluentValidation – wstrzykiwanie zależności

Przedstawione przeze mnie do tej pory przykłady walidacji były zdecydowanie prostymi walidacjami – wszystkie dane zawierały się w modelu walidowanym. Niekiedy jednak zachodzi potrzeba sięgnięcia do zewnętrznych zasobów – bazy danych / cache / serwisów zewnętrznych. Mając w pamięci 5 zasadę SOLID’a warto by takie zależności wstrzykiwać do walidatora, zamiast tworzyć je bezpośrednio w konstruktorze…. Continue reading

FluentValidation – integracja z ASP.NET Web API

W poprzednim poście z cyklu FluentValidation pokazałem jak dodać FluentValidation do ASP.NET MVC.  W takim razie pora na pokaz integracji z ASP.NET Web API. Zaczynamy od dodania do naszego projektu biblioteki łączącej FluentValidation z WebApi. Następnie w miejscu startu aplikacji (u mnie jest to Application_Start Global.asax) dodajemy kod odpowiedzialny za połączenie FluentValidation z domyślną walidacją WebAPI. W przypadku używania FluentValidation także z MVC może wystąpić… Continue reading

Synchronizacja czasu pomiędzy serwerem i przeglądarką

Podczas pisania aplikacji konkursowej na konferencję WROC# pojawił się ciekawy problem, który wydał mi się warty opisania. O danej godzinie, podczas przerwy, administrator aplikacji uruchamiał test. Następnie, podczas 10 minut, każda z zarejestrowanych osób mogła odpowiedzieć na pytanie testowe i wziąć udział w konkursie. Jedną z funkcjonalności tej aplikacji był licznik czasu przy pytaniu testowym, który… Continue reading

FluentValidation – integracja z ASP.NET MVC

W dzisiejszym poście pokażę jak zintegrować FluentValidation z ASP.NET MVC5, na podstawie dodawania użytkownika. Po za standardowym FluentValidation potrzebujemy również FluentValidation.MVC5. Ta biblioteka zapewnia ModelValidatorProvider odpowiedni dla FluentValidation. Następnie w miejscu startu aplikacji (u mnie jest to Application_Start Global.asax) dodajemy taki fragment kodu: Sprawia on, że od tej pory nasz framework webowy nie będzie korzystał w wbudowanej walidacji… Continue reading

Azure Websites i czas lokalny

Piszę aktualnie małą aplikację webową w ASP.NET, która będzie używana jedynie w Polsce. Postanowiłem ustawić na sztywno kulturę polską, aby wszystkie daty wskazywały na właściwą godzinę. Najprościej jest to zrobić dodając wpis globalization  w web.config, co też uczyniłem. Po uruchomieniu aplikacji na Azure Websites zauważyłem, że datą lokalną wciąż jest UTC. Szybka poprawka na ustawianie kultury podczas uruchamiania aplikacji przez nadpisywanie CurrentCulture i CurrentUICulture w… Continue reading

Jak usprawnić pracę frontendowca w ASP.NET przy wykorzystaniu Gulpa?

Artykuł ukazał się w magazynie Programista, nr 12/2015 Praca webdevelopera staje się coraz bardziej skoncentrowana na frontendzie. Dzisiejsze aplikacje posiadają szeroką logikę biznesową po stronie klienta, walidacje, ściąganie danych z wielu źródeł. Jest to szczególnie widoczne w aplikacjach SPA (Single Page Application), w których jedyną funkcją serwera może być zwrócenie źródeł i odpowiedzi na żądania z aplikacji. Dotychczasowe rozwiązania… Continue reading

ASP.NET Web Api i identyczne nazwy kontrolerów

Rozwijając nową funkcjonalność w projekcie dodałem w osobnym module nowy kontroler, który miał identyczną nazwę jak już istniejący. Przy uruchomieniu aplikacji pojawił się komunikat że nie znaleziono kontrolera dla przesłanego adresu. Zacząłem więc debugować ścieżki, parametry i sprawdzać masę innych rozwiązań. Po dłuższym czasie, przeklikując po stronach aplikacji, zauważyłem że pierwszy kontroler również przestał działać. To dało mi do… Continue reading