Niejednokrotnie pisałem o SVN, zachwycając się cudownością tego narzędzia. Wpłynęło ono na moje życie zawodowe dość znacząco - tak naprawdę od niego zacząłem przygodę z kontrolą wersji. A kontrola wersji całkowicie zmienia sposób pracy, o czym przekonał się każdy kto zaczął korzystać z jakiegokolwie...
[More]
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), "FirstV...
[More]
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...
[More]
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ł...
[More]
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...
[More]
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 ...
[More]
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ą ...
[More]
W bibliotece System.ServiceModel.dll znajdziemy ciekawą klasę SynchronizedCollection<T>. 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 pr...
[More]
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 ni...
[More]
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 roz...
[More]
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ęść kod...
[More]
Tak prawdziwe, a często musimy się tego nauczyć... "the hard way": An untested backup strategy is no backup strategy at all! Źródło: Phil Haack.
Jakiś czas temu z dużego projektu nad którym obecnie pracuję zostały całkowicie usunięte i zaorane biblioteki Enterprise Library. I życie stało się prostsze. Wykorzystywaliśmy je jedynie do logowania i obsługi wyjątków i JAKOŚ trzeba było te funkcjonalności w systemie zachować. O ile w przypadku log...
[More]
Ostatnio natknąłem się na coś, co... blew my mind (wydymało mi umysł?). Bardzo krótko wspomniał o tym Bartek Pampuch na ostatnim MTS i utkwiło mi w pamięci, ale dopiero kilka dni temu niechcący przyjrzałem się "owemu czemuś" bliżej. Owo cuś to biblioteka Reactive Extensions (Rx) implementu...
[More]
Mądre słowa mądrego człowieka. Odnoszą się do tworzenia oprogramowania, ale pewnie nie tylko tam mają zastosowanie: Simplicity is prerequisite for reliability. Warto o tym pamiętać w programistycznym szale:). Źródło: Edsger W.Dijkstra.
Czy poniższy kod nie jest doskonałym odwzorowaniem odpowiedzi na pytanie "dlaczego programiści nie pracują w Święta?"? :) 1: Observable.Timer(new DateTime(1, 12, 25))
2: .Subscribe(x =>
3: {
4: throw new Exception();
5: });
Heh, ależ to głup...
[More]
"Bezpieczeństwo w WCF" - pojęcie takie wydaje się oklepane i opisane na wszelkie możliwe sposoby. Tyle materiałów, tyle blogów, artykułów, książek... Chciałem osiągnąć rzecz bardzo prostą, właściwie - podstawową. Zacząłem od stworzenia własnej implementacji interfejsów "tożsamości&qu...
[More]
Projektanci WCF zostawili w swoim produkcie bardzo dużo półprzymkniętych furtek czekających tylko na odkrycie i wykorzystanie ich potencjału. Jednym z takich czarodziejskich otworów do przyjemnego, różowego, miękkiego wnętrza WCF jest infrastruktura Behaviors (więcej o, między innymi, nich, na przyk...
[More]
Ostatnio było banalnie. Dziś słowa osoby niezwiązanej właściwie z informatyką, ale nadające temu banałowi głębszy sens. you can go complaining about how you lack passion (...) passion is something that likes to be conquered Źródło: "Night of the Living Dead" by Julia Marcell
Podczas korzystania z WCF najprostszą drogą do wywołania metody udostępnianej przez jakąś usługę jest pozwolenie Visual Studio na wygenerowanie odpowiedniego proxy, stworzenie jego instancji... i już - mamy metody usługi do dyspozycji. Bez wysiłku, bez kodu... bez sensu? O tym, dlaczego takie podej...
[More]