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

Fable, czyli jak kompilować F# do JavaScript

TypeScript, CoffeeScript, Babel, traceur, ClojureScript, ... . Co je łączy? Kompilują kod napisany w alternatywnych językach do "klasycznego" JavaScriptu. Dlaczego są popularne ? Z jednej strony JavaScript potrafi zaskoczyć, o czym pisałem już jakiś czas temu tutaj. Z drugiej strony, w dużych projektach chcemy często pisać dobrze zarządzalny i skalowalny kod. Biorąc po uwagę liczne … Continue reading Fable, czyli jak kompilować F# do JavaScript

Czym są Progressive Web Apps i do czego można użyć Service Worker-ów ?

Z raportów takich jak 2016 US Mobile App (link) wynika, że już 2/3 naszej internetowej aktywności pochodzi z tabletów i smartfonów. Każdy szanujący się portal internetowy ma dziś swoją dedykowaną aplikację mobilną. Przewagi pracy z takimi aplikacjami nad pracą bezpośrednio z przeglądarkami mobilnymi to m.in: działanie w trybie pełnoekranowym (bez paska przeglądarki) możliwość dodania skrótu do głównego ekranu urządzenia … Continue reading Czym są Progressive Web Apps i do czego można użyć Service Worker-ów ?

O strumieniach w .NET

Strumienie w .NET dostarczają warstwę abstrakcji nad ciągami bajtów. Spotykamy się z nimi między innymi przy operacjach I/O, choć nie tylko. Krótki research stackoverflow pod kątem najwyżej ocenianych pytań pod tagami stream i .net prowadzi do raczej przewidywalnych wniosków. Większość naszej pracy ze strumieniami to konwersja z i do stringów, tablicy bajtów, plików itd. Co więcej powinniśmy wiedzieć i … Continue reading O strumieniach w .NET

8 rzeczy, które warto wiedzieć projektując REST-owe API

Jakiś czas temu Microsoft opublikował na githubie "REST API Guidelines". Reakcja Roya Fieldinga, a więc człowieka, który de facto opracował styl REST-owy była dość jednoznaczna: Z jednej strony REST to dziś dla wielu buzzword, oznaczający jedynie komunikację przez HTTP z użyciem kilku metod tegoż HTTP i wymiana danych w formacie JSON. Zintegrowano w ten sposób niejeden system i w … Continue reading 8 rzeczy, które warto wiedzieć projektując REST-owe API