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 [...]
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 [...]
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: [...]
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“.
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“.
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:).
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:).
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 [...]
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 [...]
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ę [...]
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ę [...]
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: [...]
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ś [...]
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 [...]
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 [...]