Интеллектуальные устройства, использующие операционную систему реального времени (Real Time Operating System - RTOS) Windows® CE - мобильные телефоны, КПК и контроллеры - могут выполнять приложения, разработанные в Visual Studio с использованием новой библиотеки UODONETCF.dll, поставляемой с UniVerse Clients 10.3. В данной статье рассматривается существующее приложение для ПК, написанное на C# с использованием U2 UO.NET, и показывается, как выполнить миграцию этого приложения в новую компактную интегрированную среду, чтобы его можно было запустить на интеллектуальном мобильном устройстве. Новое приложение для мобильного устройства в основном использует исходный код оригинального приложения. В данной статье описывается, как разработать новое приложение, используя Microsoft® Visual Studio 2008 C# .NET Compact Framework и библиотеку UO.NETCF. Можно использовать и другие языки, например, Visual Basic или C++.
UniObject .NET Compact Framework представляет собой интегрированную среду для персистентных приложений. Это означает, что после установки соединения между интеллектуальным устройством и базой данных U2 взаимодействие между этим устройством и базой данных не отличается от взаимодействия между терминалом и базой данных. Соединение поддерживается, пока не будет вызван метод UniObject CloseSession(). Отличие между приложениями, работающими через браузер или с использованием Web-сервисво, и приложением UO .NET CF заключается в том, что браузер или Web-сервис должны устанавливать соединение между приложением и базой данных для каждого запроса.
Ниже приведен пример использования приложения на базе среды Compact Framework. В этом сценарии сотрудник склада проводит инвентаризацию. Он использует приложение на интеллектуальном устройстве для проверки штрих-кодов товаров перед занесением их в систему складского учета.
| Действие сотрудника | Реакция приложения |
|---|---|
| Сотрудник регистрируется в системе через интеллектуальное устройство. | Создается соединение с базой данных U2. |
| Сотрудник сканирует штрихкод товара. | Происходит поиск товара и возвращается его изображение. |
| Сотрудник визуально проверяет соответствие возвращенного изображения реальному товару. | Осуществляется подсчет товара и товар вносится в базу данных. |
Обзор UniObject .NET Compact Framework
На рисунке 1 представлена высокоуровневая архитектурная схема приложения, использующего UniObject .NET Compact Framework. Далее кратко описывается каждая часть архитектуры.
Рисунок 1. Архитектура приложения, созданного с использованием UO .NET Compact Framework
Microsoft Visual Studio 2008 - это интегрированная среда разработки (Integrated Development Environment - IDE), которая помогает разрабатывать приложения для интеллектуальных устройств с такой же легкостью, как и приложения для настольных компьютеров. Разработка для интеллектуальных устройств в Visual Studio включает в себя набор типов проектов и эмуляторов, предназначенных для разработки приложений для КПК, смартфонов и встроенных устройств с Windows CE.
.NET Compact Framework использует операционную систему Windows CE для реализации базовой функциональности и ряда специфичных для устройства функциональных возможностей. Некоторые типы и компоновочные модули, например для Windows Forms, графики, прорисовки и Web-сервисов, были скомпонованы заново для эффективной работы на интеллектуальных устройствах, а не скопированы из полной среды .NET Framework. Среда .NET Compact Framework обеспечивает следующую функциональную совместимость с Windows CE:
- Совместимость с "родной" системой защиты.
- Полная интеграция с "родными" программами настройки.
- Совместимость с "родным" кодом при использовании COM interop (взаимодействие с СОМ) и платформенных вызовов.
Среда .NET Compact Framework Common Language Runtime (CLR) также была перекомпонована для работы в условиях ограниченных ресурсов и ограниченного объема памяти и для эффективного использования заряда аккумулятора. Между Windows CE и CLR имеется уровень адаптации к платформе (не показанный на рисунке 1), который отображает интерфейсы и сервисы устройства, требуемые средой CLR и Framework, на интерфейсы и сервисы Windows CE.
Среда .NET Compact Framework состоит из подмножества среды .NET Framework и других функциональных элементов, разработанных специально для .NET Compact Framework. Она предоставляет возможности и средства для простого переноса "родных" приложений, разработанных для среды .NET Framework, и настольных приложений на интеллектуальные устройства.
Прикладной уровень - это уровень, на котором размещаются ваши прикладные объекты и библиотеки, созданные в Visual Studio 2008. UO.NETCF - это библиотека UO .NET Compact Framework. U2CFdemo - это приложение, рассматриваемое в разделе Анализ нового приложения UO.NETCF данной статьи. Приложение U2CFdemo содержит пользовательский интерфейс (User Interface - UI), интерфейс представления (Presentation Interface - PI) и бизнес-процесс rc2crypt.
Среда Microsoft .NET Framework
Среда Microsoft .NET Framework - это интегрированная среда выполнения программ, которую можно установить на компьютерах с операционными системами Microsoft Windows.
UniObjects for .NET Framework - это интерфейс к базам данных UniVerse и UniData через среду Microsoft .NET. UniObjects for .NET - это закрытый интерфейс прикладных программ (application program interface - API) промежуточного уровня, разработанный специально для .NET Framework. Этот интерфейс представляет собой управляемый код, написанный в среде C# Common Language Runtime (CLR) и предназначенный для развертывания на настольных рабочих станциях.
UniObjects for .NET Compact Framework
UniObjects for .NET Compact Framework - это сокращенная версия полноценной среды UO.NET. Она предназначена для развертывания на интеллектуальных устройствах с операционной системой Windows CE.
Более подробное рассмотрение среды UniObject .NET Compact Framework
Среда UniObjects for .NET Compact Framework построена на том же исходном коде, что и UniObjects for .NET. Как UO.NET, так и UO.NETCF используют одно и то же имя пространства имен - IBMU2.UODOTNET. Компоновочный модуль для UO .NETCF - UODOTNET4CF.dll. Этот модуль можно найти в каталоге ..\UNIDK\uonet\bin после установки компонентов UNIDK с компакт-диска UniVerse 10.3 Clients CD.
Среда UO .NET Compact Framework представляет собой подмножество библиотеки классов UO .NET Framework. В UO .NET Compact Framework недоступны следующие классы:
- Connection pooling (организация пулов соединений). Организация пулов соединений полезна в трехуровневой среде. Однако UO .NETCF использует клиент-серверную архитектуру подключений по требованию, которой пулы соединений не дают никаких преимуществ. В результате первоначальное установление подключения к базе данных U2 выполняется медленно, но затем благодаря персистентному соединению обеспечивается быстрый обмен данными.
- Tracing and logging (трассировка и регистрация событий). Поскольку этот класс недоступен, приложения для мобильных устройств должны допускать перехват исключительных ситуаций. Эти ситуации будут видимы для интеллектуального устройства. Для отладки также можно использовать регистрацию событий на стороне сервера U2.
- Performance counters (счетчики производительности). Поскольку этот класс недоступен, следует добавлять таймеры в приложения для интеллектуальных устройств во время разработки и использовать их для исследования узких мест производительности.
- Secure connection (защищенное соединение). В текущей версии.NET 3.5 sp1 SSLStream недоступен. Поэтому SSL-взаимодействие между интеллектуальным устройством и сервером U2 невозможно. Однако .NET CF позволяет использовать пространство имен system.security.cryptology, предоставляющее сервисы криптографии. К этим сервисам относятся кодирование и декодирование данных, а также многие другие операции, такие как хэширование, генерация случайных чисел и аутентификация сообщений. Вы можете использовать эти сервисы для кодирования важных строк данных. База данных U2 поддерживает двунаправленное кодирование этих строк.
- Configuration files (конфигурационные файлы). Это файлы с расширением .config, которые обычно используются для регистрации событий на клиентской стороне и для настройки пулов соединений. Приложениям для интеллектуальных устройств специальные конфигурационные файлы для U2 не требуются.
Минимальные требования к инструментальным средствам разработки
Сейчас существует много типов устройств, на которых работает Windows CE - от встраиваемых контроллеров до переносных устройств, таких как мобильные телефоны и КПК. Visual Studio 2008 содержит практически все инструменты для разработки и эмуляции устройства с Windows CE в среде .NET Compact Framework. Само интеллектуальное устройство не требуется.
В следующих разделах представлена подробная информация о минимальных требованиях, необходимых для разработки приложений для интеллектуальных устройств с использованием среды Microsoft .NET Compact Framework.
Требования для разработки приложений для эмулированного интеллектуального устройства
- Рабочая станция под Windows (XP, 2003 и т.д.)
- .NET-программа, использующая Visual Studio .NET 2008 (пример в данной статье использует C#)
- База данных U2, использующая UniData 7.2 или UniVerse 10.3
- Microsoft ActiveSync Version 4.5
- .NET Framework 2.0 или выше
- Клиентские приложения UniDK - UniVerse 10.3
- Клиентские приложения UniDK - UniData 7.2a (сентябрь 2009 года)
Требования для разработки приложений для физического интеллектуального устройства
- Рабочая станция под Windows (XP, 2003 и т.п.)
- .NET-программа, использующая Visual Studio .NET 2008 (пример в данной статье использует C#)
- База данных U2, использующая UniData 7.2 или UniVerse 10.3
- Microsoft ActiveSync Version 4.5
- Bluetooth или USB-кабель для ActiveSync
- Беспроводная сеть для взаимодействия с сервером БД.
- NET Framework 2.0 или выше
- Клиентские приложения UniDK - UniVerse 10.3
- Клиентские приложения UniDK - UniData 7.2a (сентябрь 2009 года)
Требования для взаимодействия с физическим интеллектуальным устройством
Интерфейсы, рассматриваемые в данном разделе, применяются только для описанного в этой статье примера. Существуют другие интерфейсы и протоколы, доступные для интеллектуальных устройств, но они не являются предметом рассмотрения данной статьи.
- USB. Этот интерфейс используется для синхронизации. Драйвер Windows CE USB Serial Host Driver эмулирует последовательный интерфейс, использующийся программой Microsoft ActiveSync для обмена данными с устройствами, на которых работает Windows CE или Windows Mobile, по USB-соединению и с компьютером, на котором работает хост-система разработки под Microsoft Windows. Этот интерфейс может также использоваться интеллектуальными устройствами для обмена данными с сервером U2 DB Server по протоколу TCP/IP.
- Bluetooth. Bluetooth - это технология беспроводного обмена данными, позволяющая интеллектуальным устройствам, расположенным поблизости (примерно на расстоянии 10 метров) обмениваться данными с хост-системой разработки. Этот интерфейс обычно используется вместе с ActiveSync, требующейся для проекта Visual Studio при разработке приложения.
- Wi-Fi. Wi-Fi - локальная сеть, обмен данными в которой происходит при помощи радиоволн по протоколу, основанному на стандартах IEEE 802.11. Этот интерфейс может использоваться интеллектуальным устройством для обмена данными с сервером U2 DB Server по протоколу TCP/IP.
- Mobile Data Plan. Интеллектуальные устройства, использующие Edge, 3G или GPRS могут обмениваться данными с сервером U2 DB Server через Интернет по протоколу TCP/IP.
Анализ исходного "донорского" приложения UO.NET
В данной статье в качестве основы нового приложения UO.NETCF используется приложение UO.NET. Приложение UO.NET называется донорским. В разделе Загрузка приведена ссылка на файл проекта Visual Studio для донорского приложения.
Донорское приложение было написано при помощи Visual Studio 2003. При разработке этого приложения автор не разделил пользовательский интерфейс и интерфейс представления, поэтому получился один большой файл с исходным кодом. В более новых версиях Visual Studio стало легче проектировать и выделять логические уровни. При разработке с использованием Visual Studio полезно ознакомиться со статьей "Шаблоны и методики Microsoft для разработки программного обеспечения" (ссылка приведена в разделе Ресурсы).
На рисунке 2 показан исходный пользовательский интерфейс донорского приложения. Приложение имеет три отдельные рабочие области, подробно описанные далее.
Рисунок 2. Пользовательский интерфейс донорского приложения
- Тип DBMS и группа свойств соединения
- Введите имя хоста или IP-адрес сервера U2 DB (
localhostуказан только для справки). - Выберите тип базы данных U2.
- Введите имя учетной записи (по умолчанию
demoдля UniData иHS.SALESдля UniVerse). - Введите корректное имя пользователя для сервера U2 DB.
- Введите корректный пароль для пользователя.
- Введите имя хоста или IP-адрес сервера U2 DB (
- Имя и идентификатор источника данных
- Введите корректное имя файла U2.
- Введите корректный идентификатор.
- Сотрудник визуально проверяет товар
- Осуществляется подсчет товара и обновляется база данных.
На рисунке 3 показано донорское приложение после операции чтения.
Рисунок 3. Донорское приложение после операции чтения
Анализ нового приложения UO.NETCF
Новое приложение UO.NETCF, основанное на донорском приложении, называется в данной статье приложением для интеллектуального устройства. В разделе Загрузка приведена ссылка на файл проекта Visual Studio с приложением для интеллектуального устройства.
Приложение для интеллектуального устройства использует только часть архитектурной модели "модель-представление-контроллер" (Model-View-Controller - MVC). Проект UO .NETCF использует уровень пользовательского интерфейса и уровень представления. На уровень представления скопирована с донорского приложения и помещена только логика интерфейса к U2 и представления. Механизма переноса логики пользовательского интерфейса донорского Windows-приложения на интеллектуальное устройство не существует. Из-за простоты донорского приложения нам было достаточно легко создать уровень пользовательского интерфейса с нуля. Пример исходного кода, сопровождающий данную статью, содержит комментарии, описывающие изменения в коде, которые были сделаны при переходе с одной среды на другую.
Работа приложения для интеллектуального устройства
На рисунке 4 показан пользовательский интерфейс приложения для интеллектуального устройства. В .NET Framework для отображения рамки вокруг группы элементов управления может использоваться групповой блок (group box). Например, донорское приложение использовало два групповых блока для типа базы данных U2 и для параметров соединения. Однако в .NET Compact Framework групповые блоки отсутствуют.
Приложение для интеллектуального устройства имеет шесть отдельных рабочих областей, подробно описанных далее.
Рисунок 4. Пользовательский интерфейс приложения для интеллектуального устройства
- Открытие исходного меню и заголовок приложения
- Из этого окна с именем приложения (U2U S29 U2CFdemo) можно войти в меню интеллектуального устройства или закрыть приложение.
- Свойства соединения
- Введите имя хоста или IP-адрес сервера U2 DB (имя
localhostуказано только для справки и не работает на интеллектуальных устройствах). - Выберите тип базы данных U2.
- Введите имя учетной записи (по умолчанию
demoдля UniData иHS.SALESдля UniVerse). - Введите корректное имя пользователя для сервера U2 DB.
- Введите корректный пароль для пользователя.
- Введите имя хоста или IP-адрес сервера U2 DB (имя
- Имя и идентификатор источника данных
- Введите корректное имя файла U2.
- Введите корректный идентификатор.
- Результат
- В этой области отображаются результат операции Read и выходная информация программы rc2crypt.
- Сообщения о состоянии
- В этой области отображается сообщение о состоянии каждой операции (Connect (подключение). Disconnect (отключение), Update (обновление), OpenFile (открытие файла), Read (чтение), Insert (вставка), Delete (удаление) и rc2crypt).
- Меню Connect и Operation
- Чтобы компенсировать ограниченный размер экрана обычного интеллектуального устройства, приложение использует всплывающие меню для вызова методов подключения и операций.
- Варианты меню Connect: Connect, Disconnect и End.
- Варианты меню Operation: Update, OpenFile, Read, Insert, Delete и rc2crypt.
На рисунке 5 показан пользовательский интерфейс после операции чтения.
Рисунок 5. Область результата после операции чтения
Бизнес-процесс (Business Process) включен в пример, чтобы продемонстрировать, как информация передается в бизнес-объект для манипулирования данными. Наш пример собирает данные из окна записи в файле и передает ее в объект кодирования под названием rc2crypt для обработки. Обработанные данные возвращаются и отображаются в области результата, как показано на рисунке 6.
Рисунок 6. Возвращенный результат после обработки бизнес-процессом rc2crypt
Интегрированная среда UniObjects .NET Compact Framework – это еще один инструмент от группы разработки U2, позволяющий разработчикам создавать приложения для интеллектуальных устройств. Разработчики приложений должны уметь использовать эту библиотеку для создания и совершенствования своих решений.
| Описание | Имя | Размер | Метод загрузки |
|---|---|---|---|
| Проект донорского C#-приложения1 | uonetfilecs2009.zip | 108 KБ | HTTP |
| Проект приложения U2 Compact Framework2 | U2CFdemo.zip | 108 KБ | HTTP |
| Power Point слайды U2 Compact Framework3 | U2US32s.zip | 1229 KБ | HTTP |
| Проект U2 Compact Framework XML Query4 | UODOTNETCF.zip | 108 KБ | HTTP |
Заметка
- Проект Visual Studio с реализацией исходного донорского проекта UO.NET.
- Проект Visual Studio с реализацией нового проекта UO.NETCF.
- Проект UO.NETCF, использующий XML-запрос и DataSet.
- Проект Visual Studio с реализацией проекта UO.NETCF, использующего XML-запрос и DataSet.
- Примите участие в обсуждении материала на форуме.
- На сайте
U2
TechConnect имеются ссылки для поиска базе знаний IBM U2 Knowledge доступа к документам U2 Entitled Documents.
- Шаблоны и методики Microsoft для разработки программного обеспечения.

