Lista artykułów

String.ToEnum

Mając wartość enuma w postaci napisowej, pobraną na ten przykład z bazy, bardzo łatwo jest z powrotem sparsować ją do właściwego dla aplikacji typu: 1: public enum MyEnum 2: { 3: FirstVal, 4: SecondVal 5: } 6: //... 7: (MyEnum)Enum.Parse(typeof(MyEnum), "FirstVal"); Powtarzanie tego w kodzie jest jednak dość męczące. I po raz kolejny świetny mechanizm [...]

String.ToEnum

Mając wartość enuma w postaci napisowej, pobraną na ten przykład z bazy, bardzo łatwo jest z powrotem sparsować ją do właściwego dla aplikacji typu: 1: public enum MyEnum 2: { 3: FirstVal, 4: SecondVal 5: } 6: //... 7: (MyEnum)Enum.Parse(typeof(MyEnum), "FirstVal"); Powtarzanie tego w kodzie jest jednak dość męczące. I po raz kolejny świetny mechanizm [...]

Testy jednostkowe z R# a pliki zewnętrzne, czyli problem z shadow copying

Niekiedy test jednostkowy sprawdza poprawność jakiegoś skomplikowanego algorytmu bądź parsera tekstu bądź czegokolwiek, co wymaga znacznych ilości danych. Zamiast umieszczać te dane w kodzie, niejednokrotnie wygodniej jest po prostu wrzucić je do pliku, plik dodać do projektu i ustawić jego właściwość "Copy to Output Directory" na Always. W normalnej sytuacji pobralibyśmy dane o tak: 1: [...]

Słowo na niedzielę, o (nie)wiedzy

Po przeczytaniu poniższego zdania przerwałem ostatnio lekturę i dałem sobie kilka minut na głębsze się nad nim zastanowienie: Myśleć, że się coś wie to najlepsza obrona przed dowiedzeniem się czegoś Wpasowuje się do idealnie w moje postrzeganie rozwoju zawodowego programisty/architekta. Źródło: Frank Herbert “Bóg Imperator Diuny“.

Słowo na niedzielę, o (nie)wiedzy

Po przeczytaniu poniższego zdania przerwałem ostatnio lekturę i dałem sobie kilka minut na głębsze się nad nim zastanowienie: Myśleć, że się coś wie to najlepsza obrona przed dowiedzeniem się czegoś Wpasowuje się do idealnie w moje postrzeganie rozwoju zawodowego programisty/architekta. Źródło: Frank Herbert “Bóg Imperator Diuny“.

Konfiguracja instalacji IIS na Windows 7

Domyślna konfiguracja instalacji IIS na Win7 nie do końca nadaje się do uruchamiania stron ASP.NET. Ba, "nie do końca" to za mało powiedziane… W przyszłości pewnie natknę się jeszcze na ten problem, dlatego zamieszczam swoją konfigurację, która po prostu działa: I następnym razem zajmie mi to minutę, a nie pół godziny:).

Konfiguracja instalacji IIS na Windows 7

Domyślna konfiguracja instalacji IIS na Win7 nie do końca nadaje się do uruchamiania stron ASP.NET. Ba, "nie do końca" to za mało powiedziane… W przyszłości pewnie natknę się jeszcze na ten problem, dlatego zamieszczam swoją konfigurację, która po prostu działa: I następnym razem zajmie mi to minutę, a nie pół godziny:).

Świergoczę…

Po dość długim okresie ignorowania zjawiska zwanego Twitterem postanowiłem sprawdzić o co w tym chodzi i z czym to się je. Czy miliony użytkowników, w tym ogromna większość szanowanych przeze mnie specjalistów, mogą się mylić? Okaże się. Wiem jedno: nie pozwolę, aby zostawianie za sobą tych małych wirtualnych kupek zwanych potocznie tweetami stało się moim [...]

Świergoczę…

Po dość długim okresie ignorowania zjawiska zwanego Twitterem postanowiłem sprawdzić o co w tym chodzi i z czym to się je. Czy miliony użytkowników, w tym ogromna większość szanowanych przeze mnie specjalistów, mogą się mylić? Okaże się. Wiem jedno: nie pozwolę, aby zostawianie za sobą tych małych wirtualnych kupek zwanych potocznie tweetami stało się moim [...]

Zawód-programista. Zawód-freelancer. Przestrogi.

Minęło circa około ~300 dni od kiedy zostałem freelancerem. Przez ten czas dość regularnie otrzymywałem od Was pytania typu “jak to jest?”, “jak zacząć?”, “jakie są plusy i minusy?”… Czas więc na krótkie zerknięcie wstecz i spisanie kilku porad dla tych, którzy myślą o przejściu na “swoje” i pracy w domu. Freelancowanie może wydawać się [...]

Zawód-programista. Zawód-freelancer. Przestrogi.

Minęło circa około ~300 dni od kiedy zostałem freelancerem. Przez ten czas dość regularnie otrzymywałem od Was pytania typu “jak to jest?”, “jak zacząć?”, “jakie są plusy i minusy?”… Czas więc na krótkie zerknięcie wstecz i spisanie kilku porad dla tych, którzy myślą o przejściu na “swoje” i pracy w domu. Freelancowanie może wydawać się [...]

SynchronizedCollection & LINQ vs thread-safety

W bibliotece System.ServiceModel.dll znajdziemy ciekawą klasę SynchronizedCollection. Szybkie zerknięcie w Reflectora: i nad łysiejącą łepetyną zapaliła się żaróweczka: przecież to idealna klasa do cache dostępnego z różnych wątków aplikacji eliminująca ciągłe pisanie lock! W takim przypadku od stanu wymyślone do stanu zrobione potrzeba jedynie kilkudziesięciu uderzeń w klawiaturę: 1: public class SampleCache 2: { 3: [...]

Logowanie wyjątków podczas testów jednostkowych

Testowanie kodu wielowątkowego jest nie lada wyzwaniem. Teoretycznie powinno się tego unikać, ale czasami nie ma innego wyjścia. Co robić w sytuacji, gdy w komponencie tworzonym podczas naszego testu uruchamiany jest nowy wątek, a w nim wyskakuje wyjątek? Test oczywiście nie przechodzi, ale wcale niekoniecznie musimy wiedzieć dlaczego tak a nie inaczej się stało. Kiedyś [...]

Y++, czyli między(k)rocze 2009/2010

Po długim świąteczno-sylwestrowym relaksie czas na powrót do normalnego życia. Normalne życie w nowym roku można zacząć garścią blogowych refleksji, które sobie za rok przeczytam i sprawdzę jak udało mi się ów rok wykorzystać. A jeśli kogoś jeszcze to interesuje to zapraszam. 2009 Ale najpierw rozgrzebię mogiłę roku poprzedniego i krótki rachunek sumienia uczynię. W [...]

Constructor chaining

Powtarzanie kodu w kilku miejscach zwykle jest sygnałem zaniedbania i nie powinno mieć miejsca. Nawet (a może: w szczególności!) gdy kod ten jest prosty, głupi, niewymagający myślenia i będący efektem tzw. clipboard inheritance (ctrl+c, ctrl+v). Tyczy się to również konstruktorów klas. Tą część kodu łatwo jest przegapić, bo wszelakie ułatwiacze umożliwiają automatyczne ich wygenerowanie. A [...]