Gotowi do biegu

Microsoft stawia na jak największą zgodność ''mobilnej'' platformy programistycznej z tą do ''dużego'' desktopu.

Microsoft stawia na jak największą zgodność ''mobilnej'' platformy programistycznej z tą do ''dużego'' desktopu.

Sądząc po zapowiedziach produktowych, Microsoft ma bardzo duże ambicje w dziedzinie rozwiązań mobilnych. W ostatnim czasie firma przedstawiła szczegóły dotyczące najnowszych wersji narzędzi i platform, za pomocą których ma powstać kolejna generacja rozwiązań dla urządzeń mobilnych. Wysiłki Microsoftu idą w kierunku zachowania daleko idącej zgodności narzędzi do tworzenia aplikacji dla poszczególnych platform. Niewątpliwie jest to korzystne zarówno dla twórców aplikacji, jak i producentów sprzętu, ale także dla samego Microsoftu, który uniknie w ten sposób wspierania zbyt wielu rozwiązań.

Zacznijmy od platformy

W czerwcu br. Microsoft udostępnił .NET Compact Framework SP 2. W tej wersji zwiększono wydajność niektórych bibliotek, m.in. obsługi XML o ok. 40 procent, a ADO .NET o 20 procent. API Windows Forms zostało uzupełnione kilkoma istotnymi "drobiazgami", np. obsługą zdarzeń klawiatury, łatwiejszym manipulowaniem kolorami, a także efektownie działającym przewijaniem i zmianą rozmiarów formatek. SP2 pozwala, by formatki automatycznie podwajały rozmiar piksela, co ułatwia przygotowanie aplikacji mających działać zarówno na desktopie, jak i urządzeniach kieszonkowych.

Znacznie więcej zmian pojawi się w momencie wprowadzenia .NET Compact Framework 2.0, które wg planów ma być dostępne równolegle z aktualizacją "dużego" .NET do wersji 2.0. Microsoft zdecydował, że większość elementów będzie wspólna dla obu środowisk, w tym zmiany w języku C# - typy ogólne (generics), częściowe klasy, iteratory, metody anonimowe (pozwalające osadzać kod delegatu bezpośrednio w miejscu przypisywania) itp. Kolejna wersja .NET Compact Framework będzie mogła działać obok wersji 1.0, jednak oprócz tego będzie zachowana pełna zgodność wsteczna.

Nowy graficzny projektant formularzy do komputerów Pocket PC.

Nowy graficzny projektant formularzy do komputerów Pocket PC.

W wersji 2.0 nacisk ma być położony na poprawę wydajności. Pojawią się w niej całkowicie przepisany JIT (kompilator Just-In-Time) oraz nowy mechanizm obsługi łańcuchów znaków - prawdopodobnie będą zmienione zasady alokacji pamięci. Również mechanizmy obsługi XML zostaną przebudowane. Pojawi się obsługa SOAP 1.2, schematów (łącznie z generowaniem schematów XSD w locie), a także XPath 1.0. Planowane jest także wsparcie dla tzw. własnych delegatów oraz wywołań asynchronicznych.

W .NET CF 2.0 pojawi się wiele mechanizmów, które już są w "dużym" .NET 1.1. Mowa tu np. o obsłudze komponentów COM (tworzenie własnych klas opakowujących wywołania, konwersja typów itp.). Co więcej, z poziomu VS 2005 na komputerze PC będzie można tworzyć obiekty proxy dla obiektów COM uruchamianych w środowisku Windows CE.

W kolejnej wersji CF będzie rozbudowana biblioteka WinForms. Różnice między CF a dużym .NET zostaną praktycznie wyeliminowane - możliwe będzie m.in. dokowanie i zakotwiczanie kontrolek, automatyczne przewijanie, obsługa bitmap w formacie JPG, łatwiejsza będzie obsługa schowka itp. Rozbudowany będzie mechanizm zdarzeń systemowych. Pojawią się także mechanizmy specyficzne dla danej platformy - np. zmiana orientacji interfejsu w pionie/poziomie czy mechanizm przechwytywania wyjątków "pomiędzy" wątkami obsługującymi GUI.

W .NET Compact Framework 2.0 programiści otrzymają do dyspozycji wiele nowych kontrolek. Jedna z nich - RichInk - pozwoli na rozpoznawanie pisma odręcznego, co można wykorzystać np. do dodania do procedury logowania obowiązkowego złożenia podpisu odręcznego. API do autoryzacji w .NET CF 2.0 będzie znacznie uproszczone. System sam wybierze najbezpieczniejszy sposób autoryzacji (obsługiwane będą Kerberos i NTLM). PIN na Pocket PC może mieć 4 cyfry, ale np. na SmartPhone więcej. Warto dodać, że wraz z kolejnymi próbami odblokowania urządzenia czas oczekiwania przed kolejną próbą rośnie wykładniczo. Rozbudowane będzie API do obsługi urządzeń odczytujących odciski palca.

Gra idzie o elastyczność

W kolejnych edycjach platformy .NET do Pocket PC pojawi się też możliwość cyfrowego podpisywania aplikacji niezależnie od mechanizmów zapewnianych w tym względzie przez .NET (podobnie jak w SmartPhone). Prawa do instalacji i wykonania aplikacji będzie można określać niezależnie, co w wielu sytuacjach okaże się na pewno przydatne, np. gdy aplikacja będzie sprzedawana przez partnerów handlowych.

Planowane są 3 tryby pracy: (1) taki, gdzie każda aplikacja może być uruchamiana, (2) taki, w którym arbitralnie decyduje użytkownik, i (3) taki, gdzie analizowany jest normalny łańcuch podpisów. Co ważne, prawo do uruchomienia może być zarówno przyznane, jak i wycofane - albo poprzez odwołanie certyfikatu, albo też przez unieważnienie jednokierunkowego skrótu aplikacji (hash). Można też precyzyjnie określić, jakie operacje (a dokładniej: funkcje API) aplikacja może wywoływać.

W .NET CF 2.0 będzie dostępny bardzo rozbudowany mechanizm do obsługi zdarzeń związanych ze zmianą stanu urządzenia. Wystarczy, że aplikacja "zapisze się" do mechanizmu powiadamiającego o zbyt niskim poziomie baterii lub przyjściu wiadomości SMS - nie będzie potrzeby odpytywania systemu o takie rzeczy. Dzięki takim pozornie drobnym usprawnieniom procesor będzie znacznie mniej obciążony, przez co "czas życia" baterii się wydłuży.

Aby to było możliwe, w systemie przebudowano rejestr. Uporządkowano położenie najważniejszych kluczy zawierających m.in. stan telefonu, identyfikator ostatniego połączenia itp. Program może też "zapisać się" do mechanizmu informującego o zmianie wartości określonego klucza.

W przypadku SmartPhone (czy też Pocket PC z funkcjami telefonu) znacznie uproszczono podstawowe API związane z nawiązaniem połączenia, wysłaniem wiadomości (e-mail lub SMS) oraz dostępem do kontaktów. Dodatkowe dialogi systemowe pozwalają stworzyć GUI ułatwiające użytkownikowi odnalezienie/odfiltrowanie informacji.

Ciekawie rozbudowano mechanizm obsługi SMS-ów. Mechanizmy powiadamiające można skonfigurować tak, że będą reagować na określone wyrazy, numer wysyłający itp. W ten sposób można łatwo tworzyć ciekawe aplikacje, które do komunikacji użyją specjalnie sformatowanych wiadomości, np. gry wieloosobowe lub systemy synchronizujące się wzajemnie za pomocą wiadomości SMS.

W porozumieniu z O2 i TeliaSonera Microsoft będzie oferować usługi lokalizacyjne na terenie Europy. Ze swojej strony Microsoft zapewnia system MapPoint (usługę sieciową umożliwiającą dostęp do map, które pozwalają zlokalizować dany punkt na niej i np. wytyczyć trasę do innych punktów). Dzięki odpowiednim mechanizmom (klientom usług www) system SmartPhone będzie mógł odczytać informacje o swojej lokalizacji. Następnie informacje te mogą być przekazane do serwerów MapPoint, które prześlą do SmartPhone fragment mapy albo też ciąg słownych wskazówek, jak dojść do określonego punktu.

Jedną z liczniejszych grup aplikacji do Windows CE są gry. W kolejnej wersji systemu pojawi się Direct3D. Nie będzie to API w stu procentach zgodne z pełnym DirectX, ale będzie zawierać główne funkcje. Sprzętowo (lub programowo) będzie można wykonywać transformacje, oświetlać scenę, dostępny będzie także moduł rastrujący. Co ciekawe, oprócz wyświetlania grafiki 3D w konkretnym oknie, możliwe będzie stosowanie trybu pełnoekranowego.

Na razie nie wiadomo, kiedy pojawią się interfejsy Managed API do DirectX (jak dla DirectX 9). Prawdopodobnie na początek Microsoft będzie zalecać łączenie kodu .NET i odwołań do silnika DirectX (dzięki RCW). Standardowe API .NET CF 2.0 będzie wspierać obsługę wbudowanego w telefon aparatu fotograficznego/kamery, w tym prawdopodobnie także np. możliwość oprogramowania zmian zachodzących w obrazie.

Nowy SQL do kieszeni

SQL Server CE doczeka się wkrótce następcy, którego oficjalna nazwa brzmi: SQL Mobile (kodowa nazwa to Laguna). Nowy serwer jest rozwijany równolegle z Yukonem. Beta 1 będzie dostępna wraz z betą 2 SQL Server 2005 i Visual Studio 2005 Beta 1. Wersja RTM pojawi się w pierwszej połowie 2005 r. wraz z SQL Server 2005 oraz VS 2005. Baza będzie działać na SmartPhone, Pocket PC, urządzeniach wyposażonych w CE .NET, a także na urządzeniach w rodzaju Tablet PC. W stosunku do CE 2.0 silnik bazy uległ licznym zmianom. Obsługiwane są mechanizm blokad, i to na poziomie wierszy i stron, oraz transakcje ACID (Atomicity, Consistency, Isolation, Durability), co pozwala na równoległą aktualizację przez wielu użytkowników.

W przypadku urządzeń kieszonkowych pełna transakcyjność przydaje się w momencie, gdy kilka aplikacji chce skorzystać z bazy, albo też, gdy chcemy "w tle" synchronizować informacje z serwerem. Optymalizator, jak w normalnej wersji SQL Server, będzie analizował różne plany działania, gromadził statystyki itp. Wraz z wprowadzeniem .NET CF 2.0 biblioteka ADO .NET będzie obsługiwać te same mechanizmy, co w pełnym .NET Framework.

Laguna wprowadzi na platformę Windows CE możliwość wykorzystania specjalnego kursora SqlCeResultSet, który będzie mechanizmem specyficznym dla platformy Windows CE. W odróżnieniu od standardowego kursora DataReader pozwoli on nie tylko odczytywać, ale także aktualizować dane w bazie. SQL Mobile będzie się integrować z SQL Workbench - głównym narzędziem dla programisty w Yukonie. Elementy niedostępne w tej edycji SQL będą po prostu zablokowane, ale podstawowe mechanizmy, np. przeglądarka obiektów, edytor kwerend itp., będą takie same. Laguna będzie też obsługiwać mechanizmy transformacji danych (DTS).

W serwerze Laguna zmieniono mechanizmy synchronizacji. Po pierwsze, aplikacja może być łatwo informowana o postępach w przesyłaniu zmian na główny serwer. Można też tworzyć kopie błyskawiczne stanu replikowanych danych, by później móc łatwo wykonać synchronizację różnicową. Można również definiować replikację, wskazując tylko niektóre kolumny, a także po stronie SQL Mobile pisać własne moduły rozwiązywania konfliktów. Konfiguracja replikacji może także odbywać się z poziomu SQL Workbench.

