Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework
- Название:Программирование мобильных устройств на платформе .NET Compact Framework
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2006
- Город:Москва • Санкт-Петербург • Киев
- ISBN:5-8459-0989-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework краткое содержание
Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.
Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.
Программирование мобильных устройств на платформе .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Ниже приводится краткое описание нескольких возможных уровней взаимодействия, перечисленных в порядке усиления степени зависимости мобильного приложения от ресурсов окружения.
■ Замкнутые вычислительные системы. При написании алгоритмов обработки данных, принадлежащих только вашему приложению, его судьба находится полностью в ваших руках. Все, что происходит в такой системе, происходит в результате выполнения кода, который вы знаете до мелочей и всегда можете проверить. Если ваш алгоритм распределяет и освобождает память, то часть контроля в процессе управления памятью он уступает среде выполнения, но вы по- прежнему можете быть достаточно уверены в том, что сохраняете контроль над всей системой. Такая ситуация в значительной мере соответствует замкнутой системе, поведение которой является для вас полностью предсказуемым.
■ Кооперативные вычисления совместно с операционной системой. При написании кода, взаимодействующего со средой выполнения и операционной системой, вы уступаете им несколько больше контроля в обмен на получение расширенных услуг с их стороны. В качестве типичного примера можно привести представление пользовательского интерфейса на современных вычислительных устройствах; пользовательский интерфейс является результатом совместной работы кода приложения и операционной системы. Базовая операционная система и среда выполнения приводят пользовательский интерфейс в действие и посылают вашему приложению события и сообщения, когда происходит нечто, что может представлять для него интерес. При разработке такого класса систем вы уже не располагаете возможностями столь полного контроля, как в случае замкнутых систем; теперь вы имеете дело с кооперативной системой, в которой комфортные условия работы пользователя обеспечиваются совместными усилиями вашего приложения и среды выполнения. Хотя вы и не можете точно сказать, что именно происходит в операционной системе, но вы все еще в состоянии делать достаточно надежные предположения относительно того, как будет вести себя приложение в целом. Например, в то время как ваше приложение уступает контроль над низкоуровневыми деталями функционирования пользовательского интерфейса, можно достаточно уверенно говорить о том, что оно по-прежнему сохраняет полный контроль над всем, что происходит с интерфейсом, и не разделяет этот ресурс ни с какими другими приложениями.
■ Кооперативные вычисления совместно с другими приложениями, выполняющимися на том же устройстве. Ваше мобильное приложение обладает полным контролем над своим пользовательским интерфейсом постольку, поскольку операционная система и среда выполнения устанавливают логические границы между индивидуальными ресурсами различных приложений; мое — это мое, а ваше — это ваше. Когда приложение начинает работать с глобальными ресурсами устройства, например, локальными файлами или базами данных, оно должно учитывать, что не только оно одно может использовать эти ресурсы. Роль честного посредника, распределяющего эти ресурсы, играет операционная система, но она не может гарантировать вашему приложению права исключительного полного доступа к данному ресурсу в любой момент времени. Кроме того, существует вероятность превышения допустимых пределов расхода ресурсов; например, если другие приложения исчерпали все доступное пространство файловой системы, то в вашем приложении должны быть предусмотрены адекватные способы выхода из подобных ситуаций. При работе с разделяемыми ресурсами очень важно предусматривать в коде соответствующие защитные меры, исходя из того непреложного факта, что любая попытка доступа к разделяемому ресурсу может оказаться неудачной. Необходимо также продумать, что будет происходить в тех случаях, когда к ресурсу будут пытаться получить доступ одновременно несколько приложений; одни типы ресурсов разрешают лишь одиночный доступ, другие допускают параллельный доступ, но не гарантируют согласования данных в процессе обновлений, тогда как третьи обеспечивают атомарное выполнение операций чтения и записи данных. Понимание поведения глобальных ресурсов устройства в условиях состязательного доступа к ним играет очень важную роль в обеспечении устойчивой работы приложения.
■ Кооперативные вычисления с интенсивным использованием сети. Если ваше приложение зависит от услуг, предоставляемых по сети, то появляются два дополнительных источника потенциальной неустойчивости. Доступ к сетевым ресурсам может оказаться невозможным из-за неготовности компьютера на другом конце сети к совместной работе. Что-то может нарушиться из-за того, что одно из звеньев сетевой цепочки, соединяющей два компьютера между собой, может повести себя не так, как ожидалось.
Ситуацию дополнительно осложняет тот факт, что сбой сетевых ресурсов может происходить во время сеанса связи; в случае локальных взаимодействий в пределах устройства такое происходит очень редко. Например, хотя наступление сбоя в процессе чтения из локальной файловой системы и возможно, но вероятность этого пренебрежимо мала; жесткий диск может разрушиться, но такое случается крайне редко, и если это произойдет, то у вас возникнут более крупные проблемы, чем просто невозможность считать данные из файла. Вероятность таких сбоев настолько мала, что многие операционные системы регулярно выполняют локальные операции чтения/записи, даже не уведомляя об этом выполняющиеся поверх операционную систему приложения. При чтении файлов через сеть вероятность возникновения сбоев в процессе выполнения этой операции резко возрастает, что часто наблюдается в случае беспроводных сетей и становится еще более заметным, если при чтении файлов мобильным устройством требуется осуществлять сетевой роуминг. Сбои не обязательно происходят постоянно, но случаются настолько часто, что к этому надо быть готовым и заранее предусматривать принятие соответствующих мер.
Ниже приводятся рекомендации по созданию отказоустойчивых сетевых мобильных приложений.
Не допускайте того, чтобы работа приложения всецело зависела от возможности подключения к сети
Точно так же как группа людей, действующих согласованно, может достигнуть гораздо большего, чем один человек, действующий в одиночку, возможности мобильного приложения, взаимодействующего с окружающими его сетями, намного превышают возможности изолированного приложения. Чтобы группа людей в некоторой организации могла успешно справляться с поставленными задачами, должны быть предусмотрены меры, позволяющие корректно разрешать ситуации, соответствующие перебоям в связи между членами группы и перебоям в работе каждого из них. Ни одно звено взаимодействия не должно быть критическим, иначе при его сбое наступит сбой в работе организации в целом. То же самое справедливо и в случае мобильных устройств.
Читать дальшеИнтервал:
Закладка: