Kilka lat temu (będzie już niedługo 5!) napisałem dla WSS tekst 'Admin czy nie admin' o narzędziach Sysinternals, dzięki którym można dosyć sprawnie poradzić sobie ze standardowymi problemami związanymi z ograniczonym dostępem do systemu. Linka nie podaję, ponieważ lada moment wss.pl przenosi się i zapewne stare sznurki pourywają się, więc ‘google is your friend’ :). Już wówczas były to potężne narzędzia diagnostyczne dające bardzo wiele informacji o tym co się aktualnie dzieje w systemie. Od tamtej chwi...
autor: Jakiś czas temu pracując z IntelliTrace próbowałem zdefiniować zdarzenie diagnostyczne dla pewnej metody. Dla ustalenia uwagi niech jej sygnatura wygląda tak, jak poniżej. string Flip(string s) Moim celem było, aby opis zdarzenia zawierał wynik zwrócony przez metodę oraz wartość argumentu s. Inaczej mówiąc, aby w oknie IntelliTrace Events View w Visual Studio 2010 zdarzenie zarejestowane dla wywołania metody z argumentem s="Hello" i wynikiem "olleH" wyglądalo tak: "olleH" Flip("Hello") O defin...
Tytuł zajeżdża nieco komerchą, ale jest to ogólnie dość użyteczny wpis dla osób, które poszukują wydajnego, użytecznego i mocno funkcjonalnego edytora tekstu dedykowanego dla programistów. Postanowiłem zebrać w jednym miejscu moje doświadczenia z poniżej prezentowaną alternatywą dla takich programów jak Notepad++, Notepad2 a nawet Visual Studio oraz przedstawić jego możliwości. Wpis powstał na bazie kilkumiesięcznego użytkowania programu i idealnie się sprawdza jako stand-alone editor oraz jako dodatek d...
autor: Swego czasu w postach Własne zdarzenia IntelliTrace! oraz Własne zdarzenia IntelliTrace 2 opisałem jak zmodyfikować plik CollectionPlan.xml zawierający plan działania IntelliTrace (historycznego debuggera) tak, aby zdefiniować swoje własne zdarzenie IntelliTrace (ważny punkt w historii działania programu kiedy IntelliTrace nagrywa stan aplikacji). Ostatnio wróciłem do tego zagadnienia i "bawię się" testując różne możliwości IntelliTrace. Niestety czasami, po zmodyfikowaniu pliku Collect...
autor: Napiszę teraz trochę o nowym Windows Phone SDK 7.1 RC. Zacznę od dwóch elementów, które na pewno występowały już w niepublicznym Beta 2 Refresh. Są to: Screenshot tool Oprócz narzędzia do screenshotów z Windows 7 możemy teraz używać dedykowanego narzędzia dostarczanego z emulatorem. Marketplace Test Kit Zbiór testów, którymi są poddawane aplikacje wrzucane na Marketplace. Dzięki temu znacznie spada prawdopodobieństwo “niespodzianki” po wysłaniu aplikacji, developer może poddać weryfikacji swoją ...
Dzisiaj chciałbym przedstawić działanie narzędzia do mockowania Telerik JustMock. Dostępne są dwie wersje tego narzędzia: darmowa JustMock Free Edition oraz komercyjna, pełne porównanie można znaleźć tutaj: http://www.telerik.com/products/mocking/free.aspx. Główną motywacją do napisania tego postu było to, że czytając posta Macieja Aniserowicza (oczywiście polecam Macieja serię postów o testowaniu: http://www.maciejaniserowicz.com/post/2011/08/08/UT-0-Zapowiedz-minicyklu-o-testach.aspx) zauważyłem w kome...
Analizując problem z działaniem aplikacji w środowisku produkcyjnym, czasami przydałoby się mieć możliwość sprawdzanie jakie argumenty są przesyłane do wywoływanych metod, zwłaszcza, w przypadku aplikacji desktopowych, gdzie nie mamy dostępu do pełnego zbioru danych, na którym pracuje użytkownik i musimy opierać się jedynie na informacjach zawartych w logach. Rozwiązaniem tego problemu jest dołączenie interceptora do kontenera IoC, który przy wywołaniu metody zapisywałby informacje o przesłanych argument...
Kiedyś puściłem cały cykl postów o testowaniu z wykorzystaniem Rhino Mocks, pełna lista postów zebrana jest tutaj. Jednak aby zachować ciągłość aktualnej serii, należy o mockach kilka słów wspomnieć. Mocki służą do symulowania zachowania środowiska zewnętrznego względem testowanej klasy/metody. Pisząc testy jednostkowe sprawdzające logikę biznesową nie powinniśmy skupiać się na tym, czy mamy poprawnie skonfigurowaną bazę danych. Albo czy komunikacja z systemem plików przebiega tak jak powinna. Lub, co ...
Programiści .NET nie mogą narzekać na brak narzędzi i bibliotek wspomagających pisanie testów jednostkowych. Zanim przejdziemy jednak do zerkania w ich kierunku, zobaczymy jak można samemu, bez zewnętrznych zależności, rozpocząć pisanie testów. Testować będziemy taką banalną klaskę, której zadaniem jest obliczenie "ile złotych polskich dostanie polski hydraulik Waldek za przywiezione zza zachodniej granicy jełro"...
"Reużywalność" w PowerShell'u Pisząc skrypt w PowerShell'u postanowiłem wywołać metodę z zewnętrznej biblioteki wchodzącej w skład rozwijanego przez mój zespól systemu. Zaimportowałem dll'kę za pomocą metody Assembly.LoadFrom , utworzyłem instancję typu danych i uruchomiłem metodę. Oczywiście otrzymałem wyjątek NullReferenceException, który wskazywał na to, że problem pojawił się w metodzie z zewnętrzenej biblioteki. Zastanowiłem się chwilę i stwierdziłem, że nie zaszkodziłoby zdebuggować tej metody. K...
Tak, MEF obsługuje typy generyczne! A jak to wykorzystać w swoim projekcie dowiesz się czytając ten artykuł.
Można powiedzieć, że lipiec kończy się dla mnie pewnego rodzaju sukcesem. Udało mi się bowiem przeforsować, zaplanować oraz wykonać migrację naszego firmowego repozytorium kodu z niesamowicie uciążliwego Team Foundation Server na Mercuriala! We wpisie informacje o tym, dlaczego warto się zmigrować i czego się spodziewać w związku z tym.
SysInternals to pakiet znakomitych narzędzi wychodzących spod ręki Marka Russinovicha oraz Bryce’a Cogswella . Choć w nazwie mają Sys - co sugerowałoby ich przeznaczenie administratorskie, to my, skromni programiści także możemy skorzystać z ich funkcjonalności i użyć ich do swoich celów. Dziś pokażę, jak 3 z nich mogą wspomóc pracę developera-poszukiwacza błędów. Produkcja Jak wszyscy wiemy jest to takie specyficzne środowisko, że nie zawsze mamy dostęp do swoich ulubionych narzędzi (patrz Visual Stu...
Rozwiązywanie problemów na platformie .NET W kolejnym poście skupię się na temacie rozwiązywania problemów na platformie .NET z którymi borykają się programiści. Jest to zagadnienie bliskie memu sercu platformie, ponieważ jako etatowy "detektyw .NET" wielokrotnie byłem zmuszony do korzystania z większości z tych narzędzi, szczególnie gdy zawiodło mnie bezmyślne wyszukanie w Google.
Krótki i żartobliwy wpis – poradnik na temat rozwiązywania problemów z naszym "ukochanym" IDE dla systemu Windows Poradnik ten jest całkiem prosty i każdy powinien sobie z nim doskonale poradzić. Dla wygody podzieliłem go na 2 oddzielne części: Jak rozwiązać 100% problemów? oraz Jak rozwiązać 25% problemów?
Kolejna ciekawostka związana z IntelliSense w Visual Studio 2010. Często bywa tak, że IntelliSense próbuje być o wiele mądrzejsze niż programista i na siłę dopasowuje wybrane przez siebie nazwy klas i zmiennych nawet jeżeli nie było to naszym zamiarem. Jednym z przykładów może być tu odwołanie do nieistniejącej jeszcze klasy, którą dopiero zadeklarujemy. Szybkie demo polega na wpisaniu w kodzie aplikacji słowa Time – taką właśnie klasę chciałbym za moment dodać, natomiast narazie tworzę tylko kod, który ...
Okazuje się, że IntelliSence w Visual Studio 2010 potrafi nie tylko uzupełniać wpisywane przez nas metody, lecz dodatkowo interpretować to co wpisujemy. Przykładem niech będzie klasa Console. Przeważnie gdy piszemy kod, w którym chcemy wczytać pewne dane od użytkownika wpisujemy Console.Read… i wybieramy z listy podpowiedzi ReadLinie. Okazuje się, że można do tego podejść inaczej!
Chyba każdy programista w trakcie swojego życia zbiera jakieś przydatne kawałki kodu. Niektórzy tworzą z nich drobne biblioteki, inni całe frameworki. To czy jest to praktyka zła, czy dobra nie jest tematem tej rozprawki. Wszystkim nam gdzieś tam jednak przyświeca idea DRY (Do not Repeat Yourself). Jak ją sobie zrealizujemy, to już zależy od nas. Przynajmniej w naszych prywatnych projektach. Z owymi „przydasiami” wiąże się pewien problem. Gdy już stworzymy sobie szereg bibliotek, chcielibyśmy je wykorzys...
Numerowane zakładki Chyba każdy kto kiedyś programował w Delphi był potem rozczarowany standardowymi bookmarkami w VS. Jak działają bookmarki w VS? Skrótem Ctrl+K; Ctrl+K ustawiamy bookmarka. Możemy ich mieć dowolną ilość. Bookmarki możemy sobie podejrzeć w okienku dla nich przeznaczonym: Możemy sobie zmieniać ich nazwę, ale nie kolejność. I to jest właśnie ten element który jest niekoniecznie fajny. Poruszanie się po bookmarkach Ctrl+K;Ctrl+N (następna) oraz Ctrl+K;Ctrl+P (poprzednia) przechodzi ...
Visual Studio w wersji 2010 zmieniło swoją powłokę i wykorzystuje technologię WPF. Wywołało to wiele kontrowesji, ale wydaje mi się, że zostało już to zaakceptowane i dobrze się sprawdza Pewnie nie wszyscy się z tym zgodzą, i właśnie dlatego piszę tego posta. Ostatnio do galerii rozszerzeń Visual Studio został dodany nowy dodatek: PerfWatson. Jest to specjalna aplikacja, której wewnętrznie używa także Microsoft, do raportowania problemów z wydajnościa. Teraz została wydana publicznie w postaci dodatku ...