My-library.info
Все категории

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

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework. Жанр: Программирование издательство -, год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Программирование мобильных устройств на платформе .NET Compact Framework
Автор
Издательство:
-
ISBN:
-
Год:
-
Дата добавления:
17 сентябрь 2019
Количество просмотров:
247
Читать онлайн
Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework

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

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

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

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

  currentCreditCard = CType( _

   currentCustomerRow(m_TestColumn_CreditCard), _

   String)

  'Проверить, совпадает ли номер кредитной карточки

  If (creditCardNumber = currentCreditCard) Then

   'Изменить дату отъезда

   'НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!

   Dim currentTravelDate As System.DateTime = CType( _

    currentCustomerRow(m_TestColumn_TravelDate), _

    System.DateTime)


   If (currentTravelDate <> newTravelDate) Then

    'НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!

    currentCustomerRow(m_TestColumn_TravelDate) = _

     newTravelDate

    numberRecordsChanged = numberRecordsChanged + 1

   End If

  End If

 Next

 Return numberRecordsChanged 'Количество обновленных записей

End Function


'Событие щелчка на кнопке

Private Sub buttonRunTest_Click(ByVal sender As Object, _

 ByVal e As System.EventArgs) Handles buttonRunTest.Click

 createDataSet()

 cacheDataSetInfo()


 'НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать поиск по строкам

 changeDayOfTravel_test(testType.textColumnLookup)


 'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать поиск по целочисленным индексам

 changeDayOfTravel_test(testType.cachedIndexLookup)


 'НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать поиск по объектам столбцов

 changeDayOfTravel_test(testType.cachedColumnObject)

End Sub

Листинг 14.4. Результаты тестирования производительности при использовании пользовательского формата данных вместо объектов DataSet

'Определение размерных характеристик теста

Const DUMMY _ROWS_OF_DATA As Integer = 100

Const NUMBER_TEST_ITERATIONS As Integer = 500


Const TABLE_NAME_PASSENGERINFO As String = "CustomerTravelInfo"

Const TEST_CREDIT_CARD As String = "IvoCard-987-654-321-000"


Private m_data_creditCards() As String

Private m_data_names() As String

Private m_data_travelDates() As System.DateTime


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

'Создает массив данных (вместо использования объектов DataSet)

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

Private Sub createDataSet()

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

 '1. Создать пространство для размещения данных

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

 ReDim m_data_creditCards(DUMMY_ROWS_OF_DATA)

 ReDim m_data_names(DUMMY_ROWS_OF_DATA)

 ReDim m_data_travelDates(DUMMY_ROWS_OF_DATA)

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

 'Добавить строки данных

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

 Dim buildTestString As System.Text.StringBuilder

 buildTestString = New System.Text.StringBuilder

 Dim addItemsCount As Integer

 For addItemsCount = 0 To DUMMY_ROWS_OF_DATA

  'Выбрать день отъезда пассажира

  m_data_travelDates(addItemsCount) = _

   System.DateTime.Today.AddDays(addItemsCount)

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

  'Выбрать имя пассажира

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

  'Очистить строку

  buildTestString.Length = 0

  buildTestString.Append("TestPersonName")

  buildTestString.Append(addItemsCount)

  m_data_names(addItemsCount) = buildTestString.ToString()

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

  'Связать с пассажиром текстовый номер кредитной карточки

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

  'Строка значения третьего столбца набора данных

  buildTestString.Length = 0

  buildTestString.Append("IvoCard-000-000-0000-")

  buildTestString.Append(addItemsCount)

  m_data_creditCards(addItemsCount) = _

   buildTestString.ToString()

 Next


 'Добавить элемент, поиск которого мы хотим выполнить в нашем тесте.

 'Выбрать день для значения в первом столбце данных

 m_data_travelDates(DUMMY_ROWS_OF_DATA) = _

  System.DateTime.Today

 'Строка для второго столбца данных

 m_data_names(DUMMY_ROWS OF DATA) = "Ms. TestPerson"

 'Строка с идентификатором кредитной карточки

 m_data_creditCards(DUMMY_ROWS_OF_DATA) = TEST_CREDIT_CARD

End Sub


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

'Выполнить тест.

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

