Читаем Программирование мобильных устройств на платформе .NET Compact Framework полностью

2. Определите будет ли устройство взаимодействовать с данными, хранящимися на настольных компьютерах или серверах. При работе крупных приложений часто используются экземпляры данных, разбросанные по самым разным местам. Данные могут храниться на нескольких серверах, на настольных компьютерах и на устройствах. Очень важно иметь ясную картину того, с какими данными будет взаимодействовать ваше мобильное приложение. Если у вас есть возможность выбирать, с какими данными следует организовать взаимодействие, — теми, которые хранятся на сервере, или теми, которые хранятся на настольном компьютере, — то наиболее подходящим почти всегда будет второй вариант. Это обусловлено двумя причинами: 1) обычно данные, хранящиеся на настольном компьютере, являются локальной кэшированной копией серверных данных, реальное текущее состояние не всегда отражается правильно, и 2) в то время как настольный компьютер не всегда может быть доступным, серверы специально проектируются таким образом, чтобы обеспечивалась возможность постоянного доступа к ним. Обычно если принимается решение о том, что мобильное устройство должно синхронизироваться с данными, хранящимися на настольном компьютере, а не на сервере, то это делается на основе тактических, а не прочно обоснованных стратегических соображений. В качестве оправдания указанной близорукой политики приводят, например, такую аргументацию: "Я не могу получить разрешение на доступ к находящимся на сервере данных с мобильного устройства, и поэтому вынужден обратиться к модели, которая обеспечивает синхронизацию с данными, хранящимися на настольном компьютере" или "Структуры данных, хранящихся на серверах, слишком сложны для обработки, в то время как на настольных компьютерах данные хранятся в простых форматах, и поэтому синхронизация с ними осуществляется легче". Постарайтесь устоять перед подобного рода соблазнами. Если данные действительно хранятся на сервере, то вы должны организовать синхронизацию именно с ними, даже если для этого и придется создавать промежуточное серверное решение, поддерживающее получение доступа к данным. Формирование продуманной архитектуры взаимодействия с другими звеньями вашего приложения сторицей окупит себя в отношении надежности и сроков разработки. Кратковременным тактическим решениям свойственно очень быстро превращаться в непрерывный долговременный кошмар сопровождения. Корректная оценка сферы применения вашего мобильного приложения требует того, чтобы вы руководствовались отчетливой схемой, отражающей взаимодействие приложения с внешними по отношению к устройству системами.

<p>Не пытайтесь просто переносить на устройства приложения, рассчитанные на настольные компьютеры! Мыслите категориями устройств!</p>

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

<p>Стереотипы использования мобильного и настольного программного обеспечения</p>

Следует развеять миф о том, что персональные компьютеры будут вытеснены мобильными устройствами; в действительности на это пока ничто не указывает. Как уже отмечалось в предыдущих главах данной книги, мобильные устройства находят качественно иное применение по сравнению с персональными компьютерами. Чтобы добиться успеха в создании замечательных мобильных приложений, вы должны исходить из того, что мобильные устройства привносят в существующее программное обеспечение новое, мобильное наполнение, заставляя создавать совершенно новые классы программного обеспечения, а не просто заменять то, которое уже существует в виде приложений для настольных компьютеров и Web-приложений

Перейти на страницу:

Похожие книги

Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

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

Дэниэл Дж. Пак , Стивен Ф. Барретт

Программирование, программы, базы данных / Компьютерное «железо» / Программирование / Книги по IT
Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

Программирование, программы, базы данных / Программирование / Книги по IT