Иво Салмре - Программирование мобильных устройств на платформе .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 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Dim assemblyNameAs String = thisAssemblyName.Name
'Загрузить изображения
s_Player_Bitmap1 =New System.Drawing.Bitmap( _
thisAssembly.GetManifestResourceStream(assemblyName _
+ ".Hank_RightRun1.bmp"))
s_Player_Bitmap2 = New System.Drawing.Bitmap( _
thisAssembly.GetManifestResourceStream(assemblyName _
+ ".Hank_RightRun2.bmp"))
s_Player_Bitmap3 = New System.Drawing.Bitmap( _
thisAssembly.GetManifestResourceStream(assemblyName _
+ ".Hank_LeftRun1.bmp"))
s_Player_Bitmap4 = New System.Drawing.Bitmap( _
thisAssembly.GetManifestResourceStream(assemblyName _
+ ".Hank_LeftRun2.bmp"))
'Добавить изображения в коллекцию
s_colPlayerBitmaps = New System.Collections.ArrayList
s_colPlayerBitmaps.Add(s_Player_Bitmap1)
s_colPlayerBitmaps.Add(s_Player_Bitmap2)
s_colPlayerBitmaps.Add(s_Player_Bitmap3)
s_colPlayerBitmaps.Add(s_Player_Bitmap4)
'Возвратить коллекцию
Return s_colPlayerBitmaps
End Function
Private Shared s_blackPen As System.Drawing.Pen
Private Shared s_whitePen As System.Drawing.Pen
Private Shared s_ImageAttribute As _
System.Drawing.Imaging.ImageAttributes
Private Shared s_boldFont As System.Drawing.Font
'------------------------------------------------
'Вызывается для освобождения от любых графических
'ресурсов, которые могли быть кэшированы
'------------------------------------------------
Private Shared Sub g_CleanUpDrawingResources()
'Освободить память от черного пера, если таковое имеется
If Not (s_blackPenIs Nothing) Then
s_blackPen.Dispose()
s_blackPen = Nothing
End If
'Освободить память от белого пера, если таковое имеется
If Not (s_whitePenIs Nothing) Then
s_whitePen.Dispose()
s_whitePen = Nothing
End If
'Освободить память от атрибута ImageAttribute, если таковой имеется.
'Примечание. Метод Dispose() для этого типа не предусмотрен,
'поскольку все его данные являются управляемыми
If Not (s_ImageAttribute Is Nothing) Then
s_ImageAttribute = Nothing
End If
'Освободить память от полужирного шрифта, если таковой имеется
If Not (s_boldFontIs Nothing) Then
b_boldFont.Dispose()
s_boldFont = Nothing
End If
End Sub
'-----------------------------------------
'Эта функция позволяет получить доступ
'к черному перу, находящемуся в кэш-памяти
'-----------------------------------------
Private Shared Function g_GetBlackPen() As System.Drawing.Pen
'Если перо еще не существует, создать его
If (s_blackPen Is Nothing) Then
s_blackPen = New System.Drawing.Pen( _
System.Drawing.Color.Black)
End If
'Возвратить черное перо
Return s_blackPen
End Function
'----------------------------------------
'Эта функция позволяет получить доступ
'к белому перу, находящемуся в кэш-памяти
'----------------------------------------
Private Shared Function g_GetWhitePen() As System.Drawing.Pen
'Если перо еще не существует, создать его
If (s_whitePen Is Nothing) Then
s_whitePen = New System.Drawing.Pen( _
System.Drawing.Color.White)
End If
'Возвратить белое перо
Return s_whitePen
End Function
'-----------------------------------------------
'Эта функция позволяет получить доступ
'к полужирному шрифту, находящемуся в кэш-памяти
'-----------------------------------------------
Private Shared Function g_GetBoldFont() As System.Drawing.Font
'Если перо еще не существует, создать его
If (s_boldFont Is Nothing) Then
s_boldFont = New System.Drawing.Font( _
System.Drawing.FontFamily.GenericSerif, 10, System.Drawing.FontStyle.Bold)
End If
'Возвратить полужирный шрифт
Return s_boldFont
End Function
'-----------------------------------------------------
'Эта функция позволяет осуществлять доступ
'к находящемуся в кэш-памяти объекту imageAttributes,
'который мы используем для изображений с прозрачностью
'-----------------------------------------------------
Private Shared Function g_GetTransparencyImageAttribute() As _
System.Drawing.Imaging.ImageAttributes
'Если объект не существует, создать его
If (s_ImageAttributeIs Nothing) Then
'Создать атрибут изображения
s_ImageAttribute = _
New System.Drawing.Imaging.ImageAttributes
s_ImageAttribute.SetColorKey(System.Drawing.Color.White, _
System.Drawing.Color.White)
End If
'Возвратить его
Return s_ImageAttribute
End Function
End Class
'Желаемое число повторений теста
Const LOOP_SIZE As Integer = 8000
'---------------------------------------------------------
'Эта функция переустанавливает содержимое нашего тестового
'массива, что обеспечивает возможность многократного
'выполнения тестового алгоритма
'---------------------------------------------------------
Private Sub ResetTestArray(ByRef testArray() As String)
If (testArray Is Nothing) Then
ReDim testArray(6)
End If
testArray(0) = "big_blue_duck"
testArray(1) = "small_yellow_horse"
testArray(2) = "wide_blue_cow"
testArray(3) = "tall_green_zepplin"
testArray(4) = "short_blue_train"
testArray(5) = "short_purple_dinosaur"
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
'Вызвать сборщик мусора, чтобы быть уверенными в том, что
'тест начнется с чистого состояния.
'ПРИБЕГАЙТЕ К ЭТОЙ МЕРЕ ТОЛЬКО В ЦЕЛЯХ ТЕСТИРОВАНИЯ! Вызовы
'сборщика мусора в программах вручную будут приводить к снижению
'общей производительности приложений!
System.GC.Collect()
Dim testArray() As String = Nothing
'--------------------------------------------------
'Просмотреть элементы массива и
'найти те из них, в которых средним словом является
'"blue". Заменить "blue" на "orange"
'Запустить секундомер для нашего теста!
'--------------------------------------------------
PerformanceSampling.StartSample(0, "WastefulWorkerClass")
Dim workerClass1 As WastefulWorkerClass
Dim outerLoop As Integer
For outerLoop = 1 To LOOP_SIZE
'Присвоить элементам массива значения, которые мы хотим использовать
'при тестировании
ResetTestArray(testArray)
Dim topIndex = testArray.Length - 1
Dim idx As Integer
For idx = 0 To topIndex
'------------------------------------------
'Создать экземпляр вспомогательного класса,
'который расчленяет строку на три части
'Это неэкономный способ!
'------------------------------------------
workerClass1 = New WastefulWorkerClass(testArray(idx))
'Если средним словом является "blue", заменить его на "orange"
If (workerClass1.MiddleSegment = "blue") Then
'Заменить средний сегмент
workerClass1.MiddleSegment = "orange"
'Заменить слово
testArray(idx) = workerClass1.getWholeString()
End If
Next 'внутренний цикл
Next 'внешний цикл
'Получить время окончания теста
PerformanceSampling.StopSample(0)
MsgBox(PerformanceSampling.GetSampleDurationText(0))
End Sub
Option Strict On
Интервал:
Закладка: