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

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

22.08.2008 15:33:39
4 ОТВЕТА
РЕШЕНИЕ

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

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

64-битный

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

UAC

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

Новые API

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

Монтажники

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

20
24.08.2008 15:00:19

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

Конечно, вы можете повысить их привилегии, но это само по себе является задачей.

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

Посмотрите эту страницу, чтобы сделать ваше приложение «осведомленным в UAC»

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

5
22.08.2008 15:40:00

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

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

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

1
22.08.2008 15:43:33

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

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

0
22.08.2008 16:09:29