Archive for maj, 2007

Symantec dla urządzeń mobilnych

maj 25, 2007

Symantec wychodzi na przeciw rozrastającego się rynku urządzeń mobilnych i zapowiada rozszerzenie oferty o dwa nowe produkty Norton Mobile Security for Smartphones i Symantec Mobile Security 5.0. Pakiety w zależności od rodzaju będą zawierały oprogramowanie antywirusowe, antyspamowe, firewall, i usługi szyfrujące. Więcej można się dowiedzieć tu.

Nareszcie urlop!

maj 24, 2007

Przez ostatnie kilka dni publikowałem zdecydowanie mniej postów - przyczyna jest prosta - jestem na urlopie! Kilka dni spędziłem na zwiedzaniu Irlandii (nareszcie!) - zobaczyłem Galway i Limeric. Oczywiście byłem na obowiązkowych Cliffs of Moher, zahaczyłem też o Clonmacnoise, Newgrange i wiele innych magicznych miejsc. Pogoda dopisała wyśmienicie, dużo słońca, mało deszczu - co było miłą odmianą, bo zwykle jest na odwrót.
Teraz siedzę i piekę się w Polsce. Temperatura w Łodzi wacha się w granicach 32 stopni co przy totalnym braku wiatru i deszczu jest wręcz nie do wytrzymania - ale czego się nie robi dla rodziny ;)

RDA problemy z połączeniem

maj 21, 2007

Jedną z częstszych kłopotów z synchronizacją RDA (Remote Data Access) jest brak połączenia PDA z internetem. Z przyzwyczajenia, pierwszą rzeczą jaką robie jest sprawdzenie połączenia i widoczności biblioteki sqlcesa30.dll (dla SQL Compact) bądź sscesa20.dll (dla SQL CE 2.0). Po prostu wpisujemy nasz określony adres (np. http://nasz_katalog_wirtualny/sqlcesa30.dll) w przeglądarkę na urządzeniu mobilnym i jeśli wszystko jest w porządku powinniśmy otrzymać, komunikat - SQL Server Mobile Server Agent 3.0′ (lub SQL Server CE Server Agent’ dla wersji wcześniejszej). Warto również wiedzieć, że jeśli dodamy do biblioteki parametr ‘?diag‘ (np. http://nasz_katalog_wirtualny/sqlcesa30.dll?diag) otrzymamy pełne informacje diagnostyczne tego połączenia (dostępne tylko dla SQL Compact).
Jeśli pojawi się strona, że nie można nawiązać połączenia, a jesteśmy podłączeni do komputera za pomocą ActiveSync‘a, warto sprawdzić czy jest on skonfigurowany do udostępniania połączenia. Klikamy prawym przyciskiem myszy na ikonie ActiveSync‘a i wybieramy pozycje Connection Settings i w polu określającym połączenie powinno być The Internet.

ActiveSync connection settings

tinySpell

maj 20, 2007

Praca w anglojęzycznym środowisku wymaga nie tylko sprawnej komunikacji werbalnej ale również poprawnego pisania w tym, ze języku. Sprawa jest w miarę prosta jeśli musimy korzystać tylko z pakietu Office który za nas sprawdzi - czy nie popełniliśmy jakiejś literówki. Co jednak w przypadku gdy musimy korzystać jeszcze z innych programów? Fakt możemy zrobić kopiuj/wklej do Worda, a co jeśli jest to np. komunikator internetowy - gdzie ciągłe CTRL+C/CTRL+V zdecydowanie spowolni naszą interakcje. Rozwiązaniem może być tinySpell. Mały szybki programik który lokuje się w tray’u i daje nam znać gdy sie pomyliliśmy. Co lepiej w przypadku pomyłki umożliwia wyświetlenie podpowiedzi i poprawienie wyrazu. Szkoda tylko, ze program nie umożliwia obsługi słowników do innych języków niż angielski. Program dostępny jest również w wersji darmowej.

Problem z debugowaniem aplikacji mobilnych

maj 18, 2007

Debugując aplikacje mobilne można natknąć się na dziwny problem. Otóż ustawiam sobie breakpoint’a - rozpoczynam debugowanie i wszystko idzie dobrze do czasu, aż moja aplikacja powinna zatrzymać się w wyznaczonym miejscu. A tu nic - breakpoint jest, ale Vusial Studio pokazuje, że The breakpoint will not currently be hit. The specified module has not been loaded“. Dla pewności przetestowałem debugowanie ze zwykła aplikacją WinForms - wszystko działa. Co się stało? Otóż - w pracy dostałem nowy komputerek - postawiłem całe środowisko jak należy - ale zapomniałem o jednej drobnej rzeczy, mianowicie o .NET CF 2.0 Service Pack 2. Wychodzi na to, że gdy na urządzeniu przenośnym mamy nowszą wersję .NET CF niż na naszej maszynie developerskiej - aplikacja uruchomi się, ale pewne moduły potrzebne do poprawnej pracy Visual Studio nie zostaną załadowane gdyż kompatybilność działa tylko wstecz (i to też nie zawsze ;) ).

