Windows 7: Модернизация приложений. Часть 1
Сегодня, на московском форуме “Microsoft Innovation Day” мы начали обсуждать тему использования Windows 7 как платформы для работы приложений. Приведенные ниже заметки могут оказаться полезными как тем, кто посетил данное мероприятие (или мероприятия в других городах, которые пройдет в октябре-декабре этого года, расписание см. здесь ), так и тем, кто интересуется вопросами использования WIndows 7 для разработки приложений.
Мы отметили, что в первую очередь, нужно говорить о модернизации существующих приложений – инженерной задачи, которую можно разделить на 3 группы подзадач:
- Совместимость
- Стабильность
- Функциональность
Совместимость
Группа «Совместимость» включает в себя действия по обеспечению работоспособности приложений при переносе их с Windows XP на Windows Vista и Windows 7, или, минуя Windows Vista, с Windows XP на Windows 7. Здесь также следует упомянуть и необходимость решения такой задачи, как «Преемственность» - т.е. обеспечение работоспособности приложений на всех существующих версиях операционной системы - Windows XP, Windows Vista и Windows 7.
Очень кратко, ключевые вопросы совместимости сводятся к:
- Проверке версии ОС
- Рекомендуется не проверять версию ОС без реальной необходимости
- Проверяйте издание операционной системы и включенные компоненты/сервисы
- Для проверки наличия/отсутствия определенных программных интерфейсов используйте соответствующие функции Windows API – LoadLibrary(), GetProcAddress()
- Работе под учетной записью «Standard User»
- Проверяйте полную работоспособность приложения под учетной записью «Standard User»
- В случае необходимости в выполнении привилегированных операций, выносите эту функциональность в отдельный модуль, запускаемый с соответствующими опциями в манифесте приложения
- Для взаимодействия между модулями приложения используйте файлы, располагаемые в памяти, механизмы RPC или другие документированные функции
- Записи в рекомендованные папки/ветви реестра
- Для хранения данных пользователей, используйте профиль пользователя
- Для хранения общих данных – документированные папки
- Используйте только известные системе папки – через функцию GetKnownFolder() или ее эквиваленты
- Использованию манифеста
- Помните, что манифест приложения, переводит приложение для Windows XP в приложение для Windows Vista – для приложений с манифестом, в котором указаны блоки, характерные для Windows Vista, отключаются механизмы перенаправления действий с файловой системой и реестром, что может привести к появлению ошибок при работе приложения
- Интерактивным сервисам
- Интерактивные сервисы, запускаемые в Сессии 0, не поддерживаются в Windows Vista и Windows 7
- При необходимости создания интерактивных сервисов, используйте отдельные интерфейсные модули, с которыми сервисы общаются документированными способами
Для решения вопросов обеспечения совместимости приложений можно порекомендовать следующие подходы:
- Используйте рекомендации,
- опубликованные на портале для компаний-разработчиков (http://www.microsoft.ru/isv) и в нашем блоге (http://blogs.technet.com/isv_team)
- В наших пособиях
- Про которые мы рассказываем на семинарах – расписание см. здесь
- Включите тестовые сценарии сертификации в процесс тестирования
- Напишите сценарий, охватывающий максимальную функциональность
- Тестовые сценарии
- Тестируйте с помощью Application Verifier
Преемственность приложений означает, что приложения
- • Корректно работают на нескольких версиях ОС
- XP -> Vista ->Windows 7
- Используют функции каждой ОС
- Начиная с Windows XP: Диалоговые панели общего назначения (Common Dialogs)
- Начиная с Windows XP: Интерфейсные элементы (UI)
- Начиная с Windows XP: Windows Error Reporting
- Начиная с Windows XP/Vista: Platform Update for Windows Vista
- Подробнее – в нашем блоге
- Начиная с Windows Vista: Restart Manager
Продолжение следует...
АФ