← Język C# w całej swojej świetności ma również masę ograniczeń, oczywiście wszystko dla naszego dobra Jednym z takich ograniczeń jest dziedziczenie maksymalnie po tylko jednej klasie (ale za to po wielu interfejsach). Co czasem może okazać się nie lada wyzwaniem Zapraszam więc do lektury. Najczęstszym i najłatwiejszym rozwiązania problemu niemożności dziedziczenia po wielu klasach jest zamiana dziedziczenia na kompozycję (czy to jedn...
Strona głównaUżytkownik
mmichalf | użytkownik
Sztuka programowania 3077 dni, 13 godzin, 13 minut temu 168 źrodło rozwiń
← Czy interfejs może zawierać metodę wraz z jej implementacją ? Czyli trochę hackowania w C# Opublikowano, autor:Tomasz J Język C# w całej swojej świetności ma również masę ograniczeń, oczywiście wszystko dla naszego dobra Jednym z takich ograniczeń jest dziedziczenie maksymalnie po tylko jednej klasie (ale za to po wielu interfejsach). Co czasem może okazać się nie lada wyzwaniem Zapraszam więc do lektury. Najczęstszym i najłatwiejszym rozwiązania problemu niemożności dziedziczenia po wielu klasach...
Sztuka programowania 3074 dni, 18 godzin, 39 minut temu 369 źrodło rozwiń
Został raptem tydzień do końca maja, a co za tym idzie oficjalnego zakończenia konkursu Daj Się Poznać 2016. Nie będę oryginalny, ale ostatni z wymaganych postów będzie krótkim podsumowaniem tego co działo się przez 3 ostatnie miesiące.
Daj się poznać 2016 3082 dni, 6 godzin, 21 minut temu 147 źrodło rozwiń
The last day of the Daj Się Poznać competition in which I’ve gladly participated has finally come. It was full 3 months of intense work, blogging and literally trying in different ways to become a little more recognizable in the IT community. Was it worth it? Was it difficult? Would I do the same thing again? I can give you a short answer of 3xYES, however, I’d like to invite you to read the whole summary as you may find some helpful content here that could provide answers for some of your doubts or que...
Daj się poznać 2016 3080 dni, 9 godzin, 27 minut temu 52 źrodło rozwiń
Przy okazji ostatniego wpisu konkursowego zapowiedziałem serię wpisów poświęconą CQRS oraz event sourcing-owi. Posty oczywiście wkrótce się ukażą, ale dziś chciałbym w ramach tej tematyki omówić nowy „mechanizm”, który zagości w siódmej wersji naszego ulubionego języka Wyobraźmy sobie, że naszym zadaniem jest implementacja odtwarzania stanu obiektu ze zdarzeń, które przetrzymujemy w tzw. Event Store. Zdarzenia wyglądają następująco: public class Event { public Guid AggregateId { get; set; } }...
Sztuka programowania 3078 dni, 13 godzin, 9 minut temu 262 źrodło rozwiń
Hej! często w systemach, które implementujemy zachodzi potrzeba aktualizacji jednej kolumny w bazie danych. Przykładowo, tabela Usermoże posiadać flagę IsLocked, która będzie informowała o tym, czy użytkownik jest zablokowany. Chcąc zaimplementować metodę blokującą delikwenta, część pomyśli o następującej implementacji: public async Task LockUserAsync(string id) { var context = new DbContext(); var user = context.Users.SingleOrDefault(u => u.Id == id); user.IsLocked = true; ...
W C# 7.0 operator Is, a konkretniej dopasowywanie typów, zostało ulepszone. We wcześniejszych wersjach, byliśmy zmuszeni do pisania kodu. Jeśli zmienna jest danego typu, automatycznie zostanie zrzutowana. Innymi słowy, za pomocą jednego operatora wykonujemy 3 operacje: sprawdzenie typu, zrzutowanie oraz wykonanie instrukcji warunkowej. W poprzednich wersjach, możliwe było zrobienie czegoś podobnego, ale powstały kod zwykłe był mniej przejrzysty.
Architektura 3117 dni, 19 godzin, 25 minut temu 357 źrodło rozwiń
In today’s post I’m going to briefly describe one of the latest watchers designed especially for the disk & file monitoring. If you’re looking for a new plugin to the Warden that will allow you to ensure e.g. that all of required files are available – you’ve found the right place.
Daj się poznać 2016 3115 dni, 18 godzin, 52 minuty temu 51 źrodło rozwiń
Dlaczego same zera pojawiły się przy pierwszym uruchomieniu biblioteki easyGALib i co było przyczyną takiego zachowania algorytmu.
Daj się poznać 2016 3113 dni, 16 godzin, 31 minut temu 77 źrodło rozwiń
Kilka słów o implementacji rozwiązania problemu komiwojażera za pomocą algorytmu genetycznego i pierwsze uruchomienie easyGALib.
Daj się poznać 2016 3113 dni, 16 godzin, 31 minut temu 53 źrodło rozwiń
Projekt MemoryVisualizera toczy się w kilku wątkach, ale jak na razie dość mało poświęciłem jednemu z najważniejszych - analizy pamięci. Planuję bardziej rozbudowany post o tym jak można się do pamięci dobrać i co tak naprawdę siedzi pod spodem. Na razie jednak jako "zajawkę...
Daj się poznać 2016 3113 dni, 16 godzin, 31 minut temu 35 źrodło rozwiń
Wpis tłumaczący wykorzystanie projektu Win2d dla wydajnej generacji bitmap. W poście opisywane jest wykorzystanie frameworka w celu aktualizacji kafelków aplikacji w tle.
Mobile development 3112 dni, 18 godzin, 22 minuty temu 51 źrodło rozwiń
Cześć! Dziś wpis, który powstał przez przypadek. Jak mawia stare chińskie przysłowie: There are only two hard things in Computer Science: cache invalidation and naming things. Taaaak, każdy to zna 😉 Pytania o to jak nazwać zmienną, metodę czy klasę to standard jeśli chodzi o programowanie. Wynika to z kilku rzeczy. Po pierwsze chcemy mieć pewność, że nazwa dokładnie oddaje istotę danego „bytu”, po drugie każdy ma swoje standardy nazewnictwa, które mogą nie być tak oczywiste dla innych jak dla n...
Daj się poznać 2016 3112 dni, 18 godzin, 22 minuty temu 147 źrodło rozwiń
Jest kwiecień. Plecień, przeplata, zaraz matury. W mailach od Was również przeplatają się różne tematy, ale kilka pojawia się bardzo często. Jeden z nich to: studia. Po co one programiście? Studiować czy… olać? Ja studia skończyłem około dekadę temu, a dzisiaj wreszcie, po prawie trzech latach pisania, udało się skomponować tekst na ten temat. Zapraszam do lektury i dyskusji. Czas jest odpowiedni.
Post/Redirect/Get or PRG in short is a common pattern used amongst many web applications, that was designed to prevent duplicate submissions of the forms. Not using such pattern may result e.g. in multiple transactions by POSTing the same form twice, which is something that we definitely do not want to see in our applications. Although, it’s quite easy to be implemented in it’s purest form, it’s a little bit more tricky if we want to save the input data provided by the user (let’s say the form has a lo...
Daj się poznać 2016 3110 dni, 19 godzin, 15 minut temu 157 źrodło rozwiń
Czemu o tym piszę? Ostatnio czytając internety i sięgając pamięcią do moich doświadczeń doszedłem do wniosku, że czasem ktoś usprawiedliwia przez YAGNI pisanie mniej elastycznego kodu. Nawet, jeśli sam rozumie dlaczego pisanie takiego kodu jest dobre.
Sztuka programowania 3111 dni, 17 godzin, 51 minut temu 286 źrodło rozwiń
Większość ludzi których znam, nie lubi regexa. Wolą żmudnie wpisywać string.IndexOf niż nauczyć się przepotężnego narzędzia. Z tymi indexOf to w ogóle kupa problemów jest. Ostatnio okazało się, że jak delikatnie zmieni się struktura HTML’a to IndexOf przestaje działać. Ja, czuły na to, poniżej chciałbym pokazać jak rozwiązaliśmy pewien problem i użyć “power of regex”.
Sztuka programowania 3109 dni, 17 godzin, 6 minut temu 144 źrodło rozwiń
Walidacja dynamicznego modelu z Fluent Validation.
Sztuka programowania 3109 dni, 17 godzin, 6 minut temu 88 źrodło rozwiń
What is Interactive Extensions? It's a set of additional LINQ to Objects query operators based on the Reactive Extensions. This post covers all available API.
Sztuka programowania 3109 dni, 10 godzin, 31 minut temu 90 źrodło rozwiń
MVC jest królem! Z modelu, przez kontroler, do widoku! Mówili. Słuchaliśmy. Polegliśmy. Niezależnie od wykorzystywanej technologii czy frameworka: jeżeli “dziubiesz webówki” to prawdopodobnie działasz w MVC. I to “C” może reprezentować różne pojęcia. Czasami jest to Controller, czasami Module, czasami coś jeszcze innego.
Sztuka programowania 3108 dni, 19 godzin, 29 minut temu 263 źrodło rozwiń