Опубликован: 21.01.2010 | Доступ: свободный | Студентов: 1142 / 195 | Оценка: 3.88 / 3.81 | Длительность: 11:48:00
Специальности: Программист
Самостоятельная работа 4:

Отладка и развертывание

< Лекция 8 || Самостоятельная работа 4: 12
Аннотация: Удаленный инструментарий Visual Studio 2008. Power Toys 3.5. Журнал загрузчика. Журнал взаимодействия с платформой. Сетевой журнал. Подключение к отладчику. Создание программы установки в Visual Studio 2008. Запись параметров реестра.

Целью лабораторной работы является изучить и использовать инструментарий, который применяется при отладке и развертывании мобильных приложений на Windows Mobile

Задание на лабораторную работу

  1. Изучить и поэкспериментировать с удаленным инструментарием в частности
    • a. Remote File Viewer
    • b. Remote Heap Walker
    • c. Remote Process Viewer
    • d. Remote Registry Editor
    • e. Remote Spy
    • f.Remote Zoom In
  2. Установить Power Toys 3.5, подключится к устройству и эмуляторам Visual Studio 2008. Поэкспериментировать с данным инструментарием, в частности
    • a.Remote Performance Monitor
    • b.GC Heap Viewer, NETCF CLR Profiler
    • c.App Configuration Tool (NetCFcfg.exe)
    • d.NETCF ServiceModel Metadata Tool
    • e.Remote Logging Configuration Tool
    • f.NETCF Network Log Viewer
  3. Создание установочного cab файла.
  4. Выводы

В данной лабораторной работе рассказывается о различном инструментарии который применяется при разработке, отладке и развертывании Windows Mobile приложений, а так же рассматриваются файлы журналов, которые может создавать исполнительная среда Microsoft .NET Compact Framework, об их использовании для диагностики конкретных проблем, об имеющемся для этого инструментарии, включения и отключения введения журналов. Журналы обеспечивают протоколирование активности установленного приложения, чтобы персонал службы поддержки имел некое средство диагностики.

Подключение к устройству

Перед тем как обсуждать приемы отладки, оптимальные подходы к обработке исключений и рекомендации по поиску и устранению типичных проблем, нужно понять, как подключить Microsoft Visual Studio к целевому устройству, которым может быть как реальное устройство, так и эмулятор.

12.1. Удаленный инструментарий

Visual Studio 2008 предоставляет разработчикам управляемых и неуправляемых кодов единые средства разработки. Ранее разработчикам неуправляемых кодов приходилось использовать встроенную интегрированную среду разработки Microsoft Visual C++. Одним из преимуществ такой унификации является то, что удаленный инструментарий, который ранее входил в Visual C++, но отсутствовал в Visual Studio .NET 2003, теперь включен в Visual Studio начиная с версии 2005. Теперь данные инструментарий имеется и в Visual Studio 2008, и доступен обеим группам разработчиков рис. 12.1. Так же следует отметить что данный инструментарий устанавливается автоматический с Visual Studio 2008.

Инструментарии удаленного доступа Visual Studio 2008

Рис. 12.1. Инструментарии удаленного доступа Visual Studio 2008

Программа Remote Zoom In очень удобна для захвата растровых экранных снимков с устройства. Часто используемой программой является Remote Registry Editor. Она позволяет разработчику с удаленного компьютера получить доступ к реестру и изменить его параметры. Программа Remote File Viewer является альтернативой Microsoft ActiveSync (или Windows Mobile Device Center) для удаленного доступа к файловой системе целевого устройства, включая импорт и экспорт. Программа Remote Spy аналогична настольной версии - с ее помощью можно просматривать активные окна и сообщения, которые посылаются описателям окон; эта программа не на каждый день, но если она действительно нужна, то может быть очень удобной. Программа Remote Process Viewer полезна для просмотра списка процессов, выполняющихся в данный момент на устройстве, принадлежащих им программных потоков, а также модулей, которые загрузил каждый из них. Её также можно использовать для остановки процессов. Последней программой является Remote Heap Walker. С точки зрения разработки управляемых кодов польза от нее невелика, так как разработчикам обычно не приходится иметь дело с идентификаторами и флагами для кучи управляемых процессов.

Удаленный инструментарий облегчает разработку программ на одном компьютере (настольном) и их выполнение на другом (целевом устройстве).

Задание первое

В рамках данной лабораторной поэкспериментируйте с подключением к устройству с установленной ОС Windows Mobile 6.0 и к эмулятору Windows Mobile 6.

Power Toys 3.5

Следует скачать с сайта microsoft, на момент написания лабораторной работы, установочный файл для этого набора утилит можно было скачать по следующей ссылке: http://www.microsoft.com/downloads/details.aspx?FamilyID=c8174c14-a27d-4148-bf01-86c2e0953eab&displaylang=en

Набор утилит Power Toys 3.5 включено: Remote Performance Monitor and GC Heap Viewer, NETCF CLR Profiler, App Configuration Tool (NetCFcfg.exe), NETCF ServiceModel Metadata Tool, Remote Logging Configuration Tool и NETCF Network Log Viewer.

Remote Performance Monitor and GC Heap Viewer - предоставляет показатели производительности в реальном времени (деятельность сборщика мусора и типы загрузки данных), приложений запущенных на .NET Compact Framework. The GC Heap Viewer feature позволяет вам захватывать состояние управляемой кучи в любой момент исполнения вашего приложения для просмотра текущих ссылок, и позволяет вам сравнить множество состояний, таким образом выявить момент утечки памяти.

NETCF CLR Profiler - это инструмент подробно визуализирует сведения о распределении ресурсов, показывает стеки вызовов и помогает диагностировать трудности в управлении памятью.

