ASP.NET Core: View Components – kontrolki z logiką w tle

Czas czytania ~ 110 sekund Kolejną z nowości wprowadzonych w ASP.NET Core są View Components, kontrolki, które możemy osadzać w naszych widokach i dodatkowo zasilać logiką pisaną w C#. Nie ma się co oszukiwać, kontrolki server-side nie są jakimś najnowszym trendem, ale czasami coś takiego może nam się przydać. Przykładem takiej kontrolki może być fragment … Continue reading ASP.NET Core: View Components – kontrolki z logiką w tle

ASP.NET Core: Middleware vs ActionFilters

Czas czytania ~ 150 sekund Jedną z ważniejszych zmian wprowadzonych przez ASP.NET Core w stosunku do poprzednich wersji ASP.NET jest koncepcja Middleware. Autorzy nowego frameworka nie ukrywają inspiracji nodejs, w którym Express, a więc framework do budowy aplikacji webowych również posiada bardzo podobny mechanizm, również o nazwie Middleware. Middleware w ASP.NET Core to nic innego jak … Continue reading ASP.NET Core: Middleware vs ActionFilters

HTTP Caching w ASP.NET Core

Czas czytania ~ 200 sekund. Nie będzie tutaj powszechnie znanych słów Phila Karltona o dwóch najtrudniejszych rzeczach. Będzie za to problem z życia wzięty. Mamy duży zasób, wynik ciężkiej operacji bazodanowej. Wiemy, że dane na których wykonują się obliczenia, zmieniają się raz dziennie. Co zrobić, żeby za każdym razem nie odpytywać bazy danych / serwera aplikacyjnego ? … Continue reading HTTP Caching w ASP.NET Core

Kibana, czyli zabawa danymi

Czas czytania ~ 130 sekund Poprzedni wpis na blogu demonstrował, jak wrzucić logi z aplikacji ASP.NET Core do Elasticsearcha. O potężnych możliwościach tego narzędzia pisałem przy okazji konkursu "Daj się poznać". Tutaj o wyszukiwaniu, tutaj o agregacjach a tutaj o scoringu. Drobną przeszkodą w korzystaniu z Elasticsearcha, zwłaszcza dla początkujących może być DSL - język … Continue reading Kibana, czyli zabawa danymi

Semantic logging w ASP.NET Core: Serilog + Elasticsearch

Czas czytania ~ 180 sekund Zdarzenia w aplikacji logować oczywiście trzeba. Często informacje budujemy w ten sposób, by były czytelne dla kolejnej osoby, która otworzy taki plik z logiem. Przykład: User jkowalski failed to log in at 2016-12-30 09:21:04 from 192.0.78.25 Niby mamy wszystkie informacje, jest to czytelne dla człowieka. Problem pojawia się, gdy takich logów … Continue reading Semantic logging w ASP.NET Core: Serilog + Elasticsearch

Porównywanie tekstu w .NET – badanie szybkości z użyciem BenchmarkDotNet

Czas czytania ~ 150 sekund. Jest to wpis zainspirowany prawdziwymi wydarzeniami. Wszelkie podobieństwo do osób, Spotkanie z klientem. Omawiamy nową funkcjonalność wyszukiwarki. Pada pytanie, dlaczego system nie szuka w środku wyrazu,.przecież Excel tak potrafi. Odpowiadamy, że porównywanie tekstów po przedrostkach jest znacznie szybsze, a przecież tutaj będzie sporo danych. No właśnie, ale znacznie to znaczy … Continue reading Porównywanie tekstu w .NET – badanie szybkości z użyciem BenchmarkDotNet

Harmonogramowanie zadań w SQL Server i Windows Server

Nowy rok to czas postanowień. Postanawiamy na przykład, że regularnie, co wtorek będziemy odwiedzali siłownie / baseny itp. Jakiś czas temu w sieci pojawiła się informacja, że tylko 8% Polaków realizuje swoje postanowienia noworoczne. Dlaczego ? Być może dlatego, że nie jesteśmy maszynami. Jedną z tych cech, w których komputery są od nas zdecydowanie lepsze … Continue reading Harmonogramowanie zadań w SQL Server i Windows Server

Wzorce projektowe w źródłach .NET: 3/3 wzorce behawioralne

Ostatnia część code review źródeł .NET Core. Przeglądaliśmy już wzorce kreacyjne i strukturalne. Tym razem poszukujemy wzorców behawioralnych. Warto pamiętać, że słynna książka Gang of Four na temat  wzorców została wydana w roku 1994, natomiast początki .NET to rok 2002. Dlatego też niektóre wzorce, takie jak iterator czy observer zostały wbudowane w sam C#. Mam tu … Continue reading Wzorce projektowe w źródłach .NET: 3/3 wzorce behawioralne

Wzorce projektowe w źródłach .NET: 2/3 wzorce strukturalne

Kolejna część code review .NET Core. Po poszukiwaniach wzorców kreacyjnych tym razem wzorce strukturalne. Podobnie jak poprzednio, wklejone przykłady nie zawierają pełnych definicji klas, a jedynie istotne fragmenty. Adapter Celem jest dopasowanie istniejącej klasy do innego interfejsu.  [DebuggerTypeProxy(typeof(System.Collections.ArrayList.ArrayListDebugView))] [DebuggerDisplay("Count = {Count}")] public class ArrayList : IList { public static ArrayList Adapter(IList list) { if (list == … Continue reading Wzorce projektowe w źródłach .NET: 2/3 wzorce strukturalne

Wzorce projektowe w źródłach .NET: 1/3 wzorce kreacyjne

O wzorcach projektowych napisano już chyba wszystko, co można było napisać. Jedni ich nadużywają, inni je ignorują, jeszcze inni używają ich nieświadomie, nie wiedząc nawet, że te czasami proste rozwiązania mają swoje nazwy. Z drugiej strony żyjemy w świecie open source i bardzo wiele można się nauczyć przeglądając kod innych. Ponieważ od jakiegoś czasu mamy na … Continue reading Wzorce projektowe w źródłach .NET: 1/3 wzorce kreacyjne