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

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 141 142 143 144 145 146 147 148 149 ... 206
Перейти на страницу:

    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-данные можно синтаксически проанализировать и обработать на устройстве, если такой способ работы с ними является наилучшим.

1 ... 141 142 143 144 145 146 147 148 149 ... 206
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре.
Комментарии