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; [...]
W każdej aplikacji klient-serwer następuje komunikacja. Masło maślane – gdyby nie było komunikacji, nie byłoby aplikacji klient-serwer. Pomiędzy klientem i serwerem muszą być przesyłane jakieś dane. Szymon pisał jakiś czas temu o tym dlaczego warto wyrzucić ze swojej architektury DTOs, czyli Data Transfer Objects. Ja natomiast przedstawię pokrótce narzędzie, które pozwoli bardzo efektywnie WYKORZYSTAĆ koncept [...]
Minął ponad rok od kiedy zwiększyłem swój "obszar roboczy" ponad 2x: do 19" Benq dorzuciłem 24" Hyundai. Od kiedy zmieniłem miejsce pracy na domowe zacisze krok ten doceniam oczywiście o wiele bardziej niż wcześniej, gdy w domu programowałem jedynie hobbystycznie. I któregoś pięknego dnia zapaliła się w nienasyconej głowie lampka: "a może by tak… jeszcze [...]
Podczas pisania testów jednostkowych możemy natknąć się na problem uprawnień – co jeśli testowana metoda wymaga, aby użytkownik był zalogowany, miał określoną nazwę bądź był przypisany do konkretnej roli? Nie chcemy przecież, aby testy jednostkowe w jakiś sposób logowały się do naszej aplikacji. Rozwiązaniem jest pomocnicza klasa, którą napisałem z wykorzystaniem frameworka Moq: 1: public [...]
Wielokrotnie zdarzało mi się, że budziłem się rano i na samą myśl o kolejnym dniu w pracy robiło mi się niedobrze. Czy też tak czasami macie? Pomimo całej świetności naszego zawodu, ogromnej gamy wyzwań i oczekujących na rozwiązanie pasjonujących problemów, bycie programistą może czasami dać się nieźle we znaki. Post ten jest kierowany nie tyle [...]
Testy jednostkowe pełnią dwie bardzo ważne role: poprawiają design aplikacji sprawdzają czy kod jest poprawny Drugi aspekt można rozumieć dwojako… Spójrzmy na przykładową metodę kalkulatora: 1: public class Calculator 2: { 3: public int Add(int first, int second) 4: { 5: return first + second; 6: } 7: 8: // more operations... 9: } Jej [...]
Ostatnio miałem kolejne podejście do NHibernate. Tym razem zdecydowanie udane. W ciągu minionych kilku tygodni trzykrotnie prowadziłem też w "swoim środowisku" rozmowę na temat taki jak w poście – jak zacząć przygodę z NHibernate? Postanowiłem więc, że warto efekt takiej rozmowy opublikować szerszemu gronu. 1. Spróbuj Stwierdzenie pierwsze: jeżeli kiedyś odbiłeś się od NH, jeżeli [...]
Ależ chwytny tytuł! I groźny. Ale zobaczmy: demon (za Wikipedią) – proces, który pracuje w tle bez konieczności interakcji z użytkownikiem Mniej więcej tak można określić moją egzystencję przez kilka ostatnich (i jeden przyszły) tygodni. Siedzę sobie w tle otoczony przez monitory i jedyną słuszną muzykę, pracuję, i wszelką interakcję z kimkolwiek ograniczam do minimum [...]
29 i 30 września 2009 to dni spędzone w Pałacu imienia Józefa Stalina na konferencji Microsoft Technology Summit 2009. Tak jak rok temu postaram się przedstawić swoje wrażenia, więc zainteresowanych zapraszam do lektury a innych uczestników do dodawania swoich opinii w komentarzach. Słowem wstępu… Start rejestracji na konferencję niestety przegapiłem, ponieważ pomykałem wówczas po europejskich [...]