.NET i takie tam

Archive for Marzec 2008

Roczek

2 komentarze

 

Dziś mija rok, od chwili założenia tego bloga. Muszę przyznać, że czas ten zleciał, zdumiewająco szybko. Dopiero, co zastanawiałem się nad sensem tegoż przedsięwzięcia, a tu proszę pierwsza ‚rocznica’. Czas, więc na jakieś małe podsumowanie.

 

W sumie opublikowałem 175 postów (nie licząc tego), otrzymałem 130 komentarzy (aż tyle!?) i dorobiłem się 12 kategorii. Obecnie średnio dziennie odwiedza mnie ok. 120 osób, przy czym najlepszego dnia zaliczyłem 305 wejść na stronę. W sumie strona została wyświetlona ok. 29.000 razy, co daje mi ok. 80 wizyt dziennie. Dobrze, że wordpress.com nie zlicza także moich wejść, bo licznik wskazywałby teraz jakieś 50.000 😉

 

Wyniki może nie są imponujące, ale też nie robiłem nic w kierunku popularyzacji bloga – pozostawiłem to naturalnemu biegowi rzeczy. Blog nie figuruje w żadnych katalogach, stronach społecznościowych nie korzystam też z serwisów typu digg czy wykop. Nie powiem, że nie zależy mi na ‚oglądalności’ no, bo przecież, w tym cały sens posiadania strony internetowej, niezależnie od jej charakteru. Jednak nie szukam, nazwijmy to ‚podkręcanej popularności’, chwilowych wizyt ludzi niezwiązanych/niezainteresowanych tematem. Wszak jest to blog o dość wąskiej (jak na informatykę) tematyce i do tegoż ‚wąskiego’ grona odbiorców są skierowane moje posty.

 

Z rzeczy, z które planuję, a nie mam czasu zrealizować jest zmiana silnika bloga z WordPress’a na BlogEngine.NET. Nie żebym miał jakieś problemy z wordpress’em, ale PHP nie ma dla mnie większego sensu i wolałbym być bliżej platformy .NET. Więc jeśli zauważycie jakieś drastyczne zmiany w wyglądzie strony, to znaczy, że w ostatnim czasie się potwornie nudziłem 😉

 

Ot, miało być króciutko, a wyszło tak jak widzicie. Dzięki wszystkim za obecność na blogu za komentarze i maile. Na koniec muszę sam sobie pogratulować 🙂 za wytrwałości i świadomie przyznać, że nie sądziłem, że ten ‚eksperyment’ przetrwa i będzie miał się dobrze!

Written by sakowicz

Marzec 31, 2008 at 9:05 pm

Napisane w Misc

iPhone Tutorial for .NET Developers

leave a comment »

Rabi Satter opisuje jak stworzyć najprostszą możliwą aplikację (czytaj ‚Hello World’) dla iPhone’a. Korzysta ze środowiska, Xcode które jest dostarczane razem z iPhone SDK. Wszystko podane z perspektywy programisty .NET’owego. Po przeczytaniu, zdałem sobie sprawę, że pracując z platformą .NET i Visual Studio, bardzo łatwo zapomnieć, że tam gdzieś istnieje całkiem inny świat 😉

Tak od jakiegoś czasu chodzą mi po głowie myśli o zakupie iPhone’a. Fajny design, mnogość możliwości, łatwość obsługi i oczywiście moda 😉 . To trzeba, chłopakom, przyznać potrafią wylansować produkt.
Oczywiście nie ma róży bez kolców, wysoka cena i niezdrowa chęć producenta do kontroli/ograniczania tego, co chcemy zrobić z urządzeniem. Bez łamania umowy i hakowania urządzenia nie da się dużo zdziałać, przykładem może być konieczność korzystania z iTunes do zmiany melodyjki telefonu (koszt $2). Na dodatek nie będę mógł pisać własnych aplikacji, no chyba, że Apple wyda SDK na PC’ta albo ja zainwestuje w Mac’a 😉

Written by sakowicz

Marzec 29, 2008 at 8:43 pm

Napisane w Apple, Devices

MyMobiler v 1.2

leave a comment »

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.

Written by sakowicz

Marzec 28, 2008 at 10:12 am

Napisane w Devices, Tools

Windows Services

3 komentarze

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

Written by sakowicz

Marzec 18, 2008 at 4:24 pm

Napisane w .NET, Tools

Dwa komputerki

3 komentarze

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ść. 😉

Written by sakowicz

Marzec 4, 2008 at 7:48 pm

Napisane w Misc, Tools