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

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

4 ответа

Решение

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

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

64-битный

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

UAC

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

Новые API

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

Монтажники

Поскольку при установке могут использоваться только общие среды выполнения, которые они устанавливают после завершения транзакции, настраиваемые действия завершатся неудачно, если ваша dll с настраиваемым действием требует среды выполнения 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 - это спорный вопрос; разработчик приложения должен сделать очень мало.

Другие вопросы по тегам