Browsed by
Category: Bez kategorii

Storing filters Kendo Grid

Storing filters Kendo Grid

KendoUI Grid control is very flexible and powerful widget to present table data. It provides us a set of useful features. All of them is described very well in Kendo Grid documentation. However there is some cases that these possibilities is not enough to fulfill our requirements.

KendoUI Grid support filters and sorting data in user interface. These filters can do some complex logic. Especially if we decide to pass them to API layer and evaluate server side. Let’s imagine that user set a complex filtering and sorting rules that helps him to manage his data. Then he move to another page and when he want to get back he have to set all filters again.

Mocking EntityFramework context – Code First

Mocking EntityFramework context – Code First

When I first try to write test for class that use directly, I found that I can鈥檛 mock database context directly using for example Moq library. That鈥檚 because this class properties isn鈥檛 virtual. After some research I found that EF6 could be set up to enable mocking [1,2]. However that is not quite what I need. I had some specific requirements:

1. I want to trace operations into database tables
2. It must work for Code First EF6 configuration
3. It should be generic solution for each database table

OWASP AppSensor .NET – architektura

OWASP AppSensor .NET – architektura

Po dok艂adnym opisaniu mechanizmu czas na przedstawienie planowanej architektury implementowanego przeze mnie rozwi膮zania. Warto te偶 zdefiniowa膰 cel projektu oraz zestaw krok贸w, kt贸re zawiod膮 mnie do jego wykonania.

Zacznijmy wi臋c od zdefiniowania funkcjonalno艣ci, kt贸re chcemy osi膮gn膮膰 w projekcie. Oczywi艣cie mo偶na za艂o偶y膰, 偶e docelowo chcieliby艣my zaimplementowa膰 sp贸jny mechanizm OWASP AppSensor w pe艂nym jego zakresie, z implementacj膮 wszystkich zdefiniowanych punkt贸w detekcji i integracji z innymi systemami. Jednak z do艣wiadczenia wiem ju偶, 偶e ten spos贸b okre艣lania wymaga艅 nie jest dobry, bo do艣膰 s艂abo motywuje do pracy i do sko艅czenia projektu. Zamiast tego zdefiniujemy MVP naszego projektu.

Konfiguracja TypeScript – kompilacja

Konfiguracja TypeScript – kompilacja

Co to jest TypeScript? TypeScript to j臋zyk, kt贸ry jest nak艂adk膮 na JavaScript. Udost臋pnia on silne typowanie dla tego dynamicznego j臋zyka. Dodatkowo wprowadza on klasy, modu艂y i interfejsy, kt贸re pomagaj膮 w organizacji kodu aplikacji. Jest to szczeg贸lnie u偶yteczne w du偶ych projektach z wydzielonymi wieloma cz臋艣ciami aplikacji. Dzi臋ki u偶yciu mechanizm贸w obiektowych mo偶emy porz膮dkowa膰 kod, a dzi臋ki silnemu typowaniu ka偶dy b艂膮d sk艂adniowy zostanie wykryty ju偶 podczas kompilacji lub, w niekt贸rych edytorach, nawet podczas pisania. Dobra konfiguracja TypeScript pozwoli nam w du偶ej mierze zautomatyzowa膰…

Read More Read More

Pomys艂y i zdolno艣膰 ich wykonania

Pomys艂y i zdolno艣膰 ich wykonania

W ostatnim po艣cie pisa艂em o podj臋ciu wyzwania, kt贸re polega na realizacji otwartego projektu. Decyzj臋 o udziale w tym przedsi臋wzi臋ciu podj膮艂em szybko, ale najwi臋kszy problem mia艂em z pomys艂em na ten projekt. Przy czym nie by艂 to problem zwi膮zany z wymy艣leniem czego艣, ale z wyborem spo艣r贸d tego, o czym my艣l臋 ostatnio. Do艣膰 cz臋sto przychodz膮 mi do g艂owy r贸偶ne idee np. na zautomatyzowanie lub ulepszenie jakiego艣 procesu czy uwsp贸lnienie czego艣 dla kilku aplikacji. Podejrzewam, 偶e wielu developer贸w ma podobnie. Wiadomo, 偶e jedne pomys艂y…

Read More Read More

Cache oparty na czasie

Cache oparty na czasie

Walidatory Wyr贸偶niamy 2 rodzaje walidator贸w zasob贸w: silne – wyst臋puj膮 wtedy, gdy ka偶da zmiana zawarto艣ci zasobu powoduje wykrycie zmiany w walidatorze s艂abe – gdy wykrywanie zmian w walidatorze opiera si臋 na danych niezale偶nych od warto艣ci zasobu (np. na informacjach o czasie) Zgodnie z powy偶sz膮 definicja wyr贸偶niamy dwa rodzaje cache’a: Cache oparty na czasie Polega on na tym, 偶e przechowywany zas贸b mo偶e by膰 u偶ywany tylko przez zdefiniowany czas. Do tego celu u偶ywany jest nag艂贸wek: Last-Modified, kt贸ry wskazuje na dat臋 ostatniej modyfikacji zasobu….

Read More Read More

Spos贸b dzia艂ania cache

Spos贸b dzia艂ania cache

Nag艂贸wek Vary Nag艂贸wek Vary umo偶liwia okre艣lenie, kt贸re elementy wiadomo艣ci (poza standardowymi: metod膮, adresem i hostem) jednoznacznie identyfikuj膮 dany zas贸b. Jest to szczeg贸lnie przydatne podczas korzystania z mechanizmu Content negotiation. Dla przyk艂adu odpowied藕 zawieraj膮ca Vary: accept-language informuje, 偶e nag艂贸wek accept-language powinien by膰 uwzgl臋dniony w kluczu obiekt贸w cache. Mo偶e to wynika膰 z faktu, 偶e nag艂贸wek ten pozwala ustali膰 z klientem j臋zyk wyniku zapytania, a wi臋c dla ka偶dego j臋zyka odpowied藕 mo偶e si臋 znacz膮co r贸偶ni膰. Nag艂贸wek Vary mo偶e przyjmowa膰 warto艣ci: * – oznacza, 偶e…

Read More Read More

Metoda PATCH

Metoda PATCH

Zajmiemy si臋 tak偶e metod膮 PATCH. Nie jest ona wprawdzie cz臋艣ci膮 standardu HTTP, jednak do艣膰 dobrze uzupe艂nia go w kwestii operacji cz臋艣ciowego aktualizowania danych. Przypomnijmy, 偶e metoda PUT s艂u偶y do zast膮pienia danego zasobu, za艣 POST do jego wstawienia. W sytuacji, gdy聽potrzebujemy zaktualizowa膰 tylko kilka w艂a艣ciwo艣ci rekordu,聽zastosujemy聽metod臋 PATCH. W tre艣ci wiadomo艣ci PATCH znajduje si臋 ci膮g informacji o tym, jakie pole i w jaki spos贸b zmieni膰. Je偶eli wskazywany zas贸b jeszcze nie istnieje, mo偶e on zosta膰 utworzony, je偶eli informacje o zmianach zawieraj膮 wszelkie wymagane…

Read More Read More