Готово ли ваше приложение к Windows 7 RTM?

Несколько недель назад состоялся важный этап в разработке Windows 7 – она была отправлена в печать! И через три месяца – 22 октября – Windows 7 станет доступна всем желающим. Восторженное ожидание предстоящего публичного релиза Windows 7 росло месяцами, и мы ожидаем куда более высокий уровень ее принятия, чем это было с предыдущими версиями Windows.

Поскольку мы приближаемся к 22 октября, вы должны спросить себя: готово ли ваше приложение к Windows 7? Что будет, когда конечные пользователи установят ваше приложение на Windows? Запустится ли оно? Увидят ли пользователи какую-либо разницу, когда запустят приложение на Windows 7 по сравнению с Windows Vista или XP? 22 октября уже не за горами и мы здесь, чтобы помочь вам ответить «Да! » на эти вопросы и убедиться, что «Однозначно, мое приложение блистает всеми красками на Windows 7». Мы хотим помочь создать у пользователей приятное впечатление от вашего приложения и, конечно же, от Windows 7.

Все это звучит замечательно, но какие шаги нужно предпринять, чтобы сказать: «Да, мое приложение работает на Windows»? Есть ли контрольный список? Да, конечно, есть.

Вам нужно сделать три вещи, чтобы обеспечить плавный переход:

  1. Убедиться, что приложение совместимо с Windows 7
  2. Оптимизировать его работу и быстродействие в Windows 7
  3. Реализовать новые возможности, предоставляемые Windows 7

Убедитесь, что приложение совместимо с Windows 7

Перед тем, как использовать новые возможности Windows 7, убедитесь, что ваше приложение совместимо с нею. Другого пути нет: очень важно, чтобы вы убедились, что приложение правильно работает в Windows 7. Нет ничего хуже для пользователя, чем находиться в предвкушении новой операционной системы и обнаружить, что приложение просто не работает. Некорректная работа вредит всем – вот почему вы должны убедиться, что ваше приложение устанавливается и работает на всех версиях Windows 7 и поддерживает как 32-, так и 64-разрядную версии.

Если приложение совместимо с Windows Vista, значит, у вас не будет проблем! Мы ожидаем, что большинство приложений, работающих на Windows Vista, будет работать на Windows 7. Понятно, что вы не можете быть уверенными в этом и должны проверить (и перепроверить), что приложение и вправду совместимо с Windows 7. Есть ряд различий между Windows Vista и Windows 7, которые могут повлиять на определенную функциональность приложений, так что если вы до сих пор не ознакомились с Windows 7 Quality Cookbook, мы настоятельно рекомендуем сделать это.

Если приложение было разработано для Windows XP (или более ранней версии Windows), и вы не проверяли, совместимо ли оно с Windows Vista, есть ряд вопросов (например, UAC), которым вы должны уделить особое внимание. Важно помнить, что нет единой палочки-выручалочки для всех проблем совместимости. Каждое приложение имеет свой собственный набор проблем, который зависит от отдельных нюансов реализации. Windows Vista Application Compatibility Cookbook остается актуальной для Windows 7, поскольку 99% содержимого этой документации применимо к Windows 7. Стоит отметить, что некоторые разделы важнее других. Следующие семь тем покрывают большую часть отчетов о проблемах совместимости.

  • Проверка версий – безусловно, главная проблема совместимости приложений. Вы когда-нибудь получали сообщение от приложения «Требуется Windows XP или выше», пытаясь запустить его на Windows 7? Если так, то вы наткнулись на проблему проверки версии. Больше на эту тему можно узнать в статье Проблемы совместимости: версии операционных систем.
  • Перенаправление данных – начиная с Windows Vista, обычные пользователи имеют ограниченных доступ к некоторым файлам, папкам и ключам реестра. Когда приложение пытается произвести запись в эти объекты, оно получает перенаправление куда-нибудь еще. В основном, это прозрачно и для пользователя, и для разработчиков, но иногда случается иначе, что приводит к очень интересным результатам. Вы можете узнать больше на эту тему из статьи Общие проблемы виртуализации файлов и реестра в Windows Vista.
  • Защищенный режим IE – начиная с Windows Vista, по умолчанию IE работает с низкими правами. Обычно это означает, что некоторые элементы управления ActiveX, которые работали в Windows XP, не работают в Windows Vista и Windows 7. Если вам требуется дополнительная информация, прочтите о Защищенном режиме в Vista IE7 (это применимо и к IE8).
  • Изоляция Сессии 0 – в Windows Vista службы работают в собственной сессии (сессия 0), а не в пользовательской сессии(ях) (сессия 1 и выше). Эта граница безопасности защищает систему от многих атак и абсолютно необходима. Однако она также вызывает проблемы коммуникации между службами и приложением, как, например, блокирование сообщений! Вы можете узнать больше на эту тему в статье «Изменение обязательного уровня целостности для защищенных объектов в Windows Vista».
  • Обнаружение инсталлятора – начиная с Windows Vista, ОС автоматически пытается определить, является ли приложение программой установки, запуск которых обычно требует прав администратора. Однако иногда эта эвристика может вызвать проблемы. Если вам требуется дополнительная информация, прочтите Правила разработчика Windows Vista и Windows Server 2008.
  • Ограничение привилегий пользовательского интерфейса – не позволяет приложению (процессу) посылать сообщения другому процессу с более высокими правами, даже если они запущены из одной учетной записи. В то время как это защищает от shatter-атак, ограничение также может привести к неработоспособности некоторых приложений.
  • High DPI – во время установки Windows 7 автоматически определяет, поддерживает ли ваш экран High DPI. Если поддерживает, то Windows 7 автоматически устанавливает разрешение экрана на High DPI. Если приложение несовместимо с High DPI, это может вызвать некоторые проблемы отображения (например, обрезание текста). Узнайте больше о том, как убедиться, что приложение отображается корректно на дисплеях с High-DPI.

