Иво Салмре - Программирование мобильных устройств на платформе .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 - читать книгу онлайн бесплатно, автор Иво Салмре
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

textFileStream.WriteLine("in the lake");

textFileStream.Close(); IrDAFileSend irdaFileSend;

irdaFileSend = new IrDAFileSend(fileName, myIrDASocketName);

//Имеется 2 режима: 1 — Sync (синхронный), 2 — Async (асинхронный)

//1. Вызвать функцию в синхронном режиме

//и блокировать поток выполнения до тех пор,

//пока файл не будет передан

//1a. Вызвать функцию в синхронном режиме

//и блокировать поток выполнения до тех пор,

//пока файл не будет передан

this.Text = "Trying to send...";

//1b. Подождать, пока клиент не будет найден, а затем передать файл

irdaFileSend.LoopAndAttemptIRSend();

//1c. Информировать пользователя о том, что файл передан

System.Windows.Forms.MessageBox.Show("File sent!");

this.Text = "IrDA: Sent!";

//2. Вызвать функцию в асинхронном режиме и поручить

//передачу файла фоновому потоку

//irdaFileSend.LoopAndAttemptIRSendAsync();

//ПРИМЕЧАНИЕ: Если мы вызываем функцию в асинхронном режиме, то должны

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

//вызова метода 'irdaFileSend.Status'

}

private void buttonTestFileReceive_Click(object sender, System.EventArgs e) {

//Если файл назначения уже существует, уничтожить его

const string fileName = "\\myTestReceiveFile.txt";

if (System.IO.File.Exists(fileName)) {

System.IO.File.Delete(fileName);

}

IrDAFileReceive irdaFileReceive;

irdaFileReceive = new IrDAFileReceive(fileName, myIrDASocketName);

//Имеется 2 режима: 1 - Sync (синхронный), 2 — Async (асинхронный)

//1. Вызвать функцию в синхронном режиме

//и блокировать поток выполнения до тех пор,

//пока файл не будет получен

//1a. Информировать пользователя о том, что мы ожидаем получения файла

this.Text = "Waiting to receive...";

//1b. Ожидать, пока не будет сделана попытка установления с нами связи

//и передачи файла

irdaFileReceive.WaitForIRFileDownload();

//1c. Информировать пользователя о том, что мы получили переданный файл

this.Text = "IrDA: received!";

System.Windows.Forms.MessageBox.Show("File received!");

//2. Вызвать функцию в асинхронном режиме и поручить

//получение файла фоновому потоку

//irdaFileReceive.WaitForIRFileDownloadAsync();

//ПРИМЕЧАНИЕ: Если мы вызываем функцию в асинхронном режиме, то должны

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

//вызова метода 'irdaFileReceive.Status'

}

Листинг 15.4. Класс IrDAIrDAFileSend

//====================================================================

//Этот класс является клиентом IrDA. Он осуществляет поиск сервера

//IrDA, имя которого совпадает с именем службы IrDA, и после того, как

//он найден, направляет ему поток данных файла.

//====================================================================

class IrDAFileSend {

private string m_descriptionOfLastSendAttempt;

private string m_IrDAServiceName;

private string m_fileToSend;

private bool m_wasSenderStopped;

public enum SendStatus {

AttemptingToSend,

Finished_Successfully,

Finished_Aborted,

Finished_Error

}

private SendStatus m_SendStatus;

public SendStatus Status {

get {

//Блокировка выполнения параллельных операций чтения/записи в m_SendStatus

lock(this) {return m_SendStatus;}

}

}

private void setStatus(SendStatus newStatus) {

//Блокировка выполнения параллельных операций чтения/записи в m_SendStatus

lock(this) {m_SendStatus = newStatus;}

}

public string ErrorText {

get {return m_descriptionOfLastSendAttempt;}

}

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

//КОНСТРУКТОР

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

public IrDAFileSend(string fileToSend,string irdaServiceName) {

//Имя сокета IrDA, поиск которого мы хотим осуществить

m_IrDAServiceName = irdaServiceName;

//Файл, который мы хотим передать

m_fileToSend = fileToSend;

}

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

//Запускает новый поток для осуществления попытки отправки файла

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

public void LoopAndAttemptIRSendAsync() {

//Мы находимся в режиме передачи

setStatus(SendStatus.AttemptingToSend);

//Пользователь пока что не отменил выполнение операции

m_wasSenderStopped = false;

//Это функция, которую должен запустить на выполнение новый поток

System.Threading.ThreadStart threadEntryPoint;

threadEntryPoint = new System.Threading.ThreadStart(LoopAndAttemptIRSend);

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

//Создать новый поток и запустить его

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

System.Threading.Thread newThread = new System.Threading.Thread(threadEntryPoint);

newThread.Start(); //Вперед!

}

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

//Входит в цикл и пытается передать файл посредством IR

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

public void LoopAndAttemptIRSend() {

System.Net.Sockets.IrDAClient irDASender;

System.IO.Stream streamOutToIrDA;

System.IO.Stream streamInFromFile;

//Пользователь пока что не отменил выполнение операции

m_wasSenderStopped = false;

setStatus(SendStatus.AttemptingToSend);

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

//Непрерывное выполнение цикла, пока не удастся отправить сообщение

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

while(true) {

//Значения всех этих переменных должны быть нулевыми до и после

//вызова 'sendStream(...)', если не было сгенерировано исключение!

irDASender = null;

streamOutToIrDA = null;

streamInFromFile = null;

//Попытаться передать поток

bool bSuccess;

try {

bSuccess = sendStream(

out m_descriptionOfLastSendAttempt, ref streamOutToIrDA,

ref irDASender, ref streamInFromFile);

} catch (System.Exception eUnexpected) //Неожиданная ошибка!!!

{

setStatus(SendStatus.Finished_Error); //Отметить возникновение сбоя

m_descriptionOfLastSendAttempt =

"Unexpected error in IR send loop. " + eUnexpected.Message;

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

//Освободить все распределенные нами ранее ресурсы

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

if (streamOutToIrDA != null) {

try {

streamOutToIrDA.Close();

} саtch{};//Поглотить любую ошибку

streamOutToIrDA = null;

}

if (streamInFromFile != null) {

try {

streamInFromFile.Close();

} catch{};//Поглотить любую ошибку

streamInFromFile = null;

}

if (irDASender != null) {

try {

irDASender.Close();

} catch{}; //Поглотить любую ошибку

irDASender = null;

}

return; //Выход

}

//Проверить успешность выполнения

if (bSuccess == true) {

m_descriptionOfLastSendAttempt = "Success!";

setStatus(SendStatus.Finished_Successfully);

return;

}

//Проверить, не была ли операция отменена пользователем

if (m_wasSenderStopped == true) {

m_descriptionOfLastSendAttempt = "User Aborted.";

setStatus(SendStatus.Finished_Aborted);

return;

}

//B противном случае... Нам пока не удалось обнаружить сервер IrDA,

//имя которого совпадает с именем службы. Мы продолжим выполнение

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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