Archive for the ‘Tools’ Category

Pimp My IDE

maj 17, 2008

“Pimp My IDE”: 101 Visual Studio tips, tricks, and add-ins - czyli wszystko, co najlepsze dla Visual Studio. Tak na marginesie to się zastanawiam, kiedy chłopaki z JetBrains w końcu wydadzą nowego ReSharper’a. Jak na razie można korzystać z 30 dniowych wersji Early Access Program (EAP), ale są to mniej lub bardziej działające, nocne build’y teamu deweloperskiego. Więcej informacji można znaleźć tutaj.

Emulator & WM 6.1

kwiecień 6, 2008

Microsoft udostępnił obraz systemu Windows Mobile 6.1 dla emulatorów. Jak na razie dostępna jest tylko wersja anglojęzyczna. Pliki do pobrania znajdują się tutaj.

MyMobiler v 1.2

marzec 28, 2008

Jakiś czas temu pisałem o programie MyMobiler. Darmowym narzędziu, dzięki któremu możemy kontrolować urządzenie PDA, podłączone do komputera. Właśnie zainstalowałem, jego najnowszą wersję. Autor oprócz usunięcia problemu z wprowadzaniem danych i odświeżeniu wyglądu aplikacji, dodał także szereg nowych, interesujących możliwości:

  1. Mechanizm ’skórek’ dla naszej aplikacji - co by okienko wyglądało podobnie do rzeczywistego urządzenia.
    image
  2. Mobile Exploler - zewnętrzny interfejs do operowania na plikach zgromadzonych na urządzeniu. Według mnie o niebo wygodniejszy w obsłudze od opcji Explore z ActiveSync’a. Co prawda samemu jestem uzależnionym od Total Commandera i wolę korzystać z plug-in’u, o którym pisałem tutaj. Jednak zawsze to ciekawa alternatywa.
    clip_image002
  3. Mapowanie przycisków specjalnych urządzenia do klawiszy funkcyjnych.
  4. Nagrywanie naszych poczynań i zapis do pliku w formacie AVI.
  5. Możliwość połączenia się z urządzeniem bez konieczności korzystania z ActiveSync’a.
  6. Drag & Drop plików z komputera na PDA - przynajmniej tak twierdzi autor, mi nie udało się w ten sposób skopiować żadnego pliku.

Całość pracuje stabilnie, jedynym minusem, jakiego mogę się doszukać, są zauważalne spore opóźnienia między wydaniem polecenia a jego wykonaniem. Jednak nie wykluczam, że winę za to może ponosić urządzenie a nie program.

Strona domowa projektu znajduje się tutaj.

Windows Services

marzec 18, 2008

Odkąd pracuję z Visual Studio tworzenie usług sytemu Windows (ang. Windows service), zawsze było żmudnym procesem. Co by nie powiedzieć o usprawnieniach wprowadzanych w kolejnych wersjach środowiska, proces ten nie uległ znaczącym zmianom. Chyba największym problemem jest pracochłonny i kłopotliwy proces testowania, który wymaga wykonania następujących kroków:

  • Zainstalowania naszej usługi w systemie, konieczny jest do tego specyficzny instalator - opis jak takowy przygotować można znaleźć m.in. tutaj. Sam projekt powinien być skompilowany w trybie Debug, aby zachować informacje o ustawionych breakpoint’ach.
  • Do katalogu w którym zainstalowaliśmy naszą program, kopiujemy plik *.pdb który znajdziemy w katalogu bin naszego projektu.
  • Uruchamiamy usługę. Możemy skorzystać z Panelu Sterowania lub wystukać na linki komend net start “nazwa naszej usługi”
  • Uruchamiamy Visual Studio i z menu Tools wybieramy Attach to Process (lub wciskamy: Ctrl + Alt + P), pojawia się przed nami następujące okienko:

image

  • Z listy dostępnych procesów wybieramy ten reprezentujący naszą usługę. Ponieważ, zwykle usługi działają ze specjalnymi uprawnieniami, musimy najpierw zaznaczyć opcję Show processes from all users.
  • Klikamy Attach i Visual Studio podłączy się do naszego procesu. Dzięki skopiowanemu wcześniej plikowi *.pdb, zawierającemu symbole debugowania środowisko będzie wstanie określić położenie kodu źródłowego naszej aplikacji. W przypadku gdy źródła będą niedostępne, zostaniemy poproszeni o podanie ich położenia.
  • I możemy swobodnie debugować.

Niestety, cały proces musimy powtórzyć gdy zmodyfikujemy kod i ponownie chcemy go przetestować.

Problemem jaki możemy napotkać po drodze są kłopoty z ponowną instalacją naszej usługi, komunikat:

image

Nie doszedłem czym jest on spowodowany, jednak podejrzewam, że nie wszystko zostało, prawidłowo usunięte podczas wcześniejszej de-instalacji. Aby temu zaradzić, musimy ręcznie odinstalować usługę. Z linii komend wpisujemy polecenie:

sc delete “nazwa naszej usługi”

Wszystko powyższe sprawdza się jeśli korzystamy z systemu Windows XP, jeśli jednak używamy osławionej Visty. W liście procesów okna Attach to Process, nie pojawi się pozycja reprezentująca naszą aplikację. Ma to prawdopodobnie ma to związek z nową architekturą zabezpieczeń systemu. W takim wypadku ‘zewnętrze’ podłączenie środowiska do procesu możemy zastąpić jedną linią kodu, która spowoduje automatyczne uruchomienie debugger’a:

System.Diagnostics.Debugger.Launch();

Oczywiście nie zmienia to faktu, że musimy naszą usługę zainstalować i przekopiować odpowiednie pliki. Inną użytecznym poleceniem może być:

System.Diagnostics.Debugger.Break();

która wymusi wstrzymanie wykonania programu. Dobrze jest umieścić powyższe metody w dyrektywie kompilacji warunkowej, aby przypadkiem nie zostały, częścią finalnej wersji programu.

#if DEBUG
System.Diagnostics.Debugger.Launch();
#endif

Dwa komputerki

marzec 4, 2008

Jak już pisałem w poprzednim poście, dostałem nowego blaszaka do pracy. Trochę czasu zajęło mi ustawienie systemu i zmuszenie go do pracy w firmowej sieci. Tak się złożyło, że moja nowa maszyna była pierwszym komputerem w firmie, z zainstalowanym systemem Windows Vista. Zgadnijcie komu przypadł ‘zaszczyt’, zmuszenia tego wszystkiego do pracy? Teraz rozumiem wszystkie narzekania, admin’ów na nowy system Microsoftu, zainstalować Vistę na jednej maszynie i z niej korzystać to jedno a zmusić ją do pracy w domenie to zupełnie inna bajka. No dobra trochę przesadzam, ale jako typowego developera nie pociąga mnie rozgryzanie problemów administracyjnych, czemu Vista nie łączy mi się z internetem czy instalowanie najświeższych update’ów, service pack’ów i innych takich na głównym serwerze. Szczególnie, że nie wiedzieć czemu, po czymś takim drukarka w biurze, przestaje być dostępna w sieci. :(

Najcięższą próbą, z całej tej operacji okazała się walka z Nortonem Antivirus’em wersją korporacyjną. Nie bacząc na ostrzegawcze komunikaty, pozwoliłem sobie zainstalować część kliencką na Viscie - co okazało się zdecydowanie, złym pomysłem. Liczba błędnych komunikatów i niemożność odinstalowania aplikacji zmusiły mnie do szybkiej re-instalacji systemu. Wiem, ignorowanie ostrzeżeń, nie jest najlepszym pomysłem, ale to chyba pierwszy raz, gdy Windows rzeczywiście miał rację. Aha i bynajmniej nie jest to krytyka filozofii: ‘Chcesz sobie zrobić kuku to proszę bardzo, ale na własną odpowiedzialność’.

No dobrze, dosyć tych narzekań, ;) teraz już wszystko chodzi zgrabnie i jestem zadowolony. Jednak nie o tym chciałem pisać, otóż pracuję teraz na dwóch komputerach, na jednym klient pocztowy, przeglądarka, iTunes, SSMS etc. na drugim Visual Studio i inne narzędzia. Wszystko było by pięknie gdybym jeszcze nie musiał skakać z jednej myszki/klawiatury na drugą. Z pomocą przyszło mi tu Google i znaleziony dzięki nim programik Input Director. Program ten instalujemy na maszynach, pomiędzy którymi chcemy współdzielić klawiaturę/myszkę, określamy kolejność ekranów i gotowe. Podczas pracy nie zauważyłem, żadnych opóźnień czy dziwnych skoków kursora. Dodatkową opcją programu, która rewelacyjnie ułatwia pracę, jest możliwość synchronizacji schowków na połączonych komputerach. Teraz praca z wykorzystaniem dwóch komputerów to niczym nie zmącona przyjemność. ;)

Source Outliner

luty 13, 2008

Ruszył nowy portal Visual Studio Gallery którego celem jest skatalogowanie wszelkich możliwych dodatków do Visual Studio. Ot Microsoft’owy odpowiednik strony Sharp Toolbox.
Tak sobie w nim szperając, natrafiłem na darmowy plug-in: Source Code Outliner. Jest to proste, acz użyteczne narządko, które umożliwia nam przeglądanie wszystkich pól, właściwości, metod i klas.
Podobna funkcjonalność jest dostępna w Visual Studio, znajduje się w listach rozwijalnych umieszczonych tuż nad edytorem kodu. Jednak nie umożliwia ona nam przeglądania zawartości całego projektu podobnie jak brakuje jej możliwości filtrowania po dowolnym ciągu znaków.

Source Code Outliner

Source Code Outliner można pobrać stąd.

.NET Compact Framework 3.5 Power Toys

grudzień 12, 2007

Pojawiła się kolejna wersja zbioru power toys‘ów dla .NET Compact Framework‘u wersji 3.5 - numerek wersji trzeba podkreślić, gdyż jest on bardzo ważny, o czym za chwilę. W skład pakietu wchodzą:

  • Remote Performance Monitor and GC Heap Viewer - super narzędzie umożliwiające nam dostęp do wszelakiej maści liczników pozwalających określić wydajność naszej aplikacji. Dodatkowo mamy możliwość podejrzenie stosu Garbage Collectora (GC) i zapisania jego stanu w celu późniejszej analizy, świetnie nadaje się to do poszukiwania ‘wycieków pamięci’. Wcześniejsze wersje tego narzędzia nie umożliwiały pracy z emulatorem, w tym wydaniu ograniczenie to zostało zniesione i nie musimy posiadać fizycznego urządzenia do przeprowadzenia testów. Zastanawia mnie jednak, jak testy na emulatorze mają się do testów na rzeczywistym PDA, wydaje mi się, że nie powinno być jakiś strasznych rozbieżności. Na pewno wystarczy do wyrobienia sobie poglądu jak nasza aplikacja się sprawuje.
  • NETCF CLR Profiler (NetCFCLRProfiler.exe)- to jest dopiero narzędzie, potrafi przedstawić graficzną reprezentację następujących po sobie alokacji i de-alokacji pamięci, kolejność wywołań funkcji itp.
  • App Configuration Tool (NetCFcfg.exe) - Narzędzie które uruchomione na urządzeniu, pokaże nam zainstalowane wersje .NET CF oraz informacje o DLL‘ach znajdujących się w GAC’u. Dodatkowo pozwoli zmienić domyślną wersję Framework‘a na której będą wykonywane wszystkie jak i poszczególne aplikacje (oczywiście te bez pre-definiowanej wersji).
  • NETCF ServiceModel Metadata Tool (NetCFSvcUtil.exe) - Pisząc aplikacje będącą klientem Windows Communication Foundation (WCF) na pewno docenimy tą aplikację. Pozwala ona na generację proxy którego możemy skorzystać w naszej aplikacji. Generalnie jest to odpowiednik desktopowego narzędzia svcutil.exe.
  • Remote Logging Configuration Tool & Log Viewer (NetCFLogging.exe & logviewer.exe) - narzędzia do konfiguracji, opcji logowania, jakie są wbudowane w .NET CF (ładownie assembly, interakcja z kodem natywnym, interakcja z siecią, logowanie błędów etc.) jak i narzędzie do przeglądania tych, że logów.