Sub changeDayOfTravel_test()

 'Отобразить курсор ожидания

 System.Windows.Forms.Cursor.Current = _

  System.Windows.Forms.Cursors.WaitCursor

 'Начать с известной даты.

 Dim newDate As System.DateTime newDate = System.DateTime.Today

 changeDayOfTravel_CustomArrays(TEST_CREDIT_CARD, newDate)


 'ТОЛЬКО В ЦЕЛЯХ ТЕСТИРОВАНИЯ!!!

 'HE СЛЕДУЕТ использовать вызовы сборщика мусора в готовом программном

 'коде. Это ЗАМЕДЛЯЕТ работу приложения.

 System.GC.Collect()

 Const testNumber As Integer = 0


 'Запустить таймер теста

 PerformanceSampling.StartSample(testNumber, "Custom Array implementation")


 'Запустить тест!

 Dim testCount As Integer

 For testCount = 1 To NUMBER_TEST_ITERATIONS

  'Передвинуть дату вперед на один день

  newDate = newDate.AddDays(1)

  Dim numberRecordsChanged As Integer


  'Просмотреть все имена, используя СТРОКИ

  numberRecordsChanged = _

   changeDayOfTravel_CustomArrays(ТЕST_CREDIT_CARD, newDate)


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

  If (numberRecordsChanged <> 1) Then

   MsgBox("No matching records found. Test aborted!")

   Return

  End If

 Next


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

 PerformanceSampling.StopSample(testNumber)


 'Обычный курсор

 System.Windows.Forms.Cursor.Current = _

  System.Windows.Forms.Cursors.Default


 'Отобразить результаты теста

 Dim runInfo As String = NUMBER_TEST_ITERATIONS.ToString() + _

  "x" + DUMMY_ROWS_OF_DATA.ToString() + ": " MsgBox(runInfo + _

  PerformanceSampling.GetSampleDurationText(testNumber))

End Sub


Private Function changeDayOfTravel_CustomArrays( _

 ByVal creditCardNumber As String, ByVal newTravelDate _

 As System.DateTime) As Integer

 Dim numberRecordsChanged As Integer


 'Просмотреть каждый элемент массива

 Dim index As Integer

 For index = 0 To DUMMY_ROWS_OF_DATA

  Dim currentCreditCard As String

  currentCreditCard = m_data_creditCards(index)


  'Обновить запись при наличии совпадения

  If (creditCardNumber = currentCreditCard) Then

   'Изменить дату поездки

   Dim currentTravelDate As System.DateTime = _

    m_data_travelDates(index)


   'Увеличить значение счетчика обновлений только при несовпадении данных

   If (currentTravelDate <> newTravelDate) Then

    m_data_travelDates(index) = _

     newTravelDate

    numberRecordsChanged = numberRecordsChanged + 1

   End If

  End If

 Next

 'Возвратить количество обновленных записей

 Return numberRecordsChanged

End Function


Private Sub buttonRunTest_Click(ByVal sender As Object, _

 ByVal e As System.EventArgs) Handles buttonRunTest.Click

 createDataSet()

 changeDayOfTravel_test()

End Sub

Листинг 14.5. Пример пользовательского управления данными — код, помещаемый в форму Form1.cs

'Создает базу данных

Private Sub buttonCreateDatabase_Click(ByVal sender As Object, _

 ByVal e As System.EventArgs) Handles buttonCreateDatabase.Click

 DatabaseAccess.CreateAndFillDatabase()

End Sub


'Загружает данные из базы данных и отображает их

Private Sub buttonLoadGameData_Click(ByVal sender As Object, _

 ByVal e As System.EventArgs) Handles buttonLoadGameData.Click

 'Очистить текстовое окно

 TextBox1.Text = ""

 'Загрузить данные для слов

 GameData.InitializeGameVocabulary()


 'Обойти все слова и добавить их в текстовый список

 Dim thisStringBuilder As System.Text.StringBuilder

 thisStringBuilder = New System.Text.StringBuilder

 Dim thisWord As VocabularyWord

 For Each thisWord In GameData.AllWords

  thisStringBuilder.Append(thisWord.EnglishWord)

  thisStringBuilder.Append(" = ")

  thisStringBuilder.Append( _

   thisWord.GermanWordWithArticleIfExists)

  thisStringBuilder.Append(vbCrLf) 'Новая строка

 Next

 'Отобразить список слов в текстовом окне

 TextBox1.Text = thisStringBuilder.ToString()

End Sub

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

Option Strict On

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

'Код доступа к базе данных: Этот класс управляет доступом в

'базу данных наших приложений

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

Imports System


Friend Class DatabaseAccess

Const DATABASE_NAME As String = "LearnGerman.sdf"

Const CONNECT_STRING As String = _

 "Data Source = " + DATABASE_NAME + "; Password = ''"


Const TRANSLATIONTABLE_NAME As String = "TranslationDictionary"

Const TRANSLATIONTABLE_ENGLISH_COLUMN As String = "EnglishWord"

Const TRANSLATIONTABLE_GERMAN_COLUMN As String = "GermanWord"

Const TRANSLATIONTABLE_GERMANGENDER_COLUMN As String = "GermanGender"

Const TRANSLATIONTABLE_WORDFUNCTION_COLUMN As String = "WordFunction"


Friend Const DS_WORDS_COLUMNINDEX_ENGLISHWORD As Integer = 0


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

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


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

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

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.