Каковы основные различия между программированием для Windows XP и Vista? - PullRequest
11 голосов
/ 22 августа 2008

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

Ответы [ 4 ]

20 голосов
/ 22 августа 2008

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

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

64-бит

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

UAC

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

Новые API

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

монтажники

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

5 голосов
/ 22 августа 2008

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

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

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

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

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

1 голос
/ 22 августа 2008

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

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

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

0 голосов
/ 22 августа 2008

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

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

...