С точки зрения разработчика настольных приложений, есть ли разница между разработкой для Windows XP и разработкой для Windows Vista?
Каковы основные различия между программированием для Windows XP и Vista?
Ответы (4)
Пользовательский интерфейс
Изучив рекомендации по работе с Windows Vista, вы увидите, что в них изменили многие элементы пользовательского интерфейса, о которых вам следует знать. Некоторые важные моменты, на которые следует обратить внимание:
- более крупные значки
- Новый шрифт (который влияет на некоторую согласованность настраиваемого пользовательского интерфейса)
- Новые возможности диалогового окна (диалоговые окна задач)
- Изменены общие диалоговые окна (например, «Открыть файл», «Сохранить как» и т. Д.)
- стиль и тон и внешний вид
- Новые мастера Aero
- Обновленный дизайн панелей инструментов
- Улучшенный интерфейс уведомлений
- Новый рекомендуемый метод включения элемента управления поиском
- Стекло
64-разрядная
Vista имеет 64-разрядную версию, и хотя XP тоже, ваши пользователи с большей вероятностью будут использовать Vista 64, чем XP 64. Теперь вам придется иметь дело с:
- Виртуализация реестра
- Перенаправление реестра (Wow6432Node)
- Отражение реестра
- Цифровые подписи для модулей ядра
- Установщики MSI имеют новый свойства для работы
UAC
Контроль учетных записей пользователей существенно влияет на разрешения по умолчанию, которые ваше приложение имеет при взаимодействии с ОС.
- Как UAC работает и влияет на ваше приложение (также см. документ о требованиях)
- Установщики должны иметь дело с UAC
Новые API
Существуют новые API-интерфейсы, которые нацелены либо на новые методы создания приложений, либо на новые функции:
- Cryptography API: Next Generation (CNG)
- Расширяемый язык разметки приложений (XAML)
- Windows Communication Foundation (WCF)
- Windows Workflow Foundation (WF)
- И еще много более мелких
Установщики
Поскольку в установках могут использоваться только обычные среды выполнения, которые они устанавливают после завершения транзакции, настраиваемые действия завершится ошибкой, если для вашей библиотеки пользовательских действий требуются среды выполнения Visual C ++ выше VS 2005 CRT (не SP1 ).
Не никогда предполагать, что ваш пользователь имеет доступ к определенным ключевым областям диска (например, программным файлам, каталогам Windows и т. Д.). Вместо этого учетная запись пользователя по умолчанию сможет записывать только небольшую часть данных своего приложения. Кроме того, они не смогут писать в глобальные области реестра - только в раздел текущего пользователя.
Вы, конечно, можете повысить их привилегии, но это уже задача.
В общем, программирование для Vista такое же, как и для XP, это просто новые ограничения учетной записи, которых нужно опасаться.
Взгляните на эту страницу относительно того, как сделать ваше приложение "поддерживающим UAC"
http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx
Может быть, но это осознанный выбор, который вы делаете как разработчик. Вы можете использовать новые возможности Vista, такие как UAC, CommandLinks, Aero и так далее. Но вам не обязательно (даже UAC можно запрограммировать - просто не делайте ничего, для чего требуются права администратора). Если вы решите игнорировать все, что связано с Vista, то между ними нет абсолютно никакой разницы.
Если вы действительно хотите включить это в свое приложение, это имеет значение. Но я бы сказал, не очень большой. И если вы абстрагируетесь от различий (например, напишите свою собственную функцию, которая показывает TaskDialog для Vista, но заглушает ввод, который вы даете ей в MesssageBox в XP), тогда вы будете писать только против своего собственного кода, и отличий будет казаться почти ничем.
Кроме того, многие новые вещи Vista (например, UAC или Aero) - это то, о чем вы беспокоитесь один раз, когда вы создаете первый элемент функциональности, который его использует, заставляете его работать, а затем никогда больше не думаете о нем, пока вы разработка приложения.
Безусловно, самая болезненная часть переноса приложения с XP на Vista (с моей точки зрения) связана с многочисленными службами и материалами IPv6, которые используют порты, которые ранее были бесплатными, и имеют дело с переходом Wireless Provisioning -> Native WiFi.
Материал UAC - в основном спорный вопрос; разработчику приложения нужно сделать очень немногое.