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.
Polecenia ping nie trzeba nikomu chyba przedstawiać. Służy ono do diagnozowania połączeń sieciowych. Dzięki niemu można sprawdzić, czy istnieje połączenia między dwoma hostami, jaka jest jakość tego połączenia oraz jakie występują opóźnienia. Dodatkowo jeśli podajemy adres hosta nie w postaci adresu IP to możemy zdiagnozować, czy poprawnie rozwiązywane są nazwy przez serwer DNS.
Wpisy na temat śledzenia i logowania w .NET pojawiały się już wcześniej na tym blogu (np. „Śledzenie i logowanie zdarzeń (tracing and logging) na platformie .NET (przykłady w oparciu o C#).” i „Śledzimy w .NET dalej (dzisiaj uruchomimy własny podsłuch)”). Mechanizm wykorzystania elementów platformy .NET, jak: TraceSource, TraceListener i innych związanych z nimi jest dość wygodny, tym bardziej, że są dostępne gotowe klasy typu TraceListener zapisujące w plikach logi przy pomocy XML-a lub w których każdy ...
Przyznam szczerze, że dotychczas z komunikacją między różnymi aplikacjami lub ich warstwami spotykałem się głownie w aspekcie usługowo-webowym. Taki scenariusz sprowadza się do takiego a nie innego wykorzystania webservice lub pochodnego ustrojstwa. Co jednak można zastosować jeżeli chcemy aby dwie nasze aplikacje miały możliwość pogadania ze sobą na lokalnej maszynie? Rozwiązań jest sporo albo i jeszcze więcej. Poczynając od SendMessage z Win32 API, współdzielonej pamięci, webservice, TCP, COM, DCOM n...
Programowanie rozproszone 3687 dni, 18 godzin, 19 minut temu 188 źrodło rozwiń
Na oficjalnym blogu The Windows Phone Developer Blog od jakiegoś czasu pojawiają się bardzo ciekawe porady o tworzeniu oprogramowania na telefony Windows Phone.
Mobile development 3721 dni, 9 godzin, 40 minut temu 52 źrodło rozwiń
Podczas projektowania aplikacji jedną z kluczowych kwestii jest wyodrębnienie potencjalnie czasochłonnych operacji z kodu, oraz przystosowanie ich do działania w osobnych wątkach. Gdy w grę wchodzi GUI, czynność ta jest wręcz niezbędna. Standardowym modelem jest przygotowanie wszystkich danych wejściowych dla długotrwałego procesu i przekazanie ich do nowego wątku; tam też rozpoczynając asynchroniczną pracę. Po jej zakończeniu, odbieramy wyniki i już bez znaczących przestojów możemy odpowiednio na nie za...
Kilka dni temu, ktoś na stronie devPytania.pl poprosił o kod przykładowej implementacji Stosu (ang. Stack) i Kolejki FIFO (ang. Queue) przy użyciu tablic. Miałem chwilę wolnego czasu, więc postanowiłem pomóc – efektem tego jest poniższy kod...
autor: Nawiązując do postu poniżej, wczoraj odbyła się pierwsza sesja kursu na temat C#. W związku z tym fajnie jest się pochwalić, że przyciągnęła ona aż 634 osoby w pewnym momencie! Może nas nie wpiszą do księgi Guinnessa, ale naprawdę super, że tak wielkie zainteresowanie wzbudził ten kurs, a w naszych polskich realiach jest to wynik rekordowy! Pojawiły się oczywiście głosy próbujące zanegować słuszność tych wyników, że to mogą być zdublowane osoby i w ogóle… P...
Maciej Aniserowicz: W imieniu portalu VirtualStudy.pl zapraszam Was na półroczny kurs C# (a właściwie .NET) online. Niezależnie od tego czy już umiesz programować czy dopiero chcesz się nauczyć - na pewno warto skorzystać z okazji. Wcześniej takiej nie było, i pewnie nieprędko się powtórzy. Tym bardziej że prowadzący to naprawdę łebskie ziomy i zdecydowanie można się od nich wiele nauczyć:). Moim zdaniem świetna inicjatywa.
Dzisiejsza historia oparta jest, w większości, na faktach. Ukryliśmy tylko imię naszego programisty. Był sobie Tomek programista. Tomek miał do napisania w C# fragment większego algorytmu. Jako, że kod był dobrze podzielony mogło to zrobić wiele osób. Jedną z rzeczy które miały być w tym fragmencie było stw...
Architektura 3748 dni, 10 godzin, 19 minut temu 117 źrodło rozwiń
Od 25 listopada w ramach portalu VirtualStudy.pl rozpoczyna się kurs, który będzie trwał aż 6 miesięcy. Na każdy tydzień miesiąca przypada jedna sesja, która rozpoczynać się będzie o godzinie 20:30. Tematyką kursu będzie programowanie w języku C#. Prelegenci Daniel Dudek, Mirosław Pragłowski, Paweł Łukasik, Tomasz Wiśniewski oraz Wojciech Poniatowski przygotowali aż 24 sesje rozpoczynające się od wprowadzenia do kursu, podstaw programowania aż po wzorce projektowe oraz usługi sieciowe.
Po chwilowej przerwie w blogowaniu postanowiłem wrócić to tego niezwykle przyjemnego zajęcia. Dziś chciałbym przedstawić zagadnienie zdarzeń rozproszonych jakie można zastosować w aplikacjach klient/serwer pisanych w .NET Framework. W swojej karierze spotkałem się z produkcyjnym użyciem dwóch rodzajów zdarzeń, pierwsze polegało na użyciu Notification Services wysyłanych przez Microsoft SQL Server 2005, jednak...
Programowanie rozproszone 3760 dni, 13 godzin, 29 minut temu 99 źrodło rozwiń
Inicjatywa ta rodziła się już od jakiegoś czasu, ale zawsze coś stawało na przeszkodzie. W końcu jednak udało zebrać się ludzi, czas i tematy Dlatego serdecznie zapraszamy na kurs C# na portalu VirtualStudy! Kurs będzie trwał minimum pół roku. Zaplanowany jest na 6 miesięcy, ale wiadomo, różnie bywa, zawsze może coś wypaść etc.. Na kursie będziemy przedstawiać programowanie w języku C# od podstaw. Dlaczego tak? Ktoś może zapytać, czy nie lepiej byłoby od ra...
Aby pomoc ludziom programować asynchronicznie wymyślono słowa kluczowe async i await. Async będzie służyć do oznaczania metod w których pojawią się wywołania asynchroniczne, zaś same wywołania będziemy oznaczać przez await i te słowo kluczowe może pojawić się tylko w metodach oznaczonych właśnie przez async. Dzięki temu jak tłumaczy Mads Torgersen nie będzie już dla użytkownika problemem tworzenie wielu funkcji Callback, gdyż b...
Programowanie rozproszone 3774 dni, 1 godzinę, 9 minut temu 125 źrodło rozwiń
Dzisiejszego dnia potrzebowałem użyć serializacji XML dla klasy Dictionary. Bardzo się zdziwiłem gdy okazało się, że klasa ta nie wspiera tego rodzaju serializacji. Wydawałoby się, że zapis danych w formacie XML jest dzisiaj już standardem, ale okazuje się, że jednak nie wszędzie. Stosując podstawową zasadę programisty po co pisać coś co ktoś inny już napisał uruchomiłem Google i zacząłem szukać rozwiązania. Udało mi się znaleźć kilka przykładów rozwiązania tego problemu, al...
Każda kolejna wersja platformy .NET wprowadza coraz "fajniejsze" ułatwienia dla programisty. I chyba trudno się z tym stwierdzeniem nie zgodzić. Zaczęło się od anonimowych delegatów. Później bardziej funkcyjne podejście i LINQ. W .NET 4.0 wprowadzono słowo kluczowe dynamic. Teraz przyszedł czas na lepsze wsparcie dla operacji asynchronicznych. Od wczoraj dostępny jest do pobrania Visual Studio Async CTP, który do C# i VB wprowadza dwa nowe słowa kluczowe await oraz async.
Autor: Tydzień temu zaproponowałem mały konkurs, polegający na zmuszenia .NET’a do zrobienia rzeczy, której teoretycznie nie powinno dać się zrobić. Niestety trochę “przedobrzyłem” i jednym z dostępnych rozwiązań rozwiązań było użycie Reflection o co mnie w pytaniu nie chodziło. Świat się jednak nie wali, a jest nawet lepiej. Wiem, że są osoby, które o Reflection nie słyszały i dziwią się, że takie rzeczy w .NET można robić.Tak więc zobaczmy jakie rozwiązania są dostępne: Rozwiązania Podstawowe czyli z u...
Architektura 3778 dni, 13 godzin, 11 minut temu 164 źrodło rozwiń
Może nie takie prawdziwe, ale takie malutkie i niewinne :-) (a może nie takie niewinne?). Do napisania tego postu zainspirował mnie niedawno przeczytany inny post, pokazujący, jak można zmusić .NET do zrobienia czegoś co nie powinniśmy mieć możliwości zrobić. Jako, że mój post będzie związany z małą zagadką/konkursem na razie linka do inspiracji nie podam. Sposób jest w pełni legalny w .NET bo i program się kompiluje bez żadnych sztuczek. F5 i działa….Zadanie Zadanie będzie z typu akademickich, nie będzi...
Od początku pracy nad DesktopInfo wiadome było, że będzie potrzebny mechanizm do ładowania pluginów, dodatkowych modułów, które rozszerzą możliwości aplikacji bez potrzeby jej rekompilacji. Pierwszy pomysł jaki przechodzi do głowy to refleksja. Jednak jakiś czas temu postała biblioteka MEF, która została włączona do .NET Framework 4.0 Ponieważ aplikacja DesktopInfo wykorzystuje właśnie tą wersję .NET, to dlaczego nie wykorzystać nowej funkcjonalności. Zatem zobaczmy krok po kroku co jest potrzebne aby ...
Architektura 3792 dni, 17 godzin, 51 minut temu 159 źrodło rozwiń
Postawione w tytule posta pytanie jest jak najbardziej na miejscu. Już teraz mogę zdradzić tajemnicę, że nigdy tablicy nie udostępniamy w postaci właściwości. Na początek chciałbym krótko zarysować problem. W czasie tworzenia kodu okazało się, że bardzo ułatwi mi zachowanie go czytelnym utworzenie klasy przechowującej tablice stworzonych przeze mnie obiektów. Wygląda to następująco: public part...