MVP, MSSQL, .NET
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 [...]
Jakiś czas temu opublikowałem garść porad dla naprawdę zaczynających z NHibernate – od zera. Była to raczej wysokopoziomowa teoria pomieszana z linkami. Tym razem zajrzymy w kod i pokażę w jaki sposób można zacząć tworzyć i testować aplikację z NHibernate jeszcze przed zaplanowaniem struktury bazy danych czy nawet przed wyborem docelowego serwera baz danych. Paczka [...]
Problem wydaje się banalny i głupi. Jeżeli istnieje jego proste rozwiązanie to znaczy że JA jestem głupi. I banalny. Chodzi o wygenerowanie w zwykłej własnej klasie linka do jakiejś strony w naszej witrynie. Nie po stronie aspx, nie w kontrolerze… po prostu GDZIEŚ. Przez długi czas działała taka konstrukcja: HttpContext.Current.Request.ApplicationPath + "/MyPage/". Jednak jak to [...]
Zbyt wiele razy spotkałem się z takim kodem: 1: private void Form1_Load(object sender, EventArgs e) 2: { 3: btnAddUser.Visible = Thread.CurrentPrincipal.IsInRole("can add user"); 4: btnShowPosts.Visible = Thread.CurrentPrincipal.IsInRole("can show posts"); 5: //... 6: //... 7: //... 8: //... 9: 10: } Naprawdę, pisanie takiego kodu w czasach, gdy programowanie obiektowe nie jest "nowością" (czyli od dobrych [...]
Zdarza się, że napotykam czasami mądrą wypowiedź skłaniającą do refleksji. Albo głupią wypowiedź skłaniającą do uśmiechu. Albo interesującą wypowiedź wartą przeczytania. Albo sam w niespodziewanym przebłysku inteligencji wymyślę coś, czemu można nadać miano… “aforyzmu”? I raz na jakiś czas (w założeniu – co siedem dni… Siódmego Dnia Napisał) będę takiego krótkiego posta zamieszczał, w sam [...]
Niedawno opublikowałem posta o tym, jak nie należy pisać testów jednostkowych. Przytoczony przykład powodował bezsensowną duplikację kodu w aplikacji i testach. Dzisiaj bardzo krótka demonstracja tego, jak można zastosować atrybut ValuesAttribute z NUnit 2.5 do wygenerowania testów dla więcej niż jednej wartości naraz. Testować będziemy klasę, która oblicza 22%-ową stawkę podatku VAT. Jej implementacja jest [...]
Wielki owóż nastąpił przewrót w życiu moim zawodowym (i chyba w sumie nie tylko), gdyż wreszcie, po 4 miesiącach zwlekania, stareńkiego XP zastąpiłem nowym 7. I poszło zadziwiająco zgrabnie, 2 dni konfiguracji i prawie (…) wszystko działa tak jak chcę! Wrażeń opisywać nie będę, ponieważ pewnie większość z was i tak zdanie ma już wyrobione. [...]
Ostatnio pisałem o AutoMapperze, a kiedyś wcześniej o NHibernate. Dzisiaj złączę te dwa narzędzia niczym Jasia i Małgosię, Tristana i Izoldę, Lecha i Jarosława, a z ich nawzajemnego obcowania narodzi się problem, który dość łatwo przegapić. Wróćmy do przedstawionych ostatnio, banalnych klas: 1: public class User 2: { 3: public virtual int Id { get; [...]
MVP, MSSQL, .NET
Programista-pasjonat. Człowiek od wszystkiego związanego z programowaniem. Autor bestsellerowej książki “Zawód: Programista“.
Od 2008 posiadacz tytułu Microsoft MVP (Most Valuable Professional) w kategorii .NET.
Od 2005 Microsoft Certified Professional.