Cykl autorstwa Macieja Aniserowicza omawiający pisanie testów jednostkowych z wykorzystaniem mocków przy użyciu biblioteki Rhino Mocks.
Architektura 5513 dni, 4 godziny, 21 minut temu 96 źrodło rozwiń
7 rozdziałów z książki "Wstęp do programowania w języku C#" autorstwa Adama Boducha. Przyda się wszystkim początkującym programistom C# :)
Ostatnio w wolnych chwilach pracuje nad protokołem OAuth dla Pocket Blip-a wraz z Filipem Tepperem z Blip.pl, który był tak miły i udostępnił mi jedno konto testowe. Problemy pojawiły się już na początku bo w bibliotekach Compact Framework brakuje implementacji HMAC-SHA1. Chciałem sprawę rozwiązać przez użycie OPENNETCF, które mają ten algorytm zaimplementowany, ale niestety pojawiały się błędy których nijak nie mogłem rozwiązać, bo sypały je biblioteki CF-a.
Mobile development 5526 dni, 6 godzin, 13 minut temu 41 źrodło rozwiń
Jedną z największych bolączek w programowaniu w Compact Framework jest brak implementacji PointF dla platformy Windows Mobile. Mimo braku obsługi w rysowaniu obiektów przy użyciu float Point-a, sama struktura przydaje się w przekształceniach aby uniknąć w nich strat.
Mobile development 5527 dni, 15 godzin, 9 minut temu 27 źrodło rozwiń
W części pierwszej poznaliśmy założenia zadania. Tym razem zaczniemy budować implementację. W tym miejscu wspomnę, że w przeważającej większości zabaw z wyrażeniami lambda oraz składnią imitującą język naturalny warto najpierw napisać przykładowe użycie kodu (jak to zrobiliśmy wcześniej), a dopiero później próbować zrealizować pomysł. Korzystamy z funkcji rozszerzających, więc pierwszą czynnością jest przygotowanie statycznej klasy, w której zamieścimy implementację - nie ma tu nic odkrywczego: publi...
Jednym z założeń wzorca Design by contract jest sprawdzanie poprawności przekazanych do funkcji argumentów. Zapewne w wielu miejscach Twojego kodu możesz spotkać konstrukcje sprawdzające czy przekazane argumenty nie są równe null - praktycznie identyczne w każdej funkcji. W serii artykułów zostanie przedstawiony jeden ze sposobów unifikacji i uniknięcia powtórzeń.
Wspomnę dzisiaj o dość dziwnej funkcji, która została dodana w wersji 3.0 języka C#. Polega ona na możliwości dodania nowych metod do istniejących klas bez zmiany ich definicji. Odbywa się to poprzez zdefiniowanie tych dodatkowych metod jako statycznych (w innych klasach) i użyciu specjalnej składni dla jej pierwszego parametru.
Architektura 5542 dni, 13 godzin, 53 minuty temu 114 źrodło rozwiń
W jednym z poprzednich wpisów opisywałem identyfikację rozdzielczości VGA na urządzeniach Windows Mobile. Pisałem, że kontrolki .NET CE same dopasowują się do aktualnej wartości CurrentAutoScaleDimensions. Tak też działa PictureBox, jednak zawartość kontrolki nie skaluje się automatycznie. A więc jak rozwiązać ten problem?
Mobile development 5545 dni, 21 godzin, 17 minut temu 35 źrodło rozwiń
Coraz więcej urządzeń Windows Mobile dostępnych na rynku posiada ekrany o wysokich rozdzielczościach (VGA i więcej). Jeżeli właściwość AutoScaleMode na formie jest ustawiona na Dpi, twoje kontrolki zostaną dopasowane automatycznie do aktualnej rozdzielczości. Jednakże jeżeli pewne elementy rysujesz ręcznie jak np. grafiki albo używasz ImageList nie zostaną one dopasowane. A więc jak rozwiązać ten problem?
Mobile development 5547 dni, 18 godzin, 19 minut temu 29 źrodło rozwiń
Pisząc programy pod .NET Compact Framework Microsoft dostarcza z Windows Mobile SDK zestaw emulatora urządzenia i skórek pod różne rozdzielczości. Znudzony trochę nieciekawym wyglądem postanowiłem stworzyć własną skórkę. A skoro firma HTC udostępniła HTC Touch Pro2 do testów, wybór był oczywisty.
Mobile development 5553 dni, 27 minut temu 39 źrodło rozwiń
Popełniłem wpis o półprzezroczystych grafikach w .NET Compact Framework. Czas na opis realizacji rysowania grafik z pełnym wsparciem kanału alfa dla każdego pixla z osobna.
Mobile development 5576 dni, 15 godzin, 14 minut temu 60 źrodło rozwiń
Zastosowanie .NET "Extension Methods" Autor: CaMeL Podczas projektowania warstwy “serwisu” (services layer), przez niektórych zwanej warstwą aplikacji (application layer) tak naprawdę nie tworzymy warstwy odpowiedzialnej za przechowywanie logiki biznesowej czy logiki dostępu do danych. Budowa takiej warstwy, a w zasadzie jej działanie to utrzymywanie warstwy biznesowej w taki sposób aby można było z niej korzystać łatwiej i jaśniej....
Po opublikowaniu Microsoft Surface SDK postanowiłem się z nim zaznajomić i popełnić jakąś aplikację. Po obejrzeniu aplikacji do obsługi Twittera - Surface Twitter oczywisty wybór padł znowu na Blipa. Ale po kolei…
Proste, lekkie narzędzie do generowania dokumentacji HTML/CHM na podstawie zestawów .NET i plików XML. Projekt tworzony w języku C#. Alternatywa dla Sandcastle ;)
Chciałbym spróbować wskazać miejsca, gdzie można znaleźć informacje na temat C# i .NET w języku polskim. W moim post'cie skupię się przede wszystkim na blogach. Moja lista i opisy mają charakter dość subiektywny. Nie mam również zamiaru oceniać, czy wskazywać najlepszego. Kolejność została ustalona w sposób nie zamierzony. Mam nadzieję, że nikt nie poczuje się urażony, zarówno tym co napisałem, jak i tym, że mogło go zabraknąć. Uwaga: w liście zostały uwzględnione tylko te blogi, które w ciągu ostatnich ...
Niejednokrotnie podczas pisania aplikacji napotyka się na sytuację gdy jedna metoda produkuje pewne dane, inna natomiast w pewien sposób je konsumuje. Czasem dobrym pomysłem jest, w przypadku gdy produkowane dane są w pewien sposób podzielne na części, wykonywać produkcję i konsumpcję w równoległych wątkach. Tutaj pojawia się istotny problem z zagadnienia wielowątkowości - synchronizacja. Oba (wszystkie) wątki współdzielące dany zasób muszą z niego korzystać w pewien ustalony sposób, tak aby w danej chwi...
Programowanie rozproszone 5600 dni, 13 godzin, 36 minut temu 92 źrodło rozwiń
Przygotowanie serwisu dla systemu operacyjnego Windows jest przy użyciu Visual Studio (VS) bardzo proste. Wystarczy tylko utworzyć nowy projekt na podstawie szablonu "Windows Service" lub do istniejącego projektu dodać nowy element typu "Windows Service". Następnie należy zaimplementować metody...
Programowanie rozproszone 5600 dni, 22 godziny, 55 minut temu 180 źrodło rozwiń
Wśród feature'ów wprowadzonych w wersji 3.5 frameworka .NET jest między innymi LINQ (Language INtegrated Query). Mechanizm ten umożliwia - w dużym skrócie rzecz jasna - konstruowanie zapytań odnoszących się do kolekcji obiektów (w zasadzie dowolnego rodzaju) przy pomocy operatorów znanych z relacyjnych baz danych, jak SELECT czy WHERE. Ponadto w .NET 3.5 język C# został też odpowiednio rozszerzony, aby zapytania ta składniowo mogły przypominać kwerendy podobne do tych występujących w różnych odmianach ję...
Bazy danych i XML 5603 dni, 21 godzin, 45 minut temu 134 źrodło rozwiń
Maciej Aniserowicz: Drugi raz w ciągu kilku dni przytrafiły mi się kłopoty podczas wykorzystania metody Convert.ChangeType(). Scenariusz jest bardzo prostu: mam wartość pobraną skądś-tam (baza danych, http request czy cokolwiek innego) reprezentującą znany mi typ, jednak przechowywaną w postaci stringa. Wszystko śmigało jak trzeba dopóki traktowałem w ten sposób zwykłe liczby i daty. Jakiś czas temu wpadł mi tam Guid, co skończyło się wyjątkiem InvalidCastException. Teraz z kolei to samo p...
Chyba każdy, kto pisał kiedykolwiek aplikacje wielowątkowe, które swoje wyniki prezentowały na kontrolkach WinForms spotkał się z następującym wyjątkiem: System.InvalidOperationException occurred, Message="Cross-thread operation not valid: Control 'MainForm' accessed from a thread other than the thread it was created on.", Source="System.Windows.Forms" Powyższy wyjątek pojawia się, gdy chcemy zmodyfikować zawartość kontrolki z innego wątku, niż ona została wytworzona. W prostszych słowach można powiedz...