Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework
- Название:Программирование мобильных устройств на платформе .NET Compact Framework
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2006
- Город:Москва • Санкт-Петербург • Киев
- ISBN:5-8459-0989-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework краткое содержание
Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.
Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.
Программирование мобильных устройств на платформе .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
'ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: использовать кэшированный индекс
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), _
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
'Определение размерных характеристик теста
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
'Просмотреть каждый элемент массива
Интервал:
Закладка: