Иво Салмре - Программирование мобильных устройств на платформе .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 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
}
//----------------------------------------
//Пример слабых интерактивных возможностей интерфейса:
// - Визуальная индикация начала выполнения работы отсутствует
// - Визуальная индикация окончания выполнения работы отсутствует
// - Пользовательский интерфейс не способен к отклику во время работы
// - 0 завершении выполнения задачи пользователь вынужден только догадываться
//----------------------------------------
private void button1_Click(object sender, System.EventArgs e) {
//Имитировать выполнение работы путем создания паузы
//продолжительностью 4 секунды
System.Threading.Thread.Sleep(4000);
}
//----------------------------------------
//Пример лучших интерактивных возможностей интерфейса:
// + Визуальная индикация начала выполнения работы
// (появление курсора ожидания)
// + Визуальная индикация окончания выполнения работы
// (исчезновение курсора ожидания)
// - Пользовательский интерфейс не способен к отклику во время работы
// + По завершении выполнения задачи конечный пользователь узнает об этом,
// а пользовательский интерфейс восстанавливает способность к отклику
//----------------------------------------
private void button2_Click(object sender, System.EventArgs e) {
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
//Имитировать выполнение работы путем создания паузы
//продолжительностью 4 секунды
System.Threading.Thread.Sleep(4000);
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
}
//----------------------------------------
//Пример еще лучших интерактивных возможностей интерфейса:
// + Визуальная индикация начала выполнения работы // (появление курсора ожидания)
// + Отображение дополнительного текста, сообщающего пользователю // о том, что происходит
// + Визуальная индикация окончания выполнения работы // (исчезновение курсора ожидания)
// - Пользовательский интерфейс не способен к отклику в процессе работы
// + По завершении выполнения задачи конечный пользователь узнает об этом,
// а пользовательский интерфейс восстанавливает способность к отклику
// + Текстовые сообщения информируют пользователя о том, что происходит
//----------------------------------------
private void button3_Click(object sender, System.EventArgs e) {
//Предоставить пользователю текст, информирующий его обо всем происходящем
label1.Text = "Ждите! Работа выполняется!";
//Заставить интерфейс обновить текст
//(иначе он сделает это только тогда, когда будет перерисовывать сообщение,
//a это может произойти и после выхода из данной функции)
label1.Update();
//Отобразить курсор ожидания
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
//Имитировать выполнение работы путем создания паузы
//продолжительностью 2,8 секунды
System.Threading.Thread.Sleep(2800);
//Необязательное дополнительное обновление состояния
label1.Text = "Ждите! Работа близка к завершению!";
label1.Update();
//Имитировать выполнение работы путем создания паузы
//продолжительностью 1,2 секунды
System.Threading.Thread.Sleep(1200);
//Известить пользователя текстовым сообщением о завершении работы
//(текст обновляется всякий раз, когда ПИ выполняет обычное
//обновление экрана)
label1.Text = "Работа успешно завершена!";
//Избавиться от курсора ожидания
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
}
Разумеется, лучше всего, если пользовательский интерес никогда не теряет способности к отклику, однако для сравнительно коротких периодов задержки или случаев, когда работа должна выполняться в синхронном режиме, существует много косметических приемов, которые обеспечивают создание для пользователей комфортных условий работы с приложением и сводят влияние раздражающих факторов к минимуму.
Максимальная продолжительность отображения курсора ожидания
Существуют определенные ограничения на длительность интервалов времени, на протяжении которых еще допускается заставлять пользователя дожидаться восстановления способности пользовательского интерфейса к отклику. Отображение курсора ожидания и периодическое обновление информации, адресованной пользователю, позволяет несколько удлинить эти промежутки, но все-таки существует некоторый предел, при превышении которого пользователи начинают испытывать неудобства и раздражаться из-за того, что приложение не отвечает на их запросы. Допустимая предельная длительность периода ожидания для большинства случаев составляет около пяти секунд, однако должна быть снижена до одной-двух секунд при доступе к часто используемым функциональным средствам.
В документации к своему проекту вы должны указать не только то, что собираетесь повысить комфортность условий работы пользователей с приложением при помощи курсоров ожидания, но и максимально допустимую длительность задержек. Задержки свыше указанных пороговых значений должны влечь за собой доработку проекта. Явное формулирование этой задачи служит гарантией того, что конечные пользователи будут чувствовать себя одинаково комфортно на протяжении всего сеанса работы с вашим мобильным приложением.
Максимальная продолжительность загрузки/сохранения данных, а также запуска/закрытия приложения
Задачи, для выполнения которых требуется длительное время, часто можно вытолкнуть в фоновый поток, так что пользователь даже не будет замечать, что задача выполняется долго. Если задача выполняется фоновым потоком, то говорят, что она выполняется в "асинхронном режиме". Однако в некоторых ситуациях для того, чтoбы приложение могло продолжить работу, требуется предварительно выполнить некоторые операции. К числу типичных ситуаций такого рода относятся следующие:
■ Загрузка документов. Если приложение предназначено для работы с документами, то для того, чтобы оно могло продолжить работу, может потребоваться загрузка документа.
■ Выход из приложения и сохранение загруженных данных. Если пользователь хочет быть уверенным в том, что данные успешно сохранены, то это должно осуществляться синхронно с завершением работы приложения.
■ Запуск приложения и инициализация данных. Как и в случае загрузки документов, может существовать необходимая для запуска приложения информация, которая должна быть загружена и обработана, прежде чем приложение сможет продолжить дальнейшее выполнение
Даже задержки, обусловленные необходимостью выполнения обязательных задач, могут вызывать у пользователя раздражение. В некоторых случаях заставки, курсоры ожидания или индикаторы выполнения позволяют несколько сгладить ситуацию, но не более того. 30-секундный запуск всегда остается 30-секундным запуском, и пользователей мобильных устройств, которым надо поработать всего 20 секунд, а затем вернуть устройство обратно в карман, это раздражает. Как выше уже отмечалось, вы должны явно устанавливать максимальные интервалы задержек, которые еще можно считать допустимыми с точки зрения пользователя в подобных ситуациях. Если ваше приложение превышает эти допуски, в проект необходимо ввести соответствующие изменения. Действительно ли вы загружаете лишь минимальный объем данных, требуемых при запуске приложения? Могут ли данные запуска кэшироваться или сохраняться в формате, в котором они будут быстрее загружаться? Если при запуске требуются сетевые данные, то могут ли они сохраняться в локальной кэш-памяти? Могут найтись самые разнообразные творческие решения, которые должны быть исследованы с точки зрения повышения производительности приложения в ключевых точках, и иногда, чтобы обеспечить достижение необходимых показателей, на которые рассчитывают пользователи мобильных устройств с немедленным доступом, вы должны будете пересмотреть некоторые из положений проекта.
Читать дальшеИнтервал:
Закладка: