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 logowania wybór jest dość naturalny (wypasiony log4net), o tyle z wyjątkami [...]
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) implementująca założenia programowania reaktywnego by Microsoft. Nie będę zagłębiał się [...]
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łupie… A co to za konstrukcja? O tym wkrótce.
"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": IIdentity: 1: public class ProcentIdentity : GenericIdentity 2: { 3: public int Id; 4: 5: public ProcentIdentity(int id, string [...]
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ład w artykule "Extending WCF with Custom Behaviors"). Z ich pomocą można osiągnąć baaardzo wiele, między innymi: [...]
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ście NIE jest wyborem słusznym, rozpisywać się nie będę. Zainteresowanych argumentami "przeciw" odsyłam [...]
Jakiś czas temu pod koniec jednego z programistycznych rajdów od świtu do świtu pojawiło się zapotrzebowanie na funkcjonalność "masz tu liczbę i zwróć X jej ostatnich cyfr w postaci stringa; w razie potrzeby wypełnij jego początek zerami". Wydaje się banalne i byłem pewny, że w ciągu kwadransa załatwię to odpowiednim formatowaniem integera. Po półtorej godziny [...]
Jeden z bardziej znanych programistów i trenerów .NET wymyślił chwytliwe zawołanie, od tamtej pory niezmiennie z nim kojarzone. Zawołaniem tym kończy każdy post na swoim blogu. Dawno temu zachwycony myślałem, że te trzy słowa potrafią otworzyć każde programistyczne wrota. Że są wszystkim, wystarczającym do codziennych zmagań. Potem życie zweryfikowało te naiwne ułudy i okazało się, [...]
Tworząc standardowe mapowania NHibernate za pomocą plików XML trzeba pamiętać o kilku rzeczach, które bardzo łatwo przeoczyć. Po ich przeoczeniu program nie działa i wywala błędy, a ich treść nie zawsze nakierowuje na przyczynę. Najlepszym tego przykładem jest chyba konieczność oznaczania plików mapowań jako "embedded resource". Fluent NHibernate znacznie upraszcza sprawę, ale i przy nim [...]
Dość rzadko zdarza mi się wychodzić z domu w celu innym niż pobliski spożywczy-monopol. A trzykrotne udanie się w jakieś miejsce w ciągu jednego tygodnia to coś zaiste niesamowitego. Postanowiłem uczcić to zjawisko notką (zapewne bardziej interesującą dla mnie samego za pół roku niż dla kogokolwiek teraz) tym bardziej, że dwa z owych trzech wydarzeń [...]
Jeśli taką klasę: 1: public enum Gender 2: { 3: Male = 1, 4: Female, 5: } 6: 7: public class User 8: { 9: public virtual int Id { get; set; } 10: public virtual string UserName { get; set; } 11: public virtual Gender Gender { get; set; } 12: } 13: zmapujemy [...]
W wielu organizacjach ścieżka kariery wygląda (w sporym uproszczeniu i uogólnieniu) mniej więcej tak: bezmyślny klepacz kodu -> myślący klepacz kodu -> architekt -> manager -> … dalej nieważne. Po awansie znakomitego, doświadczonego, sprawdzonego programisty na stanowisko managera zespół traci znakomitego, doświadczonego, sprawdzonego programistę zyskując niedoświadczonego, kształconego w innym kierunku managera. Możliwe rozwiązanie problemu? Podwyżka [...]