В ближайшие недели мы подробно рассмотрим каждый из этих пунктов, чтобы помочь вам подготовиться к Windows 7.

Оптимизация работы и быстродействия приложения в Windows 7

После проверки того, что приложение устанавливается и работает на Windows 7 без проблем, наступает время идти дальше и оптимизировать его работу и быстродействие в Windows 7. Сделайте это при помощи использования новых возможностей, представленных в Windows 7. Сюда входят и инновации в пользовательском интерфейсе, такие как панель задач (Taskbar) и библиотеки (Libraries), и более фундаментальные функции, вроде сервисов Trigger Start Services или новой платформы Troubleshooting (Устранение неполадок). Оптимизируя приложение для Windows 7, вы можете убедиться, что работа пользователей с ним в Windows 7 превзойдет их ожидания. Пользователи могут ожидать, что приложение работает правильно с панелью задач (всего лишь пример), но если оно не оптимизировано для работы с новой панелью задач Windows 7, конечный пользователь может заметить это.

Когда вы будете готовы к оптимизации приложения для Windows 7, обдумайте одну или несколько из следующих возможностей:

  • Панель задач (Taskbar) – новая панель задач в Windows 7 предоставляет пользователю больше интуитивно понятной информации при помощи таких функций, как списки переходов (jump lists), которые помогают быстро переходить к необходимому объекту/задаче. Также рекомендую ознакомиться со статьей Разработка для панели задач Windows 7 – Application ID.clip_image002
  • Библиотеки (Libraries) – это точки доступа к пользовательским данных в Windows 7. Библиотека в Windows 7 – это заданная пользователем коллекция, выводящая данные пользователя независимо от иерархии папок. Пользователь может объединить иерархию папок, собрав любое количество физических папок (на своей локальной машине или удаленных устройствах) в одно место – библиотеку. Узнать о библиотеках больше вы сможете, прочитав Руководство по программированию Windows 7: библиотеки.
  • Trigger Start Services – Windows 7 Service Control Manager был расширен, чтобы служба могла быть автоматически запущена и остановлена при определенном системном событии, или триггере, сработавшем в системе. Возможность триггер-включения ликвидирует необходимость службе запускаться автоматически при включении компьютера и простаивать в ожидании, когда событие случится, например, когда будет подключено устройство. Больше по этой теме можно узнать из статьи Service Trigger Events.
  • Оптимизация энергопотребления – Windows 7 предлагает инфраструктуру и инструменты, которые помогают разработчикам определить влияние электропитания на их приложения. Набор обратных вызовов событий позволяет приложениям уменьшать их активность, когда система работает от аккумулятора и увеличивать ее при работе от сети.
  • Troubleshooting Platform – Windows 7 предлагает обширную и расширяемую платформу Troubleshooting (Устранение неполадок), которая использует основанный на PowerShell механизм выявления и устранения проблем. Troubleshooting Platform плавно интегрируется с Windows 7 PC Solution Center и дает возможность другим приложениям выполнять диагностику тем же образом. Узнайте больше о Windows Troubleshooting Platforum.
    clip_image004
  • Windows Error Reporting – это набор технологий Windows, которые записывают данные о сбое приложения и могут отправить отчет с информацией о сбое. Благодаря службам Winqual, поставщики программного и аппаратного обеспечения могут получать доступ к отчетам для анализа и решения проблем. Этот набор инструментов предоставляет информацию в реальном времени о качестве программного обеспечения и упрощают обновление и создание патчей. См. Приступая к работе с Windows Error Reporting.
  • Оптимизация I/O – назначение приоритетов ввода/вывода улучшает отзывчивость операционной системы без значительного снижения быстродействия. Если у вас имеются службы, функционирующие в течение продолжительного времени и активно использующие ввод/вывод, которые можно было бы запустить в фоновом режиме, то пользователь был бы вам благодарен за этот шаг. Неоптимизированные по вводу/выводу приложения дают дополнительную нагрузку на систему. Если приложение оптимизирует ввод/вывод для некритичных служб, это может значительно улучшить поведение системы целиком.
  • Restart Manager – эта технология дает возможность автоматического перезапуска после сбоя, а также применение обновлений к приложениям и операционной системе без перезагрузки самой машины. Когда вы встраиваете данную функциональность, то получаете второй шанс сохранить важную для приложения информацию. Windows автоматически перезапустит ваше приложение и попытается загрузить информацию, с которой пользователь только что работал. Эта же технология упрощает обновление большинства приложений и операционной системы без перезагрузки. Если же перезагрузка необходима, то Windows перезапустит приложение и вернет его в последнее состояние.

