Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП / ООП / ры_приложений_полная_книга.pdf
Скачиваний:
500
Добавлен:
18.02.2017
Размер:
7.08 Mб
Скачать

Более подробно проектирование слоя доступа к данным рассматривается в главе 8, «Рекомендации по проектированию слоя доступа к данным».

Особенности устройств

Дизайн и разработка для мобильных устройств уникальна из-за ограничений и разнообразия их аппаратного обеспечения. Мобильное приложение может использоваться на многих устройствах с очень разными параметрами аппаратных средств. При проектировании мобильного приложения необходимо помнить о разнородной среде устройства. Сюда относятся такие факторы, как размеры и ориентация экрана, ограничения объема памяти и хранилища, пропускная способность сети и возможность подключения. Как правило, выбор мобильной операционной системы зависит от типа целевого устройства. При выборе устройства руководствуйтесь следующими рекомендациями:

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

Учитывайте специфические возможности устройства, которые можно использовать для улучшения функциональности приложения, такие как акселерометры, графические процессоры, GPS, осязаемый отклик (прикосновение, усилие и вибрация), компас, камера и устройства чтения отпечатков пальцев.

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

Учитывайте ограниченные ресурсы запоминающих устройств и оптимизируйте приложение для использования минимального объема памяти. При нехватке памяти система может высвобождать кэшированный код на промежуточном языке (intermediate language, IL) для сокращения занимаемого ею объема памяти, возвращаться в режим интерпретации и, таким образом, уменьшать общие темпы выполнения.

Создавайте модульный код, чтобы упростить извлечение модулей кода из исполняемых файлов. Это решит проблему по сокращению размера исполняемых файлов в условиях ограниченного объема памяти устройства.

Применение обычных практик программирования может привести к созданию большого количества кода и потреблению большого объема памяти, поэтому используйте упрощенные методы разработки. Например, проанализируйте последствия применения обычных объектно-ориентированных практик, таких как абстрактные базовые классы и инкапсуляция повторяющихся объектов. Используйте отложенную инициализацию, при которой экземпляры объектов создаются только по необходимости.

Управление исключениями

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

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

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

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

Более подробно проектирование стратегии управления исключениями рассматривается в главе 17, «Сквозная функциональность».

Протоколирование

Мобильные устройства обладают ограниченными ресурсами памяти, поэтому протоколирование и инструментирование должны быть ограничены лишь самыми важными случаями, такими как, например, попытки вторжения в устройство. Если устройство является частью большей инфраструктуры, отслеживайте большинство действий устройства на уровне инфраструктуры. Как правило, аудит считается наиболее достоверным, если данные формируются в момент доступа к ресурсу той же процедурой, которая выполняет доступ. Учтите тот факт, что некоторые журналы могут формироваться на устройстве и должны синхронизироваться с сервером в периоды установления соединения с сетью. При проектировании стратегии протоколирования руководствуйтесь следующими рекомендациями:

В Windows Mobile нет механизма журнала регистрации событий (Event Log). Используйте механизмы протоколирования сторонних производителей, которые поддерживают .NET Compact Framework, такие как OpenNetCF, NLog или log4Net (более подробную информацию о них можно найти в источниках, указанных в разделе Дополнительные источники в конце данной главы). Также продумайте, как будет осуществляться доступ к журналам, хранящимся на устройстве.

При широкомасштабном протоколировании на устройстве предусмотрите сокращенный или сжатый формат для ведения журнала, чтобы снизить требования по

необходимому объему памяти и хранилища. Как альтернативный вариант рассмотрите возможность удаленного протоколирования.

Для протоколирования и аудита событий используйте такие возможности платформы, как контроль работоспособности на сервере и сервисы мобильного устройства на устройстве. Рассмотрите возможности введения средств удаленного контроля работоспособности, используя стандарт Open Mobile Alliance Device Management1

(OMA DM).

Обеспечьте синхронизацию между журналами мобильного устройства и сервера для поддержания возможностей аудита на сервере. При работе с инфраструктурой Active Directory для извлечения журналов с мобильных устройств используйте System Center Mobile Device Manager. Требования Mobile Device Manager приведены в разделе

«Вопросы выбора технологий».

Храните конфиденциальные данные в файлах журнала и аудита только в случае крайней необходимости. Обеспечьте защиту всех конфиденциальных данных с помощью шифрования.

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

Портирование приложений

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

Для портирования настольного насыщенного клиентского приложения придется полностью переписать его. Насыщенные клиенты редко подходят для использования на небольших экранах и с ограниченными ресурсами памяти и дискового пространства.

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

При портировании RIA-клиента проведите исследование того, какой код портируется без изменений. Конкретные рекомендации по этому вопросу можно найти в разделе «Вопросы выбора технологий» данной главы.

1 Стандарт Управления устройствами Открытого сообщества производителей мобильной связи

(прим. переводчика).

Изучите и используйте инструменты для портирования. Например, предлагаются конвертеры Java-в-C++. При преобразовании кода для Smartphone в код для Pocket PC Visual Studio позволяет менять целевую платформу и обеспечивает предупреждения в случае применения характерной для Smartphone функциональности. Также в Visual Studio можно связать проекты для настольного и мобильного приложений, чтобы выяснить, какие их части являются портируемыми.

Не думайте, что сможете портировать в мобильное приложение собственные элементы управления без изменения. Поддерживаемые API, объем памяти, занимаемый приложением, и поведение UI отличаются в мобильном устройстве. Проводите тестирование элементов управления как можно раньше, чтобы иметь возможность запланировать их переработку или найти альтернативный вариант в случае необходимости.

Управление энергопотреблением

Энергопотребление является основным ограничивающим фактором при проектировании приложений для мобильных устройств. Во всех проектных решениях должна учитываться потребляемая мощность устройства и то, как эти решения влияют на общее время жизни батареи. По возможности используйте устройства, которые способны заряжаться от Universal Serial Bus (USB) или других типов подключений для передачи данных. Изучите протоколы связи с точки зрения их относительной потребляемой мощности. При проектировании стратегии энергопотребления руководствуйтесь следующими рекомендациями:

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

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

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

Если предполагается использовать аппаратный протокол связи 3G, учтите, что наряду с намного большей скоростью передачи данных, он также на настоящий момент потребляет намного больше мощности, чем его предшественники, такие как протокол Edge. При использовании 3G обеспечьте пакетное взаимодействие и отключайте связь, когда в ней нет необходимости.

Соседние файлы в папке ООП