KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Иво Салмре, "Программирование мобильных устройств на платформе .NET Compact Framework" бесплатно, без регистрации.
Перейти на страницу:

    m_vocabularyWords_Prepositions.Add(newWord);

   }

  }

  //Закрыть объект

  DataReader dataReader.Close();

 }

} //Конец класса

Листинг 14.8. Пример кода управления данными для VocabularyWord.cs

using System;

//------------------------------

//Хранит данные слова из словаря

//------------------------------

internal class VocabularyWord {

 [System.FlagsAttribute] //Значения можно объединять с помощью операции

                         //логического ИЛИ

 public enum WordFunction {

  Noun = 1,

  Verb = 2,

  Pronoun = 4,

  Adverb = 8,

  Adjective = 16,

  Preposition = 32,

  Phrase = 64

 }


 public enum WordGender {

  notApplicable = 0,

  Masculine = 1,

  Feminine = 2,

  Neuter = 3,

 }


 private string m_englishWord;

 private string m_germanWord;

 private VocabularyWord.WordGender m_germanGender;

 private VocabularyWord.WordFunction m_wordFunction;

 public string EnglishWord{

  get {

   return m_englishWord;

  }

 }

 public string GermanWord{

  get {

   return m_germanWord;

  }

 }

 public WordFunction getWordFunction {

  get {

   return m_wordFunction;

  }

 }

 public WordGender GermanGender{

  get {

   return m_germanGender;

  }

 }

 //-----------------------------------------------------------------

 //Возвращает слово на немецком языке, которому предшествует артикль

 //{например, 'der', 'die', 'das'), если он существует

 //-----------------------------------------------------------------

 public string GermanWordWithArticleIfExists {

  get {

   if (m_germanGender == WordGender.notApplicable) {

    return this.GermanWord;

   }

   return this.GenderArticle +" " + this.GermanWord;

  }

 } //Конец свойства

 public string GenderArticle {

  get {

   switch (m_germanGender) {

   case WordGender.Masculine:

    return "der";

   case WordGender.Feminine:

    return "die";

   case WordGender.Neuter:

    return "das";

   }

   return "";

  }

 }

 public VocabularyWord(string enlgishWord, string germanWord, WordGender germanGender, WordFunction wordFunction) {

  m_englishWord = enlgishWord;

  m_germanWord = germanWord;

  m_germanGender = germanGender;

  m_wordFunction = wordFunction;

 }

} //Конец класса

Различные способы хранения долговременных данных

Существует много различных способов хранения данных мобильных приложений. Данные можно сохранять в двоичных файлах, текстовых файлах и базах данных. (Базу данных можно считать частным случаем двоичного файла.) Хранение данных может быть реализовано вне устройства или на устройстве. Долговременные данные могут синхронизироваться между устройствами и серверами. Ниже описаны преимущества и недостатки наиболее распространенных вариантов хранения данных, а также приведены рекомендации относительно того, как подходить к принятию решений относительно организации долговременного хранения данных при проектировании приложений для мобильных устройств.

Хранение данных в виде XML-файлов на устройстве 

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

■ Недостатки. Текстовые файлы характеризуются увеличенными размерами, но размеры XML-файлов еще больше. Если ваше мобильное приложение работает с множеством данных, эффективное хранение которых необходимо организовать, то XML-файлы для этого не годятся. Кроме того, XML-файлы представляют собой форматированный текст, их содержимое можно легко прочитать и они не обеспечивают защиту данных; по этой причине следует избегать их использования для хранения критически важной информации, если только вы не располагаете надежным механизмом шифрования файлов.Примечание. Дополнительные рекомендации по использованию XML для эффективного хранения файлов содержатся в главе 10.

Хранение данных в базах данных SQL СЕ на устройствах 

■ Преимущества. Наличие процессора базы данных на устройстве открывает очень широкие возможности. Встроенные базы данных обеспечивают приложению возможность локального хранения, управления и запроса больших объемов информации. Базы данных SQL СЕ могут защищаться паролями и поэтому обеспечивают безопасность хранения критически важной информации. Между базами данных SQL СЕ и серверными базами данных SQL можно устанавливать партнерские отношения, что обеспечивает широкие возможности их синхронизации между собой. Для приложений, которым приходится иметь дело с множеством данных, нуждающихся в локальном управлении, этот выбор, вероятно, является наилучшим. 

■ Недостатки. Самый большой недостаток использования встроенных баз данных состоит в необходимости проверки того, установлен ли процессор базы данных на вашем целевом устройстве. Сама база данных SQL СЕ занимает значительный объем памяти устройства (1-3 Мбайт) и обычно должна устанавливаться на нем, так как нередко она не является частью образа устройства в ПЗУ. Из-за требований к объему памяти не все классы устройств поддерживают размещение процессора базы данных SQL СЕ. Например, в настоящее время размещение SQL СЕ поддерживается Pocket PC, но не поддерживается смартфонами. Кроме занимаемого объема памяти, играют роль и требования синхронизации. Перемещение данных, хранящихся в локальной базе данных устройства, на другой компьютер потребует от вас написания кода соответствующей логики; для перемещения данных между устройствами вам может понадобиться упаковка данных в виде ADO.NET DataSet или привлечение пользовательского формата данных.

Хранение данных в базах данных SQL вне устройства (на сервере) 

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

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

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

Доступ к данным, хранящимся вне устройств, посредством Web-служб 

■ Преимущества. Web-службы все чаще используются в качестве оболочек доступа к коммерческим источникам данных. Доступ к информации, хранящейся в базах данных, может обеспечиваться через Web-службы без предоставления непосредственного доступа к самим базам данных. Обычно Web-службы работают посредством сетевых протоколов HTTP или HTTPS; как правило, брандмауэры ведут себя дружественно по отношению к этим протоколам. Если сеть уже поддерживает выходной сервер, то создать Web-службу, размещенную на этом сервере, как правило, относительно просто.

Новейшие процессоры баз данных усиленно поддерживают возврат данных в виде XML, позволяя обходиться без промежуточного Web-сервера. Эти базы данных фактически предлагают собственные Web-службы. XML-данные, возвращенные непосредственно базой данных, не обязательно будут иметь формат данных ADO.NET XML DataSet, но любые возвращенные XML-данные можно синтаксически проанализировать и обработать на устройстве, если такой способ работы с ними является наилучшим.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*