Реализация новых возможностей Windows 7

Как только вы выполнили первые два шага, можете разнообразить свое приложение новыми уникальными возможностями Windows 7. Windows 7 позволяет создавать разнообразные и интуитивные приложения, которые значительно увеличивают доступность, простоту в использовании и улучшают общее восприятие. Новые методы настольной интеграции помещают функциональность приложения «на кончики пальцев» пользователя. Новые Touch API делают возможным естественное взаимодействие при помощи технологии одновременного нажатия и движений пальцев. Стремительное развитие аппаратных и программных технологий также ведет к более точному пользовательскому интерфейсу. Windows 7 отдает эти достижения под контроль разработчика с новыми гибкими API, использующими все преимущества технологии и одновременно упрощающими разработку приложений.

Windows 7 включает множество новых возможностей, которые могут заставить приложение сиять, возвышаясь над конкурентами. Когда вы задумаетесь о создании нового восхитительного пользовательского интерфейса, вспомните об одной или нескольких из следующих возможностей:

  • Ribbon – в Windows 7 включен Ribbon-интерфейс Office 2007, который обеспечивает платформу для разработки интерфейсов пользователя. Это означает, что могжно забыть о нудной разработке Win32 UI и предложить визуально богатый и знакомый пользовательский интерфейс, используя UI на базе разметки и быстродействующую исполняемую среду управляемого кода.clip_image006
  • Multitouch & Ink – Windows 7 включает улучшенную поддержку прикосновений и жестов, позволяя разработчикам быстро и просто создавать уникальные интерфейсы приложений, которые не ограничиваются простыми наведениями мышки, щелчками и перетаскиваниями. Новые Multi-touch API поддерживают разнообразные жесты, такие как перелистывание, масштабирование и поворот. Все жесты получают немедленный визуальный отклик и взаимодействуют с контентом естественно и интуитивно.
  • Sensor and Location Platform – Windows 7 изменяет то, как разработчики используют сенсоры. Сюда входит и поддержка датчиков, расширенная новой платформой разработки на уже существующие типы, включая датчики местоположения (такие как устройства GPS) и датчики температуры и освещенности, позволяющая создавать контекстно-зависимые приложения. Датчики местоположения открывают новые возможности для служб, ориентированных на определенное местоположение.
  • Новый графический стек – Windows 7 дает в руки разработчикам новые графические возможности при помощи нового набора DirectX API. Разработчики Win32 могут получить преимущества от последних добавлений в GPU, чтобы включить быструю, масштабируемую, высококачественну 2D- и 3D-графику, текст и изображения в свои приложения.

clip_image008

  • Платформа мультимедиа – Media Foundation и DirectShow® составляют основу поддержки мультимедиа в Windows Media Foundation, появившейся в Windows Vista как замена DirectShow. В Windows 7 Media Foundation была расширена для лучшей поддержки форматов, включая:
    • MPEG-4
    • Запись видео с устройств и аппаратных декодеров, таких как H.264, MJPEG и MP3
    • Новые источники для MP4, 3GP, MPEG2-TS и AVI
    • Новые приемники для MP4, 3GP и MP3

И для разработчиков Windows 7 добавляет новые API высокого уровня, которые сильно упрощают написание мультимедиа-приложений.

  • Федеративный поиск (Federated Search) – Windows 7 обеспечивает поиск документов за пределами ПК пользователя. Разработчики и ИТ-специалисты могут добавить в свои движки, хранилища документов, веб-приложения и частные хранилища данных поддержку поиска из Windows 7 без написания и развертывания клиентского кода. Это позволит искать внутри сети своей корпорации или в Интернете легко, как если бы они искали свои локальные файлы – из знакомого интерфейса Windows.
  • Интеграция Device Stage – Windows 7 совмещает программное обеспечение и службы для создания новых способов работы с мобильными телефонами, портативными медиа-плеерами, камерами и принтерами. Windows 7 упрощает использование этих устройств прямо с рабочего стола Windows. Она также дает производителям устройств возможность создать заметное место на рабочем столе Windows с расположением брендовой информации и простого интерфейса для представления функциональности и служб, поддерживаемых устройствами.

Я надеюсь, эта статья поможет вам начать работу, чтобы сделать ваше приложение для Windows 7 ярким и поистине запоминающимся!