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

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

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