Утилита App Configuration Tool (NetCFcfg.exe) описывается авторами, как инструмент, который позволяет указать приложению, в какой версии среды .NET CF оно будет работать. Еще эта утилита выводит список установленных версий .NET CF и сведения об используемых библиотеках DLL. В справке к данной утилите сказано что, она устанавливается на мобильное устройство при первой же синхронизации в папку \Windows. Однако по факту это не всегда так, возможно вам в ручную придется её скопировать на ваше устройство, а её расположение следующее:

C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\wce500\armv4i

В вашем случае вместо: диска С напишите диск с папкой Windows, wce500 - тип вашей платформы (данная папка соответствует WM 6), armv4i - тип процессора вашего процессора.

Утилита Remote Logging Configuration Tool позволяет настраивать параметры ведения журнала событий на целевом устройстве .NET CF, в том числе журналы загрузчика, взаимодействий, сети, ошибок и завершения программ. В рамках данной утилиты следует знать то, что необходимо указать, то в какой каталог должны размещаться файлы журналов.

Утилита NETCF Network Log Viewer предназначена просмотра содержимого из журнала работы сетевых соединений в среде .NET CF.

Так же необходимо указать, что Power Toys 3.5, имеет только английскую версию, и заработала корректно с эмуляторами Visual Studio 2008 только с английской Visual Studio 2008 SP1. Возможно, это ошибочное мнение, однако на 5 машинах устанавливалось все с нуля. И на четырех из пяти, устанавливались русские программные продукты Microsoft, на которых Power Toys 3.5 не обнаруживала эмуляторов Visual Studio 2008, а пятая английская заработала сразу.

Данные инструменты легко применимы, те трудности, которые они могут вызваны, уже описаны. Так что далее опишем журналы, которые возможно включить в Remote Logging Configuration Tool.

Журнал загрузчика

Если немного упростить реальность, то в каждом случае, когда управляемое приложение создает объект, использует значимый тип, вызывает статический метод или делает что-то подобное, исполнительная среда должна найти сборку, которая содержит данный тип, и загрузить его. Каждый раз, когда это не получается, запускается исключение. В вопросе о том, следует ли его пропустить (поглотить или замаскировать другим исключением), может помочь журнал. Если исполнительная среда не нашла член типа (исключение Missing-MethodException или MissingFieldException ) или сам тип (исключение ТуpeLoadException ), вы сможете увидеть хронологию загрузки сборок вместе с той, которая привела к сбою, что в конечном счете и породило одно из упомянутых исключений времени выполнения. Информация о загрузке сборок включает информацию о маркерах открытых ключей, версиях и путях, по которым среда искала сборку. Другими словами, вы можете получить богатую информацию, которой больше нигде не найти. Если вы знакомы с журналом слияний для настольного компьютера - это почти то же самое.

В качестве упражнения посмотрите сами, как выглядит журнал загрузчика. Просто запустите любое управляемое приложение на устройстве и скопируйте файл журнала для его изучения, на настольный компьютер.

Задание второе

  1. В проекте приложения для интеллектуального устройства сделайте ссылку на проект библиотеки классов интеллектуальных устройств. В обработчике события Click для кнопки создайте класс из библиотеки классов.
  2. Разверните и отладьте проект на устройстве с помощью Visuai Studio. Получите файл журнала.
  3. На устройстве перейдите в папку приложения и удалите DLL-файл. Запустите непосредственно ЕХЕ-файл, нажмите кнопку и понаблюдайте за аварийным завершением приложения. Получите файл журнала и обратите внимание па различия с полученным рапсе журналом.
Журнал взаимодействия с платформой

Несмотря на то что в .NET Compact Framework версии 3.5 заполнены многие пробелы версии 2.0 и 1.0, разработчикам время от времени необходимо вызывать неуправляемые Windows-методы из DLL-файлов при помощи платформенных сервисов вызова (PInvoke-сервисов). Когда возникают проблемы с PInvokc-сервисом (или при взаимодействии с СОМ), может возникать множество исключений (например, DllNotFound-Exception, EntryPointNotFoundException ), в других случаях ошибки маршалинга могут просто привести к неверным результатам. Журнал взаимодействия с платформой помогает выявлять ошибки маршалипга, так как дает список всех методов взаимодействия в управляемом варианте и его неуправляемом эквиваленте. Иногда неуправляемый эквивалент может помочь разработчикам распознать неверное объявление.

Задание третье

Запустите па устройстве любое управляемое приложение, которое делает PInvoke-вызовы, и скопируйте файл журнала на настольный компьютер для изучения. Приложение, написанное в лабораторной работе "Применение платформы MS Synchronization Services при создании приложений без постоянного соединения" использовало PInvokc-вызовы.

Посмотрите содержимое журнала взаимодействия сами.

Сетевой журнал

Сетевые журналы собирают богатую информацию о сетевой активности. В отличие от других журналов они содержат данные не только в формате ASCII, поэтому для декодирования имеющихся в них двоичных данных нужна программа - анализатор. Такая программа для .NET Compact Framework 3.5 имеется в пакете программ .NET Compact Framework Power Toys 3.5.

Задание четвертое

Скопируйте с устройства на персональный компьютер файл, который создает платформа в результате работы программы "Применение платформы MS Synchronization Services". Просмотрите его с помощью файла из лабораторной работы применение платформы MS Synchronization Services . Вы можете открыть с ее помощью файл сетевого журнала и изучить его содержимое, то есть пакеты, которые посылаются и принимаются.

< Лекция 8 || Самостоятельная работа 4: 12