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

Тут можно читать онлайн Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2006. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование мобильных устройств на платформе .NET Compact Framework
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2006
  • Город:
    Москва • Санкт-Петербург • Киев
  • ISBN:
    5-8459-0989-9
  • Рейтинг:
    4.22/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Программирование мобильных устройств на платформе .NET Compact Framework - описание и краткое содержание, автор Иво Салмре, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.

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

Программирование мобильных устройств на платформе .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)

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

Интервал:

Закладка:

Сделать

Ниже приведен простой код, предназначенный для чтения и записи представленных ранее данных с использованием модели однонаправленной обработки XML- документов с помощью объектов XMLReader и XMLWriter. Особый интерес для вас может представлять конечный автомат, используемый в объекте XMLReader для отслеживания текущего места в документе; заметьте, что даже для столь простого XML-документа, как наш, этот код вовсе не тривиален. В противоположность этому код, предназначенный для вывода XML-документов при помощи объекта XMLWriter, отличается простотой.

Листинг 10.3. Использование однонаправленного чтения-записи XML-данных для загрузки XML-документа из файла и его сохранения

using System;

public class SaveAndLoadXML UseReaderWriter {

//XML-дескрипторы, которые мы будем использовать в своем документе

const string XML_ROOT_TAG = "AllMyData";

const string XML_USERINFO_TAG = "UserInfo";

const string XMI_USERID_TAG = "UserID";

const string XML_NAMEINFO_TAG = "Name";

const string XML_FIRSTNAME_TAG = "FirstName";

const string XML_LASTNAME TAG = "LastName";

//Набор состояний, отслеживаемых по мере чтения данных

private enum ReadLocation {

inAllMyData,

inUserInfo,

inUserID,

inName,

inFirstName,

inLastName,

}

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

//Сохраняет пользовательское состояние

//

// [in] fileName: Имя файла, используемого для сохранения данных

// [in] userId: Идентификатор пользователя, который мы хотим сохранить

// [in] firstName: Имя пользователя, которое мы хотим сохранить

// [in] lastName: Фамилия пользователя, которую мы хотим сохранить

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

public static void XML_SaveUserInfo(string fileName, int userId,string firstName, string lastName) {

System.Xml.XmlTextWriter xmlTextWriter;

xmlTextWriter =new System.Xml.XmlTextWriter(fileName, System.Text.Encoding.Default);

//Записать содержимое документа!

//

xmlTextWriter.WriteStartElement(XML_ROOT_TAG);

//

xmlTextWriter.WriteStartElement(XML_USERINFO_TAG);

//

//

xmlTextWriter.WriteStartElement(XML_NAMEINFO_TAG);

//

xmlTextWriter.WriteStartElement(XML_FIRSTNAME_TAG);

//

xmlTextWriter.WriteString(firstName); //Запись значения

xmlTextWriter.WriteEndElement(); //Закрыть дескриптор имени

//

xmlTextWriter.WriteStartElement(XML_LASTNAME_TAG);

//

xmlTextWriter.WriteString(lastName); //Запись значения

xmlTextWriter.WriteEndElement(); //Закрыть дескриптор фамилии

//

xmlTextWriter.WriteEndElement(); //Закрыть дескриптор ФИО

//

//

xmlTextWriter.WriteStartElement(XML_USERID_TAG);

//

//Запись значения

xmlTextWriter.WriteString(userId.ToString());

xmlTextWriter.WriteEndElement();

//Закрыть дескриптор UserID

//

xmlTextWriter.WriteEndElement(); //Закрыть дескриптор UserInfo

//

xmlTextWriter.WriteEndElement(); //Закрыть дескриптор документа

//

xmlTextWriter.Close();

}

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

//Загружает пользовательское состояние

//

// [in] fileName: Имя файла, используемого для сохранения данных

// [out] userId: Загруженный идентификатор пользователя

// [out] firstName: Загруженное имя пользователя

// [out] lastName: Загруженная фамилия пользователя

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

public static void XML_LoadUserInfo(string fileName, out int userId, out string firstName,out string lastName) {

ReadLocation currentReadLocation;

//Начинаем с нулевых значений

userId = 0;

firstName = "";

lastName = "";

System.Xml.XmlTextReader xmlReader = new System.Xml.XmlTextReader(fileName);

xmlReader.WhitespaceHandling = System.Xml.WhitespaceHandling.None;

bool readSuccess;

readSuccess = xmlReader.Read();

if (readSuccess == false) {

throw new System.Exception("Отсутствуют XML-данные для чтения!");

}

//Убедиться в том, что мы распознали корневой дескриптор

if (xmlReader.Name != XML_ROOT_TAG) {

throw new System.Exception("Корневой дескриптор отличается от ожидаемого!");

}

//Отметить текущее местоположение в документе

currentReadLocation = ReadLocation.inAllMyData;

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

//Цикл прохождения документа и чтение необходимых данных

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

while (readSuccess) {

switch (xmlReader.NodeType) {

//Вызывается при входе в новый элемент

case System.Xml.XmlNodeType.Element: {

string nodeName = xmlReader.Name;

LoadHelper_NewElementEncountered(nodeName, ref currentReadLocation);

break;

}

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

//Здесь мы можем извлечь некоторый фактический текст и

//получить данные, которые пытаемся загрузить

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

case System.Xml.XmlNodeType.Text: {

switch (currentReadLocation) {

case ReadLocation.inFirstName: {

firstName = xmlReader.Value;

break;

}

case ReadLocation.inLastName: {

lastName = xmlReader.Value;

break;

}

case ReadLocation.inUserID: {

userId = System.Convert.ToInt32(xmlReader.Value);

break;

}

}

break;

}

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

//Вызывается, когда встречается конец

//элемента

//

//Мы можем захотеть переключить состояние в зависимости от вида

//покидаемого узла, чтобы указать на то, что собираемся

//вернуться назад к его предку

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

case System.Xml.XmlNodeType.EndElement: {

bool continueParsing;

continueParsing = LoadHelper_EndElementEncountered(ref currentReadLocation);

if (continueParsing ==false) {

goto finished_reading_wanted_data;

}

break;

}

default: {

//He страшно, если имеются XML-узлы других типов, но

//в нашем примере работы с XML-документом мы должны

//оповестить об этом факте...

System.Windows.Forms.MessageBox.Show("Встретился непредвиденный XML-тип " + xmlReader.Name);

break;

}

} //Конец оператора Case, используемого для определения текущего

//типа XML-элeмeнтa, oбpaбaтывaeмoгo анализатором

//Перейти к следующему узлу

readSuccess = xmlReader.Read();

}

//Если мы оказались в этом месте программы, не покинув

//XML-дескриптора UserInfo, то с XML-данными, которые

//мы считываем, что-то не так

throw new Exception("He найден элемент UserInfo в XML-документе!");

finished_reading_wanted_data:

//Закрыть файл, поскольку работа с ним закончена!

xmlReader.Close();

}

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

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

//относительно того, в какое состояние необходимо перейти,

//когда встречается закрывающий дескриптор

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

private static bool LoadHelper_EndElementEncountered(ref ReadLocation currentReadLocation) {

switch (currentReadLocation) {

//Если мы покидаем узел Name, то должны вернуться

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Иво Салмре читать все книги автора по порядку

Иво Салмре - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Программирование мобильных устройств на платформе .NET Compact Framework, автор: Иво Салмре. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x