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

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Программирование мобильных устройств на платформе .NET Compact Framework"
Описание и краткое содержание "Программирование мобильных устройств на платформе .NET Compact Framework" читать бесплатно онлайн.
Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.
Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.
'Добавить элементы массива в строку набора данных
myTestTable.Rows.Add(objArray)
End Sub
'---------------------------------------------------------------
'Найти и кэшировать все индексы набора данных, которые нам нужны
'---------------------------------------------------------------
Private Sub cacheDataSetInfo()
'Выйти из функции, если индексы уже загружены
If (m_indexesLookedUp = True) Then Return
'Кэшировать индекс таблицы
m_IndexOfTestTable = _
m_myDataSet.Tables.IndexOf(TABLE_NAME_PASSENGERINFO)
'------------------------------------------
'Итерировать по всем столбцам нашей таблицы
'и кэшировать индексы нужных столбцов
'------------------------------------------
mTableCustomerInfo = m_myDataSet.Tables(m_IndexOfTestTable)
Dim dataColumnCount As Integer
dataColumnCount = m_TableCustomerInfo.Columns.Count
Dim myColumn As System.Data.DataColumn
Dim colIdx As Integer
While (colIdx < dataColumnCount)
myColumn = m_TableCustomerInfo.Columns(colIdx)
'Предпринимать поиск, только если это еще не сделано
If (m_IndexOfTestColumn_CreditCard = INVALID_INDEX) Then
'Проверить, совпадает ли имя
If (myColumn.ColumnName = _
COLUMN_NAME_PASSENGER_CREDIT_CARD) Then
'Кэшировать индекс
m_IndexOfTestColumn_CreditCard = colIdx
'Кэшировать столбец
m_TestColumn_CreditCard = myColumn
GoTo next_loop_iteration 'Опустить другие операции сравнения...
End If 'Endif: сравнение строк
End If
If (m _IndexOfTestColumn_TravelDate = INVALID_INDEX) Then
'Проверить, совпадает ли имя
If (myColumn.ColumnName = _
COLUMN_NAME_DATE_OF_TRAVEL) Then
'Кэшировать индекс
m_IndexOfTestColumn_TravelDate = colIdx
'Кэшировать столбец
m_TestColumn_TravelDate = myColumn
GoTo next_loop_iteration 'Опустить другие операции сравнения
End If 'Endif: сравнение строк
End If
next_loop_iteration:
colIdx = colIdx + 1
End While
m_indexesLookedUp = True
End Sub
'---------------
'Выполнить тест.
'---------------
Sub changeDayOfTravel_test(ByVal kindOfTest As testType)
'Отобразить курсор ожидания
System.Windows.Forms.Cursor.Current = _
System.Windows.Forms.Cursors.WaitCursor
'Начать с известной даты
Dim newDate As System.DateTime
newDate = System.DateTime.Today
changeDayOfTravel_textColumnLookup(TEST_CREDIT_CARD, newDate)
'ДОПУСТИМО ТОЛЬКО ДЛЯ ТЕСТОВОГО КОДА!!!
'Вызов сборщика мусора в коде ЗАМЕДЛИТ работу вашего приложения!
System.GC.Collect()
Const testNumber As Integer = 0
'Настроить соответствующим образом в зависимости от вида выполняемого теста
Select Case (kindOfTest)
Case testType.textColumnLookup
PerformanceSampling.StartSample(testNumber, _
"Text based Column lookup.")
Case testType.cachedIndexLookup
PerformanceSampling.StartSample(testNumber, _
"Cached Column Index lookup.")
Case testType.cachedColumnObject
PerformanceSampling.StartSample(testNumber, _
"Cached Column objects")
Case Else
Throw New Exception("Unknown state!")
End Select
'Выполнить тест!
Dim testCount As Integer
For testCount = 1 To NUMBER_TEST_ITERATIONS
'Передвинуть дату вперед на один день
newDate = newDate.AddDays(1)
Dim numberRecordsChanged As Integer = 0
'Какой вид теста мы выполняем?
Select Case (kindOfTest)
Case testType.textColumnLookup
'НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Просмотреть все имена, используя СТРОКИ
numberRecordsChanged = _
changeDayOfTravel_textColumnLookup( _
TEST_CREDIT_CARD, newDate)
Case testType.cachedIndexLookup
'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированные индексы
numberRecordsChanged = _
changeDayOfTravel_cachedColumnIndex( _
TEST_CREDIT_CARD, newDate)
Case testType.cachedColumnObject
'НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированные объекты
numberRecordsChanged = _
changeDayOfTravel_CachedColumns( _
TEST_CREDIT_CARD, newDate)
End Select
'Убедиться в том, что тест выполняется, как и ожидалось
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_textColumnLookup( _
ByVal creditCardNumber As String, _
ByVal newTravelDate As System.DateTime) As Integer
Dim numberRecordsChanged As Integer
'Найти имя таблицы
Dim dataTable_Customers As System.Data.DataTable
'НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск в таблице, используя
'сравнение строк!
dataTable_Customers = _
m_myDataSet.Tables(TABLE_NAME_PASSENGERINFO)
Dim currentCustomerRow As System.Data.DataRow
For Each currentCustomerRow In dataTable_Customers.Rows
Dim currentCreditCard As String
'НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск в таблице, используя
'сравнение строк!
currentCreditCard = CType( _
currentCustomerRow(COLUMN_NAME_PASSENGER_CREDIT_CARD), String)
'Проверить, является ли данная кредитная карточка искомой
If (creditCardNumber = currentCreditCard) Then
'Изменить дату отъезда
'НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск столбца, используя
'сравнение строк!
Dim currentTravelDate As System.DateTime = CType( _
currentCustomerRow(COLUMN_NAME_DATE_OF_TRAVEL), _
System.DateTime)
If (currentTravelDate <> newTravelDate) Then
'НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск столбца, используя
'сравнение строк!
currentCustomerRow(COLUMN_NAME_DATE_OF_TRAVEL) = _
newTravelDate
numberRecordsChanged = numberRecordsChanged + 1
End If
End If 'endif: сравнение строк
Next 'end for each
Return numberRecordsChanged 'Количество обновленных записей
End Function
'ФУНКЦИЯ, ХАРАКТЕРИЗУЮЩАЯСЯ НЕСКОЛЬКО ЛУЧШЕЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ
Private Function changeDayOfTravel_cachedColumnIndex( _
ByVal creditCardNumber As String, ByVal newTravelDate _
As DateTime) As Integer
Dim numberRecordsChanged As Integer
'Поиск имени таблицы
Dim dataTable_Customers As System.Data.DataTable
'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: использовать кэшированный индекс
dataTable_Customers = _
m_myDataSet.Tables(m_IndexOfTestTable)
Dim currentCustomerRow As System.Data.DataRow
For Each currentCustomerRow In dataTable_Customers.Rows
Dim currentCreditCard As String
'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: использовать кэшированный индекс столбца!
currentCreditCard = CType(currentCustomerRow( _
m_IndexOfTestColumn_CreditCard), String)
'Проверить, совпадает ли номер кредитной карточки
If (creditCardNumber = currentCreditCard) Then
'Изменить дату отъезда
'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!
Dim currentTravelDate As System.DateTime = CType( _
currentCustomerRow (m_IndexOfTestColumn_TravelDate), System.DateTime)
If (currentTravelDate <> newTravelDate) Then
'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!
currentCustomerRow(m_IndexOfTestColumn_TravelDate) = _
newTravelDate
numberRecordsChanged = numberRecordsChanged + 1
End If
End If
Next
Return numberRecordsChanged 'Количество обновленных записей
End Function
'ФУНКЦИЯ, ОБЛАДАЮЩАЯ НАИЛУЧШЕЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ
Private Function changeDayOfTravel_CachedColumns( _
ByVal creditCardNumber As String, _
ByVal newTravelDate As System.DateTime) As Integer
Dim numberRecordsChanged As Integer
'Найти имя таблицы
Dim dataTable_Customers As System.Data.DataTable = _
m_TableCustomerInfo
Dim currentCustomerRow As System.Data.DataRow
For Each currentCustomerRow In dataTable_Customers.Rows
Dim currentCreditCard As String
'НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!
currentCreditCard = CType( _
currentCustomerRow(m_TestColumn_CreditCard), _
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Программирование мобильных устройств на платформе .NET Compact Framework"
Книги похожие на "Программирование мобильных устройств на платформе .NET Compact Framework" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework"
Отзывы читателей о книге "Программирование мобильных устройств на платформе .NET Compact Framework", комментарии и мнения людей о произведении.