Каковы основные различия между программированием для Windows XP и Vista?

С точки зрения разработчика настольных приложений, есть ли разница между разработкой для Windows XP и разработкой для Windows Vista?


person Niyaz    schedule 22.08.2008    source источник


Ответы (4)


Пользовательский интерфейс

Изучив рекомендации по работе с Windows Vista, вы увидите, что в них изменили многие элементы пользовательского интерфейса, о которых вам следует знать. Некоторые важные моменты, на которые следует обратить внимание:

64-разрядная

Vista имеет 64-разрядную версию, и хотя XP тоже, ваши пользователи с большей вероятностью будут использовать Vista 64, чем XP 64. Теперь вам придется иметь дело с:

UAC

Контроль учетных записей пользователей существенно влияет на разрешения по умолчанию, которые ваше приложение имеет при взаимодействии с ОС.

Новые API

Существуют новые API-интерфейсы, которые нацелены либо на новые методы создания приложений, либо на новые функции:

Установщики

Поскольку в установках могут использоваться только обычные среды выполнения, которые они устанавливают после завершения транзакции, настраиваемые действия завершится ошибкой, если для вашей библиотеки пользовательских действий требуются среды выполнения Visual C ++ выше VS 2005 CRT (не SP1 ).

person Chris    schedule 22.08.2008

Не никогда предполагать, что ваш пользователь имеет доступ к определенным ключевым областям диска (например, программным файлам, каталогам Windows и т. Д.). Вместо этого учетная запись пользователя по умолчанию сможет записывать только небольшую часть данных своего приложения. Кроме того, они не смогут писать в глобальные области реестра - только в раздел текущего пользователя.

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

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

Взгляните на эту страницу относительно того, как сделать ваше приложение "поддерживающим UAC"

http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx

person Mark Ingram    schedule 22.08.2008

Может быть, но это осознанный выбор, который вы делаете как разработчик. Вы можете использовать новые возможности Vista, такие как UAC, CommandLinks, Aero и так далее. Но вам не обязательно (даже UAC можно запрограммировать - просто не делайте ничего, для чего требуются права администратора). Если вы решите игнорировать все, что связано с Vista, то между ними нет абсолютно никакой разницы.

Если вы действительно хотите включить это в свое приложение, это имеет значение. Но я бы сказал, не очень большой. И если вы абстрагируетесь от различий (например, напишите свою собственную функцию, которая показывает TaskDialog для Vista, но заглушает ввод, который вы даете ей в MesssageBox в XP), тогда вы будете писать только против своего собственного кода, и отличий будет казаться почти ничем.

Кроме того, многие новые вещи Vista (например, UAC или Aero) - это то, о чем вы беспокоитесь один раз, когда вы создаете первый элемент функциональности, который его использует, заставляете его работать, а затем никогда больше не думаете о нем, пока вы разработка приложения.

person TheSmurf    schedule 22.08.2008

Безусловно, самая болезненная часть переноса приложения с XP на Vista (с моей точки зрения) связана с многочисленными службами и материалами IPv6, которые используют порты, которые ранее были бесплатными, и имеют дело с переходом Wireless Provisioning -> Native WiFi.

Материал UAC - в основном спорный вопрос; разработчику приложения нужно сделать очень немногое.

person Nick    schedule 22.08.2008