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

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Программирование мобильных устройств на платформе .NET Compact Framework"
Описание и краткое содержание "Программирование мобильных устройств на платформе .NET Compact Framework" читать бесплатно онлайн.
Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.
Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.
'Создать атрибут изображения
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
Листинг 8.2. Общий код, используемый во всех приведенных ниже вариантах тестов'Желаемое число повторений теста
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
Листинг 8.3. Тестовый пример, демонстрирующий неэкономное распределение памяти (типичный первоначальный вариант реализации интересующей нас функции)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
Листинг 8.4. Рабочий класс для первого тестового примераOption Strict On
Imports System
Public Class WastefulWorkerClass
Private m_beginning_segment As String
Public Property BeginSegment() As String
Get
Return m_beginning_segment
End Get
Set(ByVal Value As String)
m_beginning_segment = Value
End Set
End Property
Private m_middle_segment As String
Public Property MiddleSegment() As String
Get
Return m_middle_segment
End Get
Set(ByVal Value As String)
m_middle_segment = Value
End Set
End Property
Private m_end_segment As String
Public Property EndSegment() As String
Get
Return m_end_segment
End Get
Set(ByVal Value As String)
m_end_segment = Value
End Set
End Property
Public Sub New(ByVal in_word As String)
Dim index_segment1 As Integer
'Осуществляем поиск символов подчеркивания ("_") в строке
index_segment1 = in_word.IndexOf("_", 0)
'В случае отсутствия символов "_" все, что нам нужно, это первый сегмент
If (index_segment1 = -1) Then
m_beginning_segment = in_word
m_middle_segment = ""
m_end segment = ""
Return
Else
'Если присутствует символ "_", отсечь его
'Если первым символом является "_", то первым сегментом будет ""
If (index_segment1 = 0) Then
m_beginning_segment = ""
Else
'Первый сегмент
m_beginning_segment = in_word.Substring(0, index_segment1)
End If
'Найти второй символ "_"
Dim index_segment2 As Integer
index_segment2 = in_word.IndexOf("_", index_segment1 + 1)
'Второй символ "_" отсутствует
If (index_segment2 = -1) Then
m_middle_segment = ""
m_end_segment = in_word.Substring(index_segment1 + 1)
Return
End If
'Установить последний сегмент
m_middle_segment = in_word.Substring(index_segment1 + 1, _
index_segment2 - index_segment1 - 1)
m_end_segment = in_word.Substring(index_segment2 + 1)
End If
End Sub
'Возвращает все три сегмента, объединенные символами "_"
Public Function getWholeString() As String
Return m_beginning_segment + "_" + m_middle_segment + "_" + _
m_end_segment
End Function
End Class
Листинг 8.5. Тестовый пример, демонстрирующий уменьшение объема памяти, распределяемой для объектов (типичный образец улучшения первоначального варианта реализации интересующей нас функции)Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button3.Click
'Вызвать сборщик мусора, чтобы тест
'начинался с чистого состояния.
'ПРИБЕГАЙТЕ К ЭТОЙ МЕРЕ ТОЛЬКО В ЦЕЛЯХ ТЕСТИРОВАНИЯ! Вызовы
'сборщика мусора в программах вручную будут приводить к снижению
'общей производительности приложений!
System.GC.Collect()
Dim testArray() As String = Nothing
'--------------------------------------------------
'Просмотреть элементы массива и
'найти те из них, в которых средним словом является
'"blue". Заменить "blue" на "orange"
'Запустить секундомер!
'--------------------------------------------------
PerformanceSampling.StartSample(1, "LessWasteful")
'-------------------------------------------------------
'БОЛЕЕ ЭКОНОМНЫЙ СПОСОБ: Распределить память для объекта
'до вхождения в цикл
'-------------------------------------------------------
Dim workerClass1 As LessWastefulWorkerClass
workerClass1 = New LessWastefulWorkerClass
Dim outerLoop As Integer
For outerLoop = 1 To LOOP_SIZE
'Присвоить элементам массива значения, которые мы хотим использовать
'при тестировании ResetTestArray(testArray)
Dim topIndex As Integer = testArray.Length -1 Dim idx As Integer
For idx = 0 To topIndex
'---------------------------------------------------------
'Теперь вместо повторного распределения памяти для объекта
'нам достаточно лишь повторно воспользоваться им
'---------------------------------------------------------
'workerClass1 = new WastefulWorkerClass(
' testArray(topIndex))
workerClass1.ReuseClass(testArray(idx))
'Если средним словом является "blue", заменить его на "orange"
If (workerClass1.MiddleSegment = "blue") Then
'Заменить средний сегмент
workerClass1.MiddleSegment = "orange"
'Заменить слово
testArray(idx) = workerClass1.getWholeString()
End If
Next ' внутренний цикл
Next 'внешний цикл
'Остановить секундомер!
PerformanceSampling.StopSample(1)
MsgBox(PerformanceSampling.GetSampleDurationText(1))
End Sub
Листинг 8.6. Рабочий класс для второго тестового примераOption Strict
On Imports System
Public Class LessWastefulWorkerClass
Private m_beginning_segment As String
Public Property BeginSegment() As String
Get
Return m_beginning_segment
End Get
Set(ByVal Value As String)
m_beginning_segment = Value
End Set
End Property
Private m_middle_segment As String
Public Property MiddleSegment() As String
Get
Return m_middle_segment
End Get
Set(ByVal Value As String)
m_middle_segment = Value
End Set
End Property
Private m_end_segment As String
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Программирование мобильных устройств на платформе .NET Compact Framework"
Книги похожие на "Программирование мобильных устройств на платформе .NET Compact Framework" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework"
Отзывы читателей о книге "Программирование мобильных устройств на платформе .NET Compact Framework", комментарии и мнения людей о произведении.