Gotowi do biegu

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

Microsoft stawia na jak największą zgodność 'mobilnej' platformy programistycznej z tą dla '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%, a ADO .Net o 20%. 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.

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 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 dla 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 więc 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 odpowiednich usług web) system SmartPhone będzie mógł odczytać informacje o swojej lokalizacji. Następnie informacje te mogą być przekazane na serwery 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 na Windows CE są gry. W kolejnej wersji systemu pojawi się Direct3D. Nie będzie to API w 100% 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 dedykowanym okienku, 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 motoru 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.


TOP 200