Log2Console – prostsze nasłuchiwanie logów

Jeśli denerwuje was lokalne przeszukiwanie logów czy ślęczenie z debuggerem by dowiedzieć się czy wasza aplikacja się poprawnie zachowuje, to mam dla was proste rozwiązanie. Polecono mi je jeszcze kilka lat temu i w prosty sposób rozwiązuje moje problemy. Log2Console Aplikacja nasłuchuje dany port, na który są rzucane logi z aplikacji. Następnie wypisuje je, kolorując… Continue reading

Azure Automation DSC i montowanie obrazu czyli jak się nie poddawać

Każdy z nas miał taką sytuację: tworzymy sobie nasze rozwiązanie i nagle natrafiamy na nietypowy problem. Zaczyna się debugging i próbujemy odkryć, co powoduje błąd. Powstają różne work-aroundy, podchodzi się do problemu z różnych stron i nic. Minuta za minutą, godzina za godziną dochodzimy do coraz większej furii, a nie posuwamy się ani o krok…. Continue reading

Kilka porad o pracy bezpośrednio z klientem

Praca programisty bardzo mocno różni się od pracy konsultanta IT. Pisząc kolejne linie kodu bardziej się skupiamy na wzorcach projektowych niż na realnym wykorzystaniu naszego kodu przez użytkowników. Każdy z nas wiele razy kłócił się z kolegami o wykorzystaniu tej czy tamtej biblioteki, bo jest przystępniejsza w testowaniu jednostkowym, ma bogatsze API lub jest polecana przez… Continue reading

FluentValidation – walidacja dynamicznego modelu.

Ten post został pierwotnie napisany w języku angielskim, ale żeby kontynuować cykl o Fluent Validation, postanowiłem go przetłumaczyć na język polski. Czasami, wraz z rozwojem systemu, pojawia się potrzeba zaimplementowania dynamicznego modelu. Na przykład, w sklepie internetowym administrator chciałby zdefiniować dodatkowe pola dla konkretnych kategorii produktów. Następnie pracownicy sklepu, na podstawie tych pól, dodawaliby do… Continue reading

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

FluentValidation – podstawy

Walidacja danych wejściowych jest jedną z najczęściej implementowanych przez nas funkcji w naszych aplikacjach. Bardzo często używa się wtedy wbudowanych adnotacji Data Annotations, gdyż są od razu dostępne i pojawiają się w większości tutoriali od Microsoftu. Dodatkowo, w ASP.NET MVC, bez żadnych dodatkowych konfiguracji, kontroler waliduje dane na wejściu i umieszcza błędy w obiekcie ModelState. Dla prostych walidacji lub nieskomplikowanych… 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