ObjectHasher, czyli jak wyliczyć hash z obiektu

System nad którym obecnie pracuję wykonuje wiele zapytań do zewnętrznych systemów. Każde zapytanie generuje nie tylko opóźnienie w działaniu aplikacji, ale również dodatkowe koszty. Postanowiliśmy zaimplementować rodzaj cache’u po naszej stronie. Do tego celu potrzebowaliśmy obliczać hash z modelu który przychodził do systemu. Niniejsza notka pokazuje przykładową implementację komponentu do wyliczania hash’a z obiektu.
Continue reading

Kompendium wiedzy o ASP.NET Web API

Jakiś czas temu miałem przyjemność prowadzić zajęcia z ASP.NET Web API w ramach spotkań akademickiej grupy EKA.NET. Na potrzeby tychże spotkań założyłem repozytorium, w którym umieściłem implementację podstawowych funkcjonalności Web API. Po zakończeniu cyklu 3 spotkań postanowiłem dalej rozwijać to repozytorium. Obecnie znajduje się tam cała moja wiedza na temat ASP.NET Web API.
Continue reading

Automatyczna walidacja parametrów akcji

W internecie znaleźć można mnóstwo sposobów na zwalidowanie modelu. Moim zdaniem najlepszym sposobem jest zastosowanie atrybutów z przestrzeni System.ComponentModel.DataAnnotations, ponieważ walidacja odbywa się samoczynnie. 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ć.
Continue reading

Entity Framework SQL query tracer

Niejednokrotnie potrzebujemy podejrzeć zapytanie SQL wygenerowane przez EF. Często zdarza się, że takie zapytanie chcemy odpalić na bazie danych i zobaczyć wynik. Można wtedy podpiąć się profilerem do bazy i przechwycić je w całości. Niestety takie rozwiązanie jest bardzo czasochłonne. Można też wywołać metodę ToString() na obiekcie typu IQuarable, jednakże to rozwiązanie dostarczy nam zapytanie SQL bez parametrów filtrujących. W tym artykule opiszę jak bezpośrednio w kodzie uzyskać pełne zapytanie SQL wraz z parametrami filtrującymi.
Continue reading