Do projektowania baz można użyć Visual Studio 2005. Z poziomu IDE będą dostępne: Data Designer (projektowanie schematów, edycja i podgląd danych itp.) oraz Data Connector (tak jak w "normalnym" .NET upraszczający tworzenie standardowych formatek do pracy z danymi). Server Explorer umożliwi przedstawienie listy baz zainstalowanych na emulatorze lub urządzeniu fizycznym. W skład Compact Framework 2.0 będzie też wchodzić komponent SmartTask obsługujący relacje hierarchiczne, zaś zawierający bazę plik SDF będzie immanentną częścią aplikacji, w wyniku czego, nawet jeżeli ulegnie zmianie, np. podczas testowania, zmiany zostaną automatycznie przeniesione na docelową platformę.

Nie zmienią się zasady licencjonowania - serwer SQL Mobile będzie można swobodnie rozprowadzać (po uprzedniej darmowej rejestracji). W przypadku łączenia z SQL Server wymagane będą oczywiście licencja CAL oraz licencja "na procesor" w przypadku samego serwera SQL Server.

Mobilny dramat

Projektant, który ma zamiar wykorzystywać technologie mobilne, staje przed trudnym wyborem. Z jednej strony wybór jest "technologiczny" - Java, .NET, Code Warrior (Palm OS) itp. Z drugiej, bardziej istotny jest wybór typu urządzenia przenośnego. Czy potrzebny jest laptop, a może lepszy jest Tablet PC? A może wszystkie niezbędne moduły zmieszczą się na Pocket PC? Albo też: czy jest sens walczyć z ograniczeniami prostego telefonu komórkowego? Tak naprawdę wybór technologii jest wtórny wobec wyboru platformy sprzętowej. Microsoft stara się, by jego platformy były możliwie jednolite, a co za tym idzie, aby tworzenie oprogramowania do nich wyglądało w miarę podobnie. Taka polityka ma wyeliminować sytuację, w której jakaś gra jest "zoptymalizowana" do jakiegoś modelu telefonu, zaś dla innego modelu istnieje wersja oddzielna. Naturalną konsekwencją tego są jednak duże wymagania sprzętowe dla "SmartPhone", Microsoft stara się bowiem ujednolicać "w górę".

Platforma na piątkę

W kolejnej wersji systemu do urządzeń przenośnych - Windows CE 5.0 - zmieniono licencję udostępniania kodu źródłowego. Po raz pierwszy Microsoft pozwala licencjobiorcom na podstawie kodu Windows CE tworzyć i sprzedawać własne rozwiązania. Dziewiątego lipca br. Windows CE 5.0 uzyskało status RTM.

Wsparcie projektów mobilnych ze strony Visual Studio 2005 zostało bardzo rozbudowane. Po pierwsze, projektant formatek nie jest "klonem" projektanta aplikacji do Windows, tylko zupełnie nowym rozwiązaniem. Dzięki temu podczas projektowania interfejsu wyraźnie widać, jak aplikacja będzie wyglądać na małym ekranie. Przy projektowaniu można uwzględniać specyfikę konkretnego urządzenia, łatwo zmieniać orientację czy rozdzielczość, dodawać "skórki", czy też (jak w normalnych WinForms) używać dziedziczenia "układu" formatek.

Emulator urządzeń przenośnych w Windows CE 5.0 to zupełnie nowy produkt. Zmieniono mechanizm emulowania procesora ARM, dodano "prawdziwe" interfejsy sieciowe, można skorzystać z 4 portów COM, symulować połączenia ActiveSync itp. Podobnie jak w przypadku Virtual PC, można definiować "współdzielone" foldery, które będą dostępne dla symulowanego urządzenia. Przy śledzeniu wykonania programu na pewno przyda się możliwość wielokrotnego "zapisywania" stanu emulatora.


Zobacz również