Jakiś czas temu usilnie próbowałem uruchomić NETCF CLR Profiler i guzik, nic z tego nie wychodziło, co uruchomiłem profilera otrzymywałem error ‘This operation returned because the timeout period expired. (Exception from HRESULT: 0×800705B4) 800705b4‘.
Problem okazał się być prosty, aplikacja którą próbowałem przetestować, korzystała z .NET CF 2.0, a nasze narzędzie jak się później eksperymentalnie dowiedziałem nie jest z nią kompatybilne. Proste prze-kompilowanie aplikacji w Visual Studio 2008 też nic nie da gdyż musimy, zmienić docelową platformę, co w moim przypadku prowadziło do jakiś dziwnych błędów typu ‘Unknown type to set.‘. Jeszcze nie miałem czasu sprawdzić o co chodzi z tym błędem ale podejrzewam, że jest to powiązane z SQL Compact Edition 2.0/3.5 i różnymi wersjami plików *.sdf.

Najprostszym sposobem upewnienia się, że nasza aplikacja (skompilowana w Visual Studio 2005) będzie pracowała na platformie w wersji 3.5 jest skorzystanie z Application Configuration Tool (NetCFcfg.exe). Innym sposobem jest jawne określenie pożądanej wersji w pliku konfiguracyjnym aplikacji (<app_name.exe.config>). Przykładowy plik może wyglądać następująco:

<?xml version=”1.0″ encoding=”utf-8″ ?>
<configuration>
  <startup>
    <supportedRuntime version=”v3.5.7283″/>
  </startup>
  <runtime>
    <compatibilityversion major=”3.5″ minor=”0″/>
  </runtime>
</configuration>

Oczywiście plik konfiguracyjny należy umieścić w katalogu głównym naszej aplikacji. Ten sposób, jest bardziej przydatny w sytuacji, gdy robimy deployment aplikacji na wiele urządzeń i chcemy się upewnić, że wszystkie będą pracowały pod kontrolą określonej wersji platformy .NET.

Camtasia & SnagIt

grudzień 3, 2007

Firma TechSmith postanowiła zrobić internetowemu światku prezent i rozdaje programy Camtasia i SnagIt za darmo. Nie są to może najnowsze wersje jednak do większości zastosowań wystarczą, aż nadto. Chyba większość, osób czytających mojego bloga będzie wiedziało do czego Camtasia służy - jeśli ktoś nie wie: jest to program do nagrywania filmików z naszego pulpitu. Zdecydowana większość screencast‘ów została nagrana za pomocą tego narzędzia.
SnagIt jest podobny narzędziem, może nie tak spektakularnym (gdyż można znaleźć w siedzi dużo darmowych jego odpowiedników) - mianowicie służy do robienia zrzutów ekranowych. Aby otrzymać klucze rejestracyjne musimy jedynie wypełnić formularze znajdujące się pod tymi linkami: Camtasia, SnagIt.

Office Mobile 6.1 podejście drugie

listopad 29, 2007

Najnowszy upgrade Office’a dla urządzeń mobilnych nie miał dobrego startu - zaczęło się od wydania wersji która okazała się wersją testową dla pracowników Microsoftu. Została ona prawie natychmiast usunięta z serwerów, co spowodowało pewne zamieszanie. Teraz, po prawie dwóch miesiącach Microsoft, miejmy nadzieję tym razem oficjalnie, publikuje Office Mobile 6.1. Dodatek wprowadza możliwość przeglądania i edycji plików Worda (*.docx) i Excela (*.xlsx) w wersji 2007, pliki PowerPoint’a (*.pptx) dostępne są tylko do podglądu.

Unit Testy w Visual Studio Professional

listopad 28, 2007

Pracując z betą Visual Studio 2008 - korzystałem z wersji Team System. Teraz po wydaniu finalnej wersji produktu, chciał nie chciał musiałem się przesiąść na wersję Professional (tak, tak staram się korzystać z legalnego oprogramowania) i trochę było mi szkoda, wszak Microsoft wprowadził możliwość uruchamiania testów jednostkowych na urządzeniach mobilnych. Działam tak sobie w niej już kilka dni i dopiero teraz, zdałem sobie sprawę, że jakoś, niczego mi nie brakuje. Nie wiem, być może chłopaki z MS o tym wspominali, ale widać umknęło to mojej uwadze, mianowicie: testy jednostkowe w Visual Studio 2008 są dostępne już w wersji Professional. Super, naprawdę miła niespodzianka!