Hryniewski.NET | .NET

LINQ - don't be afraid of Aggregate

Aggregate is one of the most fun and powerful methods in LINQ. Sadly it's also of of the most underused and "scary" ones. I hope that after reading this post you will understand Aggregate a bit more, know when to use it and won't be afraid of doing so. [Więcej]

Enumy jako flagi i wykorzystanie operatorów bitowych (XMASS Edition)

Witam Was w świąteczne dni. Niektórzy w tej chwili lepią pierogi, próbują nie wrócić do domu z pangą, latają za zapomnianym prezentem niczym Arnold za Turbo-Manem lub w ciepłym, przytulnym domku wieszają na choince bombki. Ja z kolei mam cały dzień dla siebie i jego część postanowiłem na napisanie krótkiego posta o tym jak możecie wykorzystać enumy jako flagi i obwiesić nimi swoje obiekty tak bardzo jak tylko chcecie. [Więcej]

Regex.CompileToAssembly() - Prekompilacja wyrażeń regularnych i zautomatyzowanie procesu

W ostatnim poście opisałem i porównałem wydajność różnych sposobów wykorzystania regexów. Zdecydowanie najlepiej sprawowało się wyrażenie, które przygotowałem za pomocą metody Regex.CompileToAssembly(). Dziś omówię ją nieco dokładniej i podpowiem, jak zautomatyzować cały proces aktualizowania zebranych do oddzielnego assembly regexów. [Więcej]

Przyspieszamy Regexy - prekompilacja

Ostatnio musiałem trochę popracować z ukochanymi przez niektórych regexami. Nie mogę o sobie powiedzieć, że klepię z pamięci skomplikowane patterny, ale wyrażenia regularne są naprawdę świetną i użyteczną funkcjonalnością. Zupełnym przypadkiem zetknąłem się ze sposobem na przyspieszenie ich działania za pomocą metody Regex.CompileToAssembly(). [Więcej]

ToList(), or not ToList()...

...oto jest pytanie! Po długiej przerwie w pisaniu postaram się Wam na nie odpowiedzieć. Co dzieje się w momencie użycia tej metody? Kiedy powinniśmy z niej korzystać, a kiedy możemy to sobie odpuścić? Oczywiście nie będę w stanie przeanalizować każdej możliwej sytuacji, ale mam nadzieję, że po dzisiejszej lekturze będziecie korzystać z tej metody w pełni świadomie. [Więcej]

Trzy słowa o optymalizacji LINQ

Kontynuując wątek LINQ, który podjąłem jakiś czas temu, poruszę dziś temat optymalizacji operacji jakie wykonujemy na kolekcjach. Na starcie muszę się przyznać, że tytuł nie jest do końca zgodny z prawdą, bo trzy słowa to o wiele za mało, by wejść w głębiej w temat optymalizacji zapytań. Są jednak 3 metody, które można wykorzystać do znacznego przyspieszenia wykonywania operacji w bardziej rozbudowanych łańcuchach przy minimalnym nakładzie pracy. [Więcej]

Obsługa wyjątków w LINQ

Jak już wspominałem, uwielbiam LINQ. Z każdym razem gdy go używam odrobinę bardziej. Ale nie każdy pała do LINQ równie wielką miłością co ja i pojawiają się różne argumenty przemawiające przeciw korzystaniu z tej funkcjonalności w wielu przypadkach, również w takich gdzie znacznie ułatwiłoby to nam życie. Jednym z takich argumentów jest trudność w debugowaniu długich łańcuchów metod w LINQ oraz utrudniona obsługa błędów. Dziś pokażę Wam, że wcale nie jest to tak wielkim problemem. [Więcej]

Deferred execution w LINQ - kiedy wywoływane jest zapytanie?

LINQ jest funkcjonalnością, która zainteresowała mnie w C# praktycznie od początku mojej styczności z tym językiem. Jest to narzędzie naprawdę potężne i w odpowiednich rękach może bardzo usprawnić działanie aplikacji i zwiększyć czytelność kodu. Sęk w tym, że o ile łatwo pisze się wszelkiego rodzaju Selecty, Whery i ToListy, to fajnie byłoby jeszcze wiedzieć co, kiedy i dlaczego dzieje się z danymi w troskliwych, zerojedynkowych łapkach LINQ. [Więcej]

SignalR i AngularJS - Związek doskonały

Mniej więcej 3 miesiące temu zainteresowałem się biblioteką SignalR i bardzo szybko stała się ona jednym z moich ulubionych narzędzi. Z mojego polecenia skorzystało z niej kilka osób i każdy chwalił ją za bardzo szybkie widoczne efekty i banalną implementację. O czym nie wspomniałem w poprzednich postach, to połączenie SignalR z jednym z najpopularniejszych obecnie frameworków JavaScriptowych - AngularJS. [Więcej]

Tworzymy kanał RSS w ASP.NET MVC

Ostatnio stanąłem oko w oko z zadaniem stworzenia kanału RSS. Spodziewałem się czegoś trudniejszego, a zadanie okazało się o wiele prostsze niż myślałem. Być może sposób ten się komuś przyda, więc na wszelki wypadek się nim podzielę. [Więcej]