SubSonic Starter Site

maj 17, 2007

SubSonic Starter Page - jest to jak nazwa wskazuje szablon pozwalający w szybki sposób utworzyć własną stronę internetową. Oczywiście korzysta z SubSonic‘a i jest wysoko konfigurowalny, posiada nawet wbudowany prosty mechanizm zarządzania treścią - coś w sam raz dla osoby lubiącej mieć coś do powiedzenia w kwestii kodu (jakieś własne zmiany) ale zarazem nie mającej ochoty/czasu zagłębiać się w tajniki ASP.NET. Dostępny jest screencast przedstawiający możliwości pakietu.

Prezentacje z MEDC 2007

maj 16, 2007

Windows Mobile Developer Day

maj 15, 2007

Zakończył się Windows Mobile Developer Day - na który przypadła seria wykładów dotyczących Windows Mobile. Pierwsze dwie sesje były wprowadzeniem do WM i były przeznaczone dla osób które dopiero chcą zacząć przygodę z programowaniem urządzeń mobilnych. Porównano systemy Windows Mobile 5.0 i 6 (już bez .0), przedstawiono działanie nowego SDK dla WM 6 (razem z nowymi możliwościami jakie daje nam najnowszy emulator), opisano i zaprezentowano działanie synchronizacji RDA i Merge Replication. Tyle podstaw.
Trzecia sesja zatytułowana ‘Extending Windows Mobile Applications‘ - wg. mnie była najbardziej interesująca, wymagała już znajomości tematu i przedstawiała mobilne application blocks z MS Patterns&Practises , działanie aplikacji profilujących jak np. PrefMon, SMS Services i możliwość ich wykorzystania w aplikacjach biznesowych. Omówiono nowości API w WM 6, przedstawiono sposoby oprogramowania GPS’u i Bluetooth’a jak również wykorzystanie MS Message Queue w aplikacjach mobilnych.
Ostatni wykład omawiał aplikacje wykorzystujące technologie Microsoftu, zaprezentowane na wcześniejszym wykładzie, jak np. aplikacje WeFly247-50 (dostępną z Hands on Lab i pełnym kodem źródłowym, pokazuje m.in. jak można wykorzystać DirectX 9.0 dla aplikacji mobilnych).
Wszyscy uczestnicy prezentacji wzięli udział w losowaniu urządzenia HTC Excalibur - który niestety przypadł komu innemu niż ja :( .

Podsumowując - świetnie poprowadzone prezentacje, ukierunkowane na developerów, wszelkie informacje marketingowe zostały ograniczone do niezbędnego minimum - więc było dużo czasu na przykłady i omówienie często spotykanych problemów.

XML & LINQ

maj 14, 2007

Po serii screencastów prezentujących możliwości LINQ i jego współpracy z SQL‘em. Mike Taulty opublikował video w którym łączy LINQ z XML’em. Pliki wmv możecie znaleźć tutaj.

dbo.Clients

maj 13, 2007

Ostatnio zostałem poproszony o pomoc przy rozwiązaniu problemu - kod który powinien działać - wbrew logice działać nie chciał (brzmi znajomo, prawda?). Otóż w pliku *.sdf (Sql Server Compact) była tabla:

Jeśli odwołać się do tej tabeli poprzez, np:

SELECT * FROM Clients
SELECT * FROM dbo.Clients
SELECT * FROM [dbo].[Clients]

Otrzymamy błąd mówiący, że tabela Clients nie istnieje. Na pierwszy rzut oka może się wydawać dziwne - zapytania są poprawne, więc co jest źle? Otóż, jesteśmy przyzwyczajeni do skryptów generowanych przez Sql Server i składnia [dbo].[nazwa_tabeli] jest jak najbardziej naturalna. Jednak należy pamiętać, że Sql Compact rządzi się trochę innymi prawami i nie posiada mechanizmów do obsługi uprawnień. W tym przypadku nasza tabela nie nazywa się Clients tylko dokładnie dbo.Clients. Aby odwołać się do tej tabeli musimy jej nazwę ująć w nawiasy kwadratowe:

SELECT * FROM [dbo.Clients]

Trochę jednak dziwi mnie, że zapytanie:

SELECT * FROM dbo.Clients

również nie działa i generuje wyjątek.

Inną sprawą jest również jak można było utworzyć taką nazwę tabeli, gdyż nawet jeśli najpierw stworzymy sobie strukturę bazy na Sql Serverze wygenerujemy skrypt i wykonamy go na bazie *.sdf - Visual Studio poinformuje nas o błędnej nazwie tabeli. Pozostaje wiec nam, chyba, tylko wklepanie tej nazwy ręcznie - cóż za nieuwagę się płaci.