Jeden z czynników, który warunkuje dobrego programistę, to umiejętność tworzenia elastycznego i niepowtarzalnego kodu. Jeśli jakiś element naszego kodu jest powtarzalny, bądź schematyczny, to z pewnością warto się zastanowić nad napisaniem metody, która zawrze ten kod i będzie mogła być wykorzystana wielokrotnie. Napisana przez nas aplikacja stanie się bardziej przejrzysta i z pewnością zmaleje również ryzyko popełnienia błędu, a wszelkie zmiany będzie można wykonać w jednym miejscu. Podobnie sprawa wyg...
Architektura 4907 dni, 22 godziny, 28 minut temu 298 źrodło rozwiń
Ostatnio rozgryzałam Reflectorem BindingListe natrafiłam na taki kod...
Dlaczego nie lubię override Equal? Wszystko jest dla ludzi. Pewnie się nawet zbłaźnię tą opowieścią :] Ostatnio poszukiwałam błędu w kodzie, w którym przeciążone były funkcje Equals (o czym dowiedziałam się po znacznym czasie spędzonym z debuggerem), a czasem także ==. Błąd okazał się dość paskudny bo był nieprzewidywalny. Problem był po dodaniu elementu do kolekcji - nagle zwracane były nieprawidłowe elementy z kolekcji. Na pierwszy rzut oka Equals wyglądał dobrze, zgodnie z zasadami zalecanymi pr...
Podwójnie wywołane zdarzenie w Windows Phone 7 Bawiąc się trochę z Windows Phone natrafiłem na problem, który był dość często zgłaszany w przypadku kontrolki TextBox. Błąd jest śmieszny - w emulatorze zdarzenie jest wywoływane dwukrotnie. Błąd ten w moim projekcie pojawił się w przypadku kontrolki TextBlock i obsługi kliknięcia. W projekcie potrzebowałem zrobić kontrolkę, która będzie zawierała CheckBox oraz dwa pola tekstowe – TextBlock. Każde kliknięcie na TextBlock miało zmieniać stan kontrolki...
Mobile development 4943 dni, 22 godziny, 38 minut temu 42 źrodło rozwiń
Witajcie w trzeciej części tutoriala do WPF. W dwóch poprzednich wpisach (WPF Tutorial - wprowadzenie oraz WPF Tutorial - obsługa kontrolek), powiedzieliśmy sobie m.in o: WPFie ogółem Języku znaczników XAML Podstawowych właściwościach WPF Kontrolkach Ponieważ wiemy już całkiem sporo, to czas dowiedzieć się, czy z tych informacji można zrobić jakiś sensowny użytek, np. budując prosty, tytułowy kalkulator:) Jeśli zatem chcecie wykorzystać zgromadzoną dotychczas wiedzę, do zbudowania czegoś praktycznego...
Architektura 4943 dni, 1 godzinę, 33 minuty temu 361 źrodło rozwiń
Autor: Ostatnio, przez ponad pół roku, wraz z Wojtkiem Poniatowskim, Mirkiem Pragłowskim, Tomkiem Wiśniewskim prowadziliśmy kurs C# na portalu VirtualStudy. Kurs przeznaczony był dla osób początkujących ale dzięki temu miałem możliwość zobaczenia jakie elementy .NET i C# sprawiają najwięcej trudności osobom, które dopiero zaczynają swoją przygodę z tą technologią. Jeśli masz choć trochę doświadczenia z .NET to zapewne nie znajdziesz tu zbyt wielu przydatnych informacji. Tak czy inaczej zapraszam do czyta...
W poprzedniej i zarazem pierwszej części tutoriala do WPF, powiedzieliśmy sobie co nieco na temat samego WPF, zawartego w nim języka XAML oraz menadżerów układów. Dziś przyszła kolej na kontrolki, bez których w GUI, nie było prawdopodobnie by niczego. Co należy rozumieć jako kontrolkę? Są to wszystkie buttony, gridy, listy, comboboxy itp. itd. Każda z kontrolek, posiada pewien wspólny zestaw właściwości, które bierze się z reguł dziedziczenia zawartych w WPFie (patrz akapit o drzewach). Oprócz tego, kon...
Kolejny dzień kolejny wpis na blogu. Postawiono przede mną zadanie poprawy wydajności aplikacji w kontekście dodania do niej wielu wątków roboczych. Zadanie proste i banalne używając .NET. W związku z tym dziś słów kilka o klasie ThreadPool . Dzięki klasie ThreadPool i jej metodzie ThreadPool.QueueUserWorkItem sprawa jest naprawdę prosta. Jej użycie sprowadza się do "powiedzenia w C# - hej jest robota do wykonania niech ją ktoś dla mnie wykona w wolnej chwili". Naprawdę ... to takie proste. Oczywiście ta...
Do grona rzeczy, które wyróżniają aplikację, już na pierwszy rzut oka, najczęściej z pewnością możemy zaliczyć jej GUI, czyli innymi słowy wartstwę prezentacji. W .Necie, praktycznie od zawsze, GUI tworzyło się za pomocą dość wygodnych Windows Forms, które za pomocą metody Drag & Drop (Przeciągnij i upuść) pozwalały na szybkie tworzenie wizualnego obszaru naszej aplikacji, często bez napisania nawet jednej linijki kodu. Istotą takiego podejścia, było użycie absolutnego pozycjonowania elementów, względem ...
Dzisiaj króciutki psot na temat różnic między słowem kluczowym const a read-only. Oba słowa służą do deklarowania zmiennych niemodyfikowalnych. Jaka jest więc różnica? const:Nie może być deklarowane z modyfikatorem static – stanowiłoby to pewną nadmiarowość ponieważ stałe odwołują się w końcu do całej klasy a nie instancji (skoro nie mogą być zmodyfikowane nie ma sensu istnienia kopii dla każdej z instancji).Wartość jest przypisywana w czasie kompilacji.Wartość można ustawiać wyłącznie w deklaracji (co ...
Informacja dla tych, którzy chcieliby poczytać o programowaniu wielowątkowym w C# (i dla mnie bym nie musiał kolejny raz „googlać” tego linku) polecam przeczytanie książki „Threading in C#” autorstwa Joseph Albahari.
Programowanie rozproszone 5004 dni, 6 godzin, 29 minut temu 260 źrodło rozwiń
Wpis warty polecenia dla wszystkich, którzy zastanawiają się nad skorzystaniem z oferty Cloud Computing oferowanej przez firmę Microsoft. Sporo uwag praktycznych na temat Windows Azure oraz cennik usług w praktyce.
Gdy zaczynałem swoją przygodę z programowaniem czułem się jakbym szedł przez mgłę – uczyłem się różnych rzeczy, ale nie wiedziałem czy przydadzą mi się, jak mają się do prawdziwych projektów. To tak jak z czytaniem książek czysto teoretycznych o c# – jest sporo wiedzy, ale najczęściej suche opisanie co to jest i tyle. Brakowało mi tego obejścia z czym to się je, jak wykorzystać to w praktyce. Te...
Ojj od dawna już nie pisałem, choć wiele razy miałem pomysł ale czasu było za mało ;/ Trochę się działo – zmiana pracy na bardziej ambitną (jupi! co dzień głowa mi ledwo zipie od zdobywania kolejnych ciekawych doświadczeń) oraz związana z tym zmiana trybu studiów....
Autor: Dzisiaj kolega podesłał mi swoistą zagadkę w postaci dwóch, pozornie robiących to samo, fragmentów kodu. Jeden napisany w C#, a drugi w VB.NET: int counter = 0; while (++counter Dim counter As Integer = 0 While (++counter Różnica polega na tym, że pętla w C# wykona się 9 razy, a w VB.NET otrzymamy pętlę nieskończoną. Dlaczego? Przyjrzyjmy się dokładniej pętli napisanej w języku VB.NET. Ci z was, którzy programują lub programowali w tym języku zapewne zwrócili uwagę na użycia operator...
We wpisie dostępna jest customowa implementacja Membership Providera i RoleProvidera do bazy MySQL 5.1+, która wnosi sporo usprawnień w zakresie wydajności i bezpieczeństwa oraz jest łatwo dostosowywalna do własnych potrzeb
W mojej pierwszej „zawodowej” pracy na stanowisku programisty miałem okazję programować w VB.NET. Wbrew wielu opiniom uważam, że to bardzo przyjazny język i programuje się w nim bardzo fajnie. Po przesiadce na C#, poza koniecznością wstawiania średnika na końcu każdej linii, zaskoczył mnie brak możliwości zdefiniowania parametru domyślnego w metodzie. Trochę to zajęło, ale i C# w końcu „dorobił” się tej funkcjonalności.
Prosty turorial pokazujący jak stworzyć prosty kalendarz w MVC3 używając silnika Razor - prezentowany kod może posłużyć jak podstawa do implementacji dowolnej funkcjonalności używającej graficznej reprezentacji kalendarza ( dostępność, rezerwacje i inne )
Tworząc różnego rodzaju programy czasami pojawia się problem zapewnienia autentycznością plików. Sytuacja taka ma miejsce, gdy w plikach tych znajdują się bardzo ważne dane, których zmiana mogłaby doprowadzić do wygenerowania różnego rodzaju strat. Takimi plikami mogą być pliki licencji, zawierające dane finansowe, czy dane medyczne, itp. Problem ten można rozwiązać w bardzo prosty sposób używając plików XML. Wystarczy, że podpiszemy plik XML i sprawdzimy ten podpis przed ponownym użyciem pliku. Jeśli bę...
W trakcie pisania kodu przyzwyczailiśmy się już do tego, że należy równolegle pisać testy. Podejść, kiedy i jak pisać testy jest wiele. Do wyboru mamy też kilka dostępnych frameworków testowych, ale nie o tym chciałem napisać. W tym artykule chcę poruszyć temat badania pokrycia kodu testami.W trakcie pisania testów niejednokrotnie występuje potrzeba sprawdzenia, które fragmenty kodu pokryte są testami, a które nie.