Przenośne Windows

Fundament w postaci .NET CF

Głównym środowiskiem do tworzenia aplikacji dla PocketPC pozostaje na razie embedded Visual C++/Basic. Jednak nowoczesne projekty powstają zwykle przy wykorzystaniu .NET CF.

.NET Compact Framework to wersja .NET przeznaczona dla urządzeń mobilnych. Obecnie dostępna jest wersja 1.0 SP2. Warto od razu dodać, że ta platforma bardzo dobrze sprawdza się na PocketPC 2003.

Technologia. NET CF obsługuje podstawowe elementy z "dużego" .NET - ograniczenia wynikają głównie z możliwości platformy (np. realne limity na liczbę wierszy/kolumn w DataSet). W niektórych przypadkach dostępne są nowe klasy, jak np. mechanizm obsługi IrDa. NET CF ułatwia także tworzenie PAN (Personal Area Network).

Warstwa interfejsu użytkownika jest tworzona przy użyciu Windows.Forms i System.Drawing, podobnie jak w przypadku "dużego" .NET (jednak jest sporo ograniczeń w możliwościach kontrolek).

Dla twórców urządzeń ważna jest informacja, że .NET CF nie jest monolitem - można wybrać, które elementy API mają być wgrywane na urządzenie. Przykładowo, w wersjach "debug" platformy można dodać komponent zawierający pełne komunikaty błędów, a w wersji "release" zadowolić się tylko kodami.

.NET CF obrosło w dużą liczbę dodatkowych projektów rozbudowujących tę platformę. Dużo takich rozwiązań znajduje się w portalu OpenNETCF.org (współtworzonym głównie przez osoby z tytułami MVP). Flagowym produktem jest Smart Device Framework - zestaw bibliotek ułatwiających tworzenie aplikacji dla .NET CF. Częściowo są to implementacje brakujących elementów dostępnych w "dużej" wersji .NET, a częściowo nowe, ciekawe rozwiązania.

Oczekiwanie na CF 2.0

Dużo zmian przyniesie nowa wersja .NET CF. Będzie ona zgodna z "dużym" .NET 2.0. Na platformie mobilnej przebudowany zostanie GC (automatyczny odśmiecacz). Praktycznie zniknie sens "zalecenia" ręcznego wołania GC.Collect (czyli procedury wymuszającej odśmiecanie pamięci), które pojawiało się w CF 1.0. Inna kluczowa zmiana dotyczy sposobu kompilacji JIT na platformie mobilnej. W kwestii interfejsu użytkownika dużym ułatwieniem będzie możliwość integracji rozwiązań ASP.NET (dostępnych za pośrednictwem HTTP) ze SmartClient, np. dzięki kontrolce "osadzającej" HTML jako część interfejsu użytkownika.

W .NET CF 2.0 rozbudowano liczbę standardowych kontrolek, m.in. dodano kalendarz, wprowadzono możliwość wyświetlania efektownych powiadomień. Warto dodać, że kontrolki automatycznie dostosują się do różnych rozmiarów i rozdzielczości okien. Także do zmiany orientacji ekranu.

Częścią platformy będzie specjalna wersja Direct3D (podobna do Managed Direct3D), oraz DirectDraw Mobile API (na desktopie Direct Draw nie jest już rozwijane).

Rozbudowana została warstwa komunikacyjna - tak jak w .NET 2.0, także w wersji mobilnej będzie obsługiwany SOAP 1.2 (z WS-Security). Programista ma wybór - czy chce korzystać z automatycznie generowanego Proxy do usług Web, czy też chce samodzielnie pracować z dokumentami XML (można również skorzystać z XPath). Dodatkowo w Windows Mobile będzie można wykorzystywać IPC6 i Kerberos.

W wersji 2.0, w ramach integracji z SQL Server CE (o nazwie kodowej "Laguna"; ma być dostępny razem z SQL 2005 "Yukon" i VS 2005), dostępne będą specjalne klasy w "natywny" sposób obsługujące typy SQL CE. W czasie synchronizacji z "dużym" serwerem SQL CE wysyła komunikaty informujące o postępie operacji.

Można także traktować SQL CE nie tylko jako "wewnętrzną" bazę aplikacji, ale jako serwer, który np. w połączeniu z siecią będzie obsługiwał wielu użytkowników. W wersji 2.0 CF Microsoft wprowadził standardowe API do obsługi standardowych baz typu PIM (Pocket Outlook itp.) i obsługi SMS-ów. Prawdopodobnie dostępne będzie także standardowe API do urządzeń typu GPS.

.NET CF jest preferowanym sposobem tworzenia rozwiązań dla Windows Mobile i z tego powodu raczej nie będą rozwijane narzędzia z rodziny embedded Visual Basic/C++. Jednak zwolenników C++ należy pocieszyć, że w Whitbey (pakiet Visual Studio 2005) można będzie pisać aplikacje dla urządzeń przenośnych (również Smartphone), wykorzystując ATL/MFC. Co prawda nie ma binarnej zgodności z "desktopem", ale duża część kodu będzie działać bez żadnych zmian.


TOP 200