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


Авторские права

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

Здесь можно скачать бесплатно "Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство Издательский дом "Вильямс", год 2006. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework
Рейтинг:
Название:
Программирование мобильных устройств на платформе .NET Compact Framework
Автор:
Издательство:
Издательский дом "Вильямс"
Год:
2006
ISBN:
5-8459-0989-9
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

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

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



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

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






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

 'irdaFileSend.LoopAndAttemptIRSendAsync()

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

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

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

End Sub


Private Sub buttonTestFileReceive_Click(ByVal sender As Object, _

 ByVal e As EventArgs) Handles buttonTestFileReceive.Click

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

 Const fileName As String = "\myTestReceiveFile.txt"

 If (System.IO.File.Exists(fileName)) Then

  System.IO.File.Delete(fileName)

 End If


 Dim irdaFileReceiver As IrDAFileReceive

 irdaFileReceiver = New IrDAFileReceive(fileName, _

  myIrDASocketName)

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


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

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

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


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

 Me.Text = "Waiting to receive..."

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

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

 irdaFileReceiver.WaitForIRFileDownload()

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

 Me.Text = "IrDA: received!"

 MsgBox("File received!")


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

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

 'irdaFileReceive.WaitForIRFileDownloadAsync()

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

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

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

End Sub

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

Option Strict On

'====================================================================

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

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

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

'====================================================================

Class IrDAFileSend

Private m_descriptionOfLastSendAttempt As String

Private m_IrDAServiceName As String

Private m_fileToSend As String

Private m_wasSenderStopped As Boolean


Public Enum SendStatus

 AttemptingToSend

 Finished_Successfully

 Finished_Aborted

 Finished_Error

End Enum


Private m_SendStatus As SendStatus

Public ReadOnly Property Status() As SendStatus

 Get

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

  SyncLock (Me)

   Return m_SendStatus

  End SyncLock

 End Get

End Property

Private Sub setStatus(ByVal newStatus As SendStatus)

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

 SyncLock (Me)

  m_SendStatus = newStatus

 End SyncLock

End Sub


Public ReadOnly Property ErrorText() As String

 Get

  Return m_descriptionOfLastSendAttempt

 End Get

End Property


'-----------

'КОНСТРУКТОР

'-----------

Public Sub New(ByVal fileToSend As String, ByVal irdaServiceName As String)

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

 m_IrDAServiceName = irdaServiceName

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

 m_fileToSend = fileToSend

End Sub


'--------------------------------------------------------------

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

'--------------------------------------------------------------

Public Sub LoopAndAttemptIRSendAsync()

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

 setStatus(SendStatus.AttemptingToSend)

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

 m_wasSenderStopped = False


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

 Dim threadEntryPoint As System.Threading.ThreadStart

 threadEntryPoint = _

  New System.Threading.ThreadStart(AddressOf LoopAndAttemptIRSend)


 '-----------------------------------

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

 '-----------------------------------

 Dim newThread As System.Threading.Thread = _

  New System.Threading.Thread(threadEntryPoint)


 newThread.Start()

 'Вперед!

End Sub


'-----------------------------------------------------

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

'-----------------------------------------------------

Public Sub LoopAndAttemptIRSend()

 Dim irDASender As System.Net.Sockets.IrDAClient

 Dim streamOutToIrDA As System.IO.Stream

 Dim streamInFromFile As System.IO.Stream

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

 m_wasSenderStopped = False

 setStatus(SendStatus.AttemptingToSend)


 '-----------------------------------------------------------------

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

 '-----------------------------------------------------------------

 While (True)

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

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

  irDASender = Nothing

  streamOutToIrDA = Nothing

  streamInFromFile = Nothing


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

  Dim bSuccess As Boolean

  Try

   bSuccess = sendStream(mjdescriptionOfLastSendAttempt, _

    streamOutToIrDA, irDASender, streamInFromFile)

  Catch eUnexpected As System.Exception 'Неожиданная ошибка!!!

   setStatus(SendStatus.Finished_Error) 'Уведомить о сбое


   m_descriptionOfLastSendAttempt = _

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


   '------------------------------------------------

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

   '------------------------------------------------

   If Not (streamOutToIrDA Is Nothing) Then

    Try

     streamOutToIrDA.Close()

    Catch

     'Поглотить любую ошибку

    End Try

    streamOutToIrDA = Nothing

   End If


   If Not (streamInFromFile Is Nothing) Then

    Try

     streamInFromFile.Close()

    Catch

     'Поглотить любую ошибку

    End Try

    streamInFromFile = Nothing

   End If


   If Not (irDASender Is Nothing) Then

    Try

     irDASender.Close()

    Catch

     'Поглотить любую ошибку

    End Try

    irDASender = Nothing

   End If

   Return 'Выход

  End Try


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

  If (bSuccess = True) Then

   m_descriptionOfLastSendAttempt = "Success!"

   setStatus(SendStatus.Finished Successfully)

   Return

  End If


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

  If (m_wasSenderStopped = True) Then

   m_descriptionOfLastSendAttempt = "User Aborted."

   setStatus(SendStatus.Finished_Aborted)

   Return

  End If


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

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

  'и попытаемся найти сервер.

 End While

 'Мы никогда не попадем в это место программы при выполнении

End Sub


'----------------------------------------------------------------------

'Попытаться передать поток ввода-вывода (например, файл) посредством IR

'[возвращаемое значение]:

' true: успешная передача файла

' false: файл не был успешно передан

'----------------------------------------------------------------------

Private Function sendStream(ByRef errorDescription As String, _

 ByRef streamOutToIrDA As System.IO.Stream, _

 ByRef irDASender As System.Net.Sockets.IrDAClient, _

 ByRef streamInFromFile As System.IO.Stream) As Boolean

 errorDescription = ""

 '----------------------------

 'Создание нового клиента IRDA

 '----------------------------

 Try

  '-------------------------------------------------------

  'Возврат произойдет довольно быстро. Клиент будет выбран

  'и возвращен, если прослушивающие клиенты отсутствуют.

  '-------------------------------------------------------

  irDASender = _

   New System.Net.Sockets.IrDAClient(m_IrDAServiceName)


  Catch eCreateClient As System.Exception

   'В данном случае могли возникнуть несколько ситуаций:

   '#1: отсутствуют прослушивающие устройства

   '#2: прослушивающее устройство существует, но не реагирует

   ' (может отказаться от разговора)

   errorDescription = eCreateClient.Message

   Return False

  End Try


  'В данном случае могли возникнуть несколько ситуаций:


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

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

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


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

Все книги автора Иво Салмре

Иво Салмре - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

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

А что Вы думаете о книге? Оставьте Ваш отзыв.