Андрей Колесов

Компания Microsoft (http://www.microsoft.com) вышла на рынок мобильных и встроенных устройств* в 1996 г., представив первую версию ОС Windows CE. Практически одновременно с появлением карманных персональных компьютеров Handheld PC 1.0 корпорация начала выпуск соответствующих платформ и средств разработки приложений.


* Под мобильными системами мы в данном случае понимаем миниатюрные устройства, которые можно носить в кармане пиджака, - сотовые телефоны, органайзеры, карманные ПК и т. п. Ноутбуки в эту категорию не попадают.

В настоящее время Microsoft предлагает широкий спектр инструментов, предназначенных для создания приложений для операционных систем Microsoft Pocket PC, Pocket PC Phone Edition и Smartphone. Некоторые из них уже распространяются на коммерческой основе, другие находятся на этапе бета-тестирования.

Ситуация в области ПО для мобильных систем в значительной степени отличается от того, что мы видим последние годы в сфере настольных компьютеров. Выделим некоторые основные моменты, важные для понимания специфики разработки приложений для мобильных систем:

  • огромное число устройств разного типа, использующих столь же многочисленные микропроцессоры различной архитектуры (не менее 300);
  • для пользователя аппаратура и используемое с ней ПО представляют собой единый продукт (модификации состава ПО крайне ограничены);
  • разработка мобильных приложений ведется в кросс-режиме - обычно используются настольные ПК, эмулирующие работу мобильных устройств.

С учетом этого рассмотрим основные типы программных продуктов для мобильных систем, предлагаемых Microsoft.

Платформы и ОС

Windows CE

Это не операционная система в привычном для пользователя настольного ПК понимании, а ядро ОС, которое, в частности, предоставляет разработчику программный интерфейс (API), обеспечивающий независимость от конкретной аппаратной конфигурации, например, от архитектуры микропроцесса. Windows CE поставляется разработчикам устройств, которые на ее основе создают законченные решения (эта система используется не только для карманных устройств - она широко применяется в различных аппаратных средствах, например, для управления станками, светофорами и т. п.). Существуют различные модели распространения Windows CE, в том числе в исходных кодах и с возможностью внесения изменений и адаптации под конкретное устройство.

В конце 2002 г. Microsoft выпустила версию Windows CE 4.0. В тот момент эта ОС была представлена как Windows CE .NET, но такое название лишь запутало ситуацию, так как продукт, вообще говоря, не имел отношения к архитектуре .NET. Скорректировав свою маркетинговую политику продвижения .NET (см. PC Week No 5'2003, с. 23), Microsoft с начала 2003 г. для обозначения этой версии ОС использует индекс 4.x**.


**23 июня Microsoft, представив новую версию ОС Microsoft Pocket PC, объявила об объединении всех своих продуктов для мобильных устройств под общим брэндом Windows Mobile.

Кроме того, на рынке до сих пор активно используются Windows CE версии 3.0 и даже 2.0. Это в значительной степени объясняется привязкой конкретной ОС к определенным типам процессоров - в новых системах Microsoft довольно решительно отказывается от поддержки унаследованных архитектур.

.NET Compact Framework

Это вариант операционной среды .NET Framework (см. "Введение в .NET Framework", "BYTE/Россия" №1'2002), адаптированный для мобильных устройств и включающий подмножество библиотек классов Visual Studio .NET и среду исполнения CLR. В его состав входит также набор мобильных элементов управления ASP.NET Mobile Controls, с помощью которых любое приложение легко адаптировать к работе с различными браузерами, учитывающими специфику того или иного мобильного устройства.

Среда .NET Compact Framework совместима с Windows CE 3.x и 4.0 - написанные для нее приложения могут функционировать в любой из этих ОС. Но главное, что разрабатывать мобильные приложения для .NET Compact Framework можно с помощью Visual Studio .NET, а значит, различия между процессами создания ПО для мобильных и настольных систем сведены к минимуму.

Платформы Pocket PC и Smartphone

Это операционные системы для пользователя КПК или смартфона, предназначенные для работы на соответствующих типах устройств. В целом эти системы аналогичны по назначению привычным настольным версиям Windows, но поставляются только в комплекте с устройствами и содержат полный набор прикладного ПО (офисные приложения и т. п.). В настоящее время на рынке представлены версии Pocket PC 2002 и Smartphone 2002, реализованные на базе Windows CE 3.0. В 2003 году ожидается выпуск следующей версии Pocket PC, имеющей сегодня кодовое название Ozone и построенной на базе Windows CE 4.2.

Pocket PC 2002 может использовать среду .NET Compact Framework (версии для Smartphone пока нет). В версию Ozone среда .NET Compact Framework будет включена изначально, и ее можно будет широко использовать для реализации функций ОС (в частности, для поддержки пользовательского интерфейса).

Средства разработки

В настоящее время Microsoft предлагает три основных "мобильных" инструмента разработки. Первый - eMbedded Visual Tools 3.0 для Windows CE 2.х и 3.x. Он включает две автономные среды, eMbedded Visual C++ 3.0 и eMbedded Visual Basic 3.0. Второй инструмент - eMbedded Visual С++ 4.0 для Windows CE 4.х. Третий - Visual Studio .NET на языках C# и VB.NET; в нем использованы дополнительные наборы Smart Device Programmability и ASP.NET Mobile Controls для создания клиентских программ и Web-приложений, функционирующих в .NET Compact Framework.

Для понимания специфики использования различных инструментов следует учитывать особенности машинного, интерпретируемого и управляемого кода.

Машинный код создается средствами eMbedded Visual C++ 3.0 и 4.0. Он используется там, где необходимо обеспечить высокое быстродействие, использовать прямой доступ к аппаратному обеспечению либо минимизировать размер программы.

Интерпретируемый код пишется на eMbedded Visual Basic 3.0. Преобразование в машинный код выполняется в процессе выполнения приложения. Такой код работает медленнее, но функционирует непосредственно под управлением Windows CE, хотя и не поддерживает некоторые функции.

Управляемый код создается в Visual Studio .NET и работает только в среде .NET Compact Framework. Его использование позволяет сократить сроки разработки ПО и обеспечить исполнение на различных процессорах и ОС. Основные возможности различных инструментов перечислены в таблице.

Кроме того, существует задача управления базами данных. Для ее решения Microsoft предлагает использовать СУБД SQL Server 2000 Windows CE 2.0.

Далее мы рассмотрим основные характеристики инструментальных средств.

eMbedded Visual C++ 3.0

Среда разработки приложений Microsoft eMbedded Visual C++ 3.0 включает компилятор языка C++, который генерирует машинный код устройств, основанных на ОС Windows CE. Отладчик eMbedded Visual C++ может работать через активное соединение Microsoft ActiveSync либо по локальной вычислительной сети по протоколу TCP/IP. Имеются программные эмуляторы аппаратной части Pocket PC 2002 и Smartphone 2002. Опубликовав спецификацию Pocket PC 2002, корпорация Microsoft представила новый эмулятор для использования с инструментальным комплектом Pocket PC 2002 SDK, более точно соответствующий реальному устройству на базе Windows CE. Этот новый эмулятор обеспечивает исполнение на виртуальном мобильном устройстве двоичных файлов Windows CE-приложений, никакой специальной подготовки кода при этом не требуется.

Среда eMbedded Visual C++ предназначается для разработки драйверов для устройств Pocket PC и любых других мобильных систем класса Windows Powered; приложений в машинном коде; игр, использующих быструю графику; серверов COM и элементов управления Microsoft ActiveX.

eMbedded Visual Basic 3.0

Эта система используется для создания приложений на языке Visual Basic и их компиляции в интерпретируемый P-код. Большинство мобильных устройств класса Windows Powered оснащается встроенными средствами исполнения приложений, сгенерированных с использованием Visual Basic, однако некоторые специализированные встраиваемые аппаратные платформы на базе Windows CE лишены таких средств.

eMbedded Visual Basic базируется не на полнофункциональном языке программирования Visual Basic, а на соответствующем языке описания сценариев, соответственно, эта среда не поддерживает многих возможностей среды разработки Visual Basic 6.0 для настольных машин. В частности, имеются следующие ограничения:

  • все переменные по умолчанию относятся к виду variant; строгий контроль типов не предусмотрен;
  • разработка элементов управления ActiveX не поддерживается, но возможно использование готовых компонентов;
  • ряд встроенных элементов управления Visual Basic не поддерживается, некоторые свойства отсутствуют.

eMbedded Visual Basic не может использоваться для разработки приложений, предназначенных для исполнения на платформе Windows Powered Smartphone 2002. Дальнейшая разработка технологии eMbedded Visual Basic прекращена, вместо нее предлагается использовать более мощный и удобный язык Visual Basic .NET. Microsoft рекомендует создавать все новые приложения с помощью VB.NET, а eMbedded Visual Basic использовать только для сопровождения существующего ПО.

eMbedded Visual C++ 4.0

Microsoft eMbedded Visual C++ 4.0 поддерживает разработку приложений для Windows CE 4.x, в том числе для устройств Pocket PC Ozone. Версию 4.0 отличает ряд усовершенствований, в том числе механизм отладки в процессе исполнения Just-In-Time debugging, позволяющий диагностировать не обработанные программой исключительные ситуации; механизмы структурной обработки исключительных ситуаций языка C++; "подключение" к процессам для удобства "попроцессной" отладки; улучшенная интеграция с новым эмулятором.

Visual Studio .NET

Этот инструмент ориентирован на разработку широкого круга приложений на языках VB.NET и C# для выполнения в среде .NET Compact Framework. При этом используется та же самая среда, что и при создании настольных и серверных приложений, но только с дополнительными наборами Smart Device Programmability и ASP.NET Mobile Controls (эти наборы входят в состав VS.NET 2003). С помощью VS.NET разрабатываются приложения двух видов - клиентские и мобильные (см. рисунок).

Fig.N Схема разработки приложения для мобильных систем с помощью Visual Studio .NET.

Клиентские приложения для устройств, использующих библиотеки и среду исполнения .NET Compact Framework, создаются с помощью набора Smart Device Programmability, ранее носившего название Smart Device Extensions. Этот вариант рекомендуется применять в следующих ситуациях:

  • построение приложений для платформ типа Pocket PC или Pocket PC 2002 или устройств, базирующихся на ОС Windows CE, с использованием библиотеки .NET Compact Framework;
  • создание компонентов распределенных вычислительных сред;
  • разработка приложений, к которым предъявляется требование интеграции с Web-сервисами;
  • перенос на мобильные устройства существующих приложений, созданных с использованием Visual Studio .NET;
  • построение приложений, к которым предъявляются высокие требования в части коммуникационных возможностей;
  • создание кода, способного работать на множестве различных устройств;
  • разработка на языке C#.

Серверные Web-приложения разрабатываются с помощью набора ASP.NET Mobile Controls, ранее носившего название Microsoft Mobile Internet Toolkit. ASP.NET не требует установки на клиентское устройство никаких дополнительных компонентов. Вместо этого используется серверная логика, адаптирующая способ отображения страниц к особенностям браузера на конкретном устройстве, причем поддерживаются языки разметки Wireless Markup Language (WML), HTML и compact HTML (cHTML).

Решение о выборе клиентского или серверного варианта должно приниматься с учетом нескольких факторов. При работе на базе браузера вариант мобильного Web-приложения можно считать оптимальным, если браузер поддерживает требуемые функции. Такое решение требует постоянного соединения с Интернетом. В автономном режиме работы, если необходим доступ к данным и их обработка в автономном режиме, предпочтительным будет приложение для клиентского устройства.

Что касается поддержки различных устройств, то, если необходима поддержка любых портативных устройств, оснащенных браузерами, следует выбрать вариант Web-приложения. Если на всех целевых устройствах поддерживается инфраструктура .NET Compact Framework, рекомендуется предпочесть приложение для клиентского устройства.

Сравнение возможностей инструментальных средств Microsoft

  eMbedded Visual C++ 3.0 eMbedded Visual Basic 3.0 eMbedded Visual C++ 4.0 (SP2) VS.NET с дополнительным набором функций Smart Device Programmability ASP.NET (в составе VS.NET)
Машинный код X   X    
Интерпретируемый код   X      
Управляемый код       X  
Поддержка Windows CE 2.x и 3.x (Pocket PC или Pocket PC 2002) X X   X X
Поддержка Smartphone 2002 X       X
Поддержка Windows CE 4.x (Pocket PC Ozone)     X X X
Поддержка мобильных устройств на платформах, отличных от платформ Microsoft         (X) (необходим браузер)
Обозначения: X - поддерживается; (X) - поддерживается с некоторыми ограничениями.