Archiwum dla maj 2007
Symantec dla urządzeń mobilnych
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!
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
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.

tinySpell
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
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
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
W sieci pojawiły się nagrania prezentacji z MEDC (Microsoft Mobile & Embedded DevCon):
- Developing Applications for the UMPC
- Microsoft Compact Framework 3.5
- Visual Studio For Device Developers
- LINQ Compact Framework
- Robots On Windows Embedded CE
- Compact Framework Memory
- Windows CE Boot
- DirectX On Windows Mobile
- Sharing Code Assets
Dodatkowo są dostepne jeszcze same prezentacje w PowerPoint’cie:
Windows Mobile Developer Day
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